2010-02-24 9 views
5

ich eine Richtlinie oder Verfahren benötigen, die die Versionsnummer Politik für Quellcode beschreiben als pro Veränderungen geschehen (Dur, Moll, Micro), bestimmte Version Zuweisung freizugeben, Kennzeichnung usw.Quellcode Versionsnummer Politik

Ihre Leitlinie dieser Hinsicht wird sehr geschätzt ....

Antwort

0

das Format Folgen a.b.c.d, a Wichtige ist, b Minor, c Build und d Revision (obwohl MS swap s die letzten zwei herum).

Major und Minor sollte von Ihnen selbst eingestellt werden. Verwenden Sie Build und Revision oder nur Revision, um sich auf das Changeset/Revision in Ihrem Quellcodeverwaltungssystem zu beziehen.

Grund für die Verwendung einer Kombination aus Build und Revision ist, weil Sie möglicherweise Probleme auftreten, wo die Revision zu hoch ist eine Nummer auf bestimmten Plattformen (denken an AssemblyVersion in .NET hier, 4 Int16 Teile). Sie können also die SCS-Revision div 1000 für c und die Revision mod 1000 für d verwenden.

Auf diese Weise können Sie von jeder Versionsnummer (wirklich nur von Build- und Revisionsteilen) immer zu einem eindeutigen Zustand Ihres Quellcodes gelangen.

2

Ich war schon immer ein Fan der Art, wie die Apache-Leute versioning handhaben. Die Subversion-Leute nahmen auch eine Variante davon an (den Link nicht finden können, seit sie die Websites gewechselt haben), was für eine konsistente, leicht verständliche Methodik sorgt.

+0

Das Apache-Versionierungsdokument ist gut. Danke für den Zeiger. Es hat einige Version detaillierte Diskussion darüber, wie mit verschiedenen Arten von Änderungen umzugehen. –

1

Semantic Versioning ist eine einfache, aber strenge und vollständige Methode zur Verwaltung von Versionsnummern. Es definiert ein Format wie

major.minor.patch 

Zum Beispiel 1.0.0 oder 2.1.2. Beachten Sie, dass alle drei primären Komponenten immer vorhanden sind und die Komponenten niemals mit Nullen aufgefüllt werden.

Es gibt eine optionale Pre-Release-Komponente wie

major.minor.patch-pre 

, die für alle Arten von Pre-Release-Versionen verwendet werden kann, wie 1.0.0-alpha.1 oder 1.0.0-rc.

Es gibt eine optionale Build Metadaten Komponente wie

major.minor.patch+build 

, die nicht in Bezug auf die Bestellung Versionen berücksichtigt.

Die Semantic Versioning-Spezifikation legt klar fest, wie Versionsnummern Vorrang haben, so dass alle Vorabversionen vor der entsprechenden Release-Version (ohne Pre-Release-Komponente) stehen.

In wenigen Minuten die Spezifikation sorgfältig lesen. Es scheint zunächst einfach und Sie könnten versucht sein, es zu überfliegen, ohne es zu lesen, aber es gibt viele große Aspekte, die gut durchdacht sind.