2012-03-28 11 views
4

Eine Vorabversion kann durch Anfügen eines Bindestrichs und einer Reihe von durch Punkte getrennten Kennungen unmittelbar nach der Patch-Version gekennzeichnet werden. Beispiele: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.Git tag release version?

semver.org

Zum Zweck der Begriffsklärung, was für eine „richtige“ Art und Weise einer Freigabe begehen (Commit aus dem Master-Zweig) zu markieren, wäre?

Einige Ideen

v1.7.2-release 
v1.7.2-master 
v1.7.2-prod 
v1.7.2-official 
v1.7.2-stable 

github.com/antirez/redis/tags

+0

Alles was nach der dritten Nummer steht, steht für eine Vorabversion, also ist keine der aufgelisteten Dateien offiziell, aber Sie sollten klarstellen, was Sie unter "Freigabe-Commit" verstehen. Welche Software entwickeln Sie? Was ist der Kontext hier? –

Antwort

7

Sie ähnlich eine Politik wählen kann sich Git (siehe seine tags in the GitHub repo):

v1.7.2-rc0 
v1.7.2-rc1 
v1.7.2-rc2 
v1.7.2-rc3 
v1.7.2 

Die Idee (wie in Choosing a good version numbering policy beschrieben) gehen kann in der Form von:

Der 'master'-Zweig wird derjenige sein, der den Code enthält, der in einem bestimmten Moment als produktionsbereit gekennzeichnet ist,' master 'muss immer kompilierbar sein.
Der Code im Zweig 'master' muss eine gerade Tag-Nummer haben.

Für die Versionsnummer wird sie mit dem Befehl git describe erstellt, da sie de facto eine Art Standard ist.

Siehe Canonical Version Numbers with Git:

git describe –tags –long 

Dies gibt Ihnen eine Zeichenfolge wie (im Falle eines meiner Projekte)

2.1pre5-4-g675eae1 

die als

formatiert ist
{last reachable tag name}-{# of commits since that tag}-#{SHA of HEAD} 

Dies gibt Ihnen eine ‚kanonische Versionsnummer‘ (Rechtschreibung korrigiert), die monoton von verpflichtet und einzigartig über mehrere Repositories der Entwicklung steigt. Wenn wir alle auf demselben HEAD sind, wird derselbe Wert zurückgegeben. Wenn wir alle das gleiche most-recent-tag teilen, aber unterschiedliche Commits haben, wird der SHA anders sein.

Sie können mit auf master streben nur Zahlen Version wie

{last reachable tag name}-0-#{SHA of HEAD} 

(dh getaggt begeht nur)

Aber die Idee ist, dass diese Art von Versionsnummer (Tag + SHA) ist vollständig eindeutig.

+0

+1, sehr nützlich! – tripleee

+1

'Die Wahl einer guten Versionsnummerierungsrichtlinie' ist tot – Trix

+0

@Trix Ich stimme zu, und ich kann keine Kopie davon finden, einschließlich http://web.archive.org/. Ich habe ein Ticket hinterlassen (https://github.com/thesp0unge/thesp0nge.github.com/issues/1) – VonC