Gleich vorweg: Die Subversion-Revisionsnummer steht hier nicht zur Verfügung.
Das ist schade. Das nehme ich immer für die letzte Stelle (oder den Git-Hash
).
Ich halte mich bei unseren Versionen immer an "Semantic Versioning":
http://semver.org/
Das definiert die ersten drei Stellen. Die vierte würde ich tatsächlich immer hochzählen, oder aber den Build-Zeitpunkt reinkodieren.
Wenn man das macht, z.B. Unix-Timestamp als Basis, Genauigkeit auf Datum + Uhrzeit), so hat man den Build auch eindeutig identifiziert (für Testing und Bugmeldungen interessant) und man kann den Stand zum Zeitpunkt X auch jederzeit wieder auschecken und das Problem nachvollziehen.
Das Build eindeutig zu kennzeichnen ist genau die Absicht, die ich mit der Build-Nummer verfolge. Ich möchte das aber nicht von einem Versionskontrollsystem abhängig machen. Nach diversen Systemen angefangen (bei RCS angefangen) bin ich dann letztlich vor ein paar Jahren von Subversion auf Mercurial umgestiegen. Ich weiß aber halt nicht, was die Zukunft noch so bringt. Anfangs habe ich mein Versionsnummernsystem noch dem VCS angepasst (zweimal). Das ist, wenn ich hier mal Müntefering zitieren darf,
Mist.
Es wäre allerdings auch wünschenswert, wenn die Build-Nummern aufsteigend sind (nicht notwendigerweise lückenlos). Sonst muss man immer erst irgendwo nachsehen, welches neuer ist.