Sven Rautenberg: CVS / TortoiseCVS und Marken

Beitrag lesen

Moin!

Vielleicht habe ich es nicht ganz verstanden...

Könnte sein. :)

Ich möchte Marken vergeben, STABLE, Main TEST und DEVEL.

Versionssummer: STABLE.Main.TEST.DEVEL  // Bsp: 1.3.28.2

Du meinst "Versionsnummern"? Die kannst du normalerweise in CVS nicht vergeben, die werden unabhängig verwaltet.

Das soll dich aber natürlich nicht daran hindern, noch eine eigene Numerierung parallel zu führen - die ist dann aber eigentlich nur aus "Marketinggründen" da.

Wenn ich in ein Dokument $Revision$ setze, wird mir aber nur 1.3 angezeigt. Ich muß ja sicherlich irgendwie dem System beibringen das die Versionsnummer STABLE.Main.TEST.DEVEL in mein Dokument geschrieben wird.

Die $Revision$ zeigt die CVS-Versionsnummer. Die ist bei ganz normalen Projekten ohne Verzweigungen immer zweistellig, wobei sich die zweite Stelle mit jedem vorgenommenen Commit dieses Files um eins erhöht.

Vierstellige Versionsnummern in CVS entstehen, wenn man einen Ableger einer Datei anlegt (branch), beispielsweise um ausgehend von der Entwicklungsfront einen Stand unter Feature-Freeze bis zum einsatzfähigen Stadium weiterzuentwickeln, während die Entwicklung neuer Features parallel am Hauptstrang weitergeht. Die ersten beiden Ziffern entsprechen der Version, von er aus abgezweigt wurde, die letzten beiden stehen für den aktuellen Stand im Branch, und die letzte Stelle wird bei Commits wieder um eins erhöht.

Löse dich von der Vorstellung, die CVS-Versionsnummer wäre irgendeine Zahl mit Relevanz. Das ist ein intern mitlaufender Zähler, der für jede Datei einzeln gezählt wird, um die Versionen auseinanderhalten zu können, es hat aber absolut nichts mit "Versionsnummern" zu tun, wie sie zur Beschreibung eines Softwarereleases genutzt werden.

Denn wenn eine Datei nach dem initialen Commit mit Version 1.1 im CVS steht und während der gesamten Entwicklungsarbeit nie verändert wird, so wird sie am Ende dennoch in einem Softwareprojekt mitwirken, das die "Verkaufsversionsnummer" 2.4.16-r3 hat. Da die einzelnen Dateien sowieso alle unterschiedliche Nummern haben, ist die CVS-Version somit ohnehin unbrauchbar, was diese Angaben angeht.

Wenn du im CVS später den Versionsstand wiederfinden willst, der zu einer bestimmten veröffentlichten Version geführt hat, dann benutze Tags und schreibe in den Tagnamen die Versionsnummer der Veröffentlichung rein. Anders kriegst du es nicht hin, genau die Dateiversionen später auszuchecken, die damals zum Build genutzt wurden.

Ich habe CVS und TortoiseCVS http://www.xwolf.de/artikel/cvstutor/ ans laufen bekommen.

Solltest du tiefer einsteigen wollen (ich fand das zumindest ganz informativ), empfehle ich dir http://cvsbook.red-bean.com/. Ist englisch und behandelt im ersten Teil CVS sehr ausführlich, erklärt auch vieles (beispielsweise den Grund für die "Vendor"-Angaben) und hat hilfreiche Tipps für "wie macht man denn am besten...".

  • Sven Rautenberg