CVSFootNote(diese Seite heißt "cvs" und nicht "CVS", weil CVS nämlich zur Verwaltung ein Verzeichnis "CVS" benutzt - daher ist der Seitenname in Kleinbuchstaben geschrieben, um Konflikte zwischen dem Dateinamen der Seite und diesem Verzeichnis zu vermeiden.) ist das "Concurrent Versions System", ein netzwerktransparentes Versionskontroll-System. Im Bereich FreieSoftware und OpenSource ist es sehr verbreitet, weil man damit im Team Software entwickeln kann, auch wenn die Programmierer über die ganze Welt verstreut sind.

Homepage: http://www.cvshome.org/

Lizenz: ["GPL"]

Online-Handbücher:

Seiten hier im Wiki:

Papierware:

CVS in Stichworten

cat >>~/.cvsrc
diff -u
update -P
cvs -q
<Strg-D>

Damit werden dann immer unified Diffs erstellt, update immer mit -P aufgerufen und cvs immer mit der globalen Option -q (also relativ "leise").

Beschränkungen von CVS

CVS GUI-Frontends

Es gibt verschiedene Ansätze, die angeblich viel zu komplizierte Benutzung von cvs durch ein GUI-Frontend zu vereinfachen.

[http://www.jcvs.org/ jCVS]

[http://www.syntevo.com/smartcvs/ SmartCVS]

[http://www.twobarleycorns.net/tkcvs.html TkCVS]

Cervisia

Cervisia nutzt die QT-Bibliothek und ist eine wirklich praktische Sache. Cervisia ist in ["KDE"] 3 bereits enthalten und kann für ältere Versionen von http://cervisia.sourceforge.net runtergeladen werden. Cervisia kann die Struktur eines Repositories grafisch darstellen und auch Diffs farbig anzeigen.

nautilus-apotheke

[http://apotheke.berlios.de/ Apotheke] ist ein Plugin für den Datei Manager [http://www.gnome.org/projects/nautilus/ nautilus] von ["GNOME"] mit ähnlichen Fähigkeiten wie Cervisia für ["KDE"].

CVS Utilities

Für CVS gibt es diverse unterstützende Programme, um die Anwendung von CVS zu vereinfachen.

cvsfs

cvsfs ermöglicht die Einbindung eines CVS Repository analog zu einem mount-Befehl. Dabei werden die von CVS verwalteten Dateien in einem lokalen Verzeichnis eingeblendet. Ein Vorteil dabei ist, dass man die Dateien nicht erst per "cvs co" auf die lokale Platte kopieren muss, nur um zu sehen, ob es eine bestimmte Datei gibt. Eine weiterführende Beschreibung gibt es hier auf der Seite ["cvsfs"].

Weitere Versionsverwaltungssoftware

siehe auch [http://www.onlamp.com/pub/a/onlamp/2004/01/29/scm_overview.html ONLamp.com: The New Breed of Version Control Systems]

Fragen

OffeneFrage

Gibt es eine Möglichkeit CVS so zu verwenden, dass es zwei verschiedene Repositories benutzen kann? Beispiel:

Ich habe auf meinem Notebook Dateien, die ich mal zu Hause und mal auf der Arbeit, ab und an auch unterwegs bearbeite. Auf der Arbeit gibt es ein pserver-basiertes CVS Repository. Nun würde ich gerne auch unterwegs und zu Hause eine Versionierung haben, um Zwischenstände sichern zu können. Dafür böte sich wohl ein lokales Repository auf dem Notebook an. Ziel ist es, unterwegs auch Zwischenstände commiten zu können und dann in der Firma wenigstens den Endstand, idealerweise auch die Zwischenstände in das Master-Repository zu übernehmen.

Auf Slashdot hat gerade jemand was von einer gepatchten CVS-Version, die mehrere Repositories unterstützt, geschrieben. Kennt die jemand? Ausserdem könnte ich mir vorstellen, dass es Tools gibt, die in den CVS Unterverzeichnissen rumpatchen, um einen Tree auf ein anderes Repository umzuschalten, damit wäre mir für's erste auch geholfen, vorausgesetzt es funktioniert zuverlässig. Hat da vielleicht wer 'nen Tip?

-- twm

["arch"] -- ThomasWaldmann DateTime(2003-11-13T08:37:36Z)

Soweit ich das sehen kann, ist arch ein von cvs unabhängiges Sourcecodeverwaltungsprogramm, das nicht auf ein existierendes cvs Repository zugreifen kann. Insofern hilft es mir nicht weiter, da eine Voraussetzung ist, dass ich das Repository in der Firma verwenden kann, welches nunmal cvs basiert ist. Oder schlägst Du vor, cvs und arch parallel zu verwenden? -- twm

Ich mach das derzeit genau so. MoinMoin hat ein offizielles CVS, entwickeln tue ich aber mit tla. Ein Branch in tla ist dabei immer synchronisiert mit dem offiziellen cvs. So kann man beides gleichzeitig nutzen. Steht übrigens auch in der tla-Doku, wie das genau geht. -- ThomasWaldmann DateTime(2003-11-16T13:29:55Z)


KategorieVersionsKontrollSystem