[linux-l] Versionskontrollen (war: Warum gibt es keine einheitliche Dokumentation?)

Steffen Dettmer steffen at dett.de
Mo Jan 22 20:29:51 CET 2007


* Peter Ross wrote on Mon, Jan 22, 2007 at 08:16 +1100:
> On Sun, 21 Jan 2007, Volker Grabsch wrote:
> 
> > Wie du auf diese andere Begriffs-Definition kommst, weiß ich nicht.
> > Auf welcher Webseite / in welchem Buch hast du das aufgeschnappt?
> 
> Aus meiner Erfahrung. Es gibt einen Unterschied zwischen RCS und CVS, die 
> lediglich Aenderungen auf Dateiebene bearbeiten, und Subversion und den 
> anderen, die dateiuebergreifende Aenderungen beruecksichtigen.

Leute, hört doch auf. RCS ist Dateiweise, CVS und SVN nicht. Es gibt
drei grobe Stufen hier:

RCS

CVS, SVN, ...

HG, GIT, ...

CVS steht doch nicht mit RCS auf einer Stufe. Verteufelt das jetzt mal
nicht, bloss weils kein HTTP kann. SVN ist doch fast das gleiche. Gut,
bei CVS benutzt man Revisionsnummern eigentlich kaum, bei SVN braucht
man die zum mergen...

> Gelegentlich mache ich auch Aenderung an verschiedenen Orten, und spaeter 
> werden sie wieder eingecheckt. Wenn es dabei zu Konflikten kommt, da ich 
> ein zentrales Skript an zwei Orten geaendert habe, sagt mir das 
> Subversion. Dann muss ich die halt haendisch einpflegen (wobei ich 
> sicherlich nicht allzu geschickt bin, ich benutze diff zu 
> .svn/textbase, svn update und nochmal diff; mit sed, patch etc. koennte 
> ich da bestimmt noch effizienter werden.)

WAS? Gibt doch auch svn diff -r und so? Mit CVS ist so ein Konflikt kein
Problem. Mit SVN soweit ich weiss genausowenig.  Da hab ich aber wenig
Erfahrung, weil ich in dem Repo da kaum Konflikte erzeuge, weil zu viele
ein-Mann-Verzeichnisse :)

> Wenn ich in zentralen Skripten aber eine Aenderung vornehme, die sich auf 
> ein bestimmtes ortspezifisches Skript (rc.services.${location}) auswirkt, 
> muss ich, damit das Chanbgeset "sauber" arbeitet, diese als Teil eines 
> Changesets definieren. Prima, ich muss mir die Gedanken VOR der Aenderung 
> machen.
> 
> Bei Subversion und meiner Vorgehensweise muss ich das auch, indem ich 
> branche.

Bei CVS kannste vorm einchecken ggf. noch fix branchen. Bei SVN nicht?

> Ein Vorteil von Deinem Changeset ist, dass ich den "Branch" auf ein Set 
> von Dateien anwende. DAS ist mit Subversion so nicht moeglich.

Bei CVS muss der Pfad gleich sein, dann gehts aber einfach. Kann man
Änderungen (von tag a nach tag b) irgendwo hin mergen. Allerdings kann
man "von a nach b" keinen symbolischen Namen geben.

> Bei Subversion waere das ganze Repository gebrancht worden, und ich haette 
> mit dem alten zentralen Skript gearbeitet, dabei waere ich _nicht_ auf die 
> Nase gefallen.

Wieso, kannst bei SVN doch genauso Teile branchen und auch zu einem
branch später noch was reinkopieren und so. Ganz kranke Sachen kann man
sich da ausdenken :)

> Neben Vor- und Nachteilen,
> 
> vielleicht faellt Dir jetzt ein echter Unterschied zwischen Subversion und 
> Deinen Changesets auf?
> 
> Ich kann praktisch Teile des Repositories branchen, nicht nur das
> gesamte.

Bei Changesets ist doch das Schöne, dass Du gar nicht branchen musst.
Ein "branch" sind einfach nur zwei unterschiedliche Changesets mit
gleichem Elternknoten. Dann kannste ein Changeset auch auf einen anderen
Elternknoten anwenden (mergen).

> Das ist ein echter Unterschied, der eine neue Definition verdient,
> aber nicht, ob etwas im Mittelpunkt steht oder nicht.

*Diesen* seh ich dann nicht - oder es gibt ihn nicht.

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.





Mehr Informationen über die Mailingliste linux-l