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

Steffen Dettmer steffen at dett.de
So Jan 21 16:11:14 CET 2007


* Volker Grabsch wrote on Sun, Jan 21, 2007 at 12:54 +0100:
> On Sun, Jan 21, 2007 at 12:05:37AM +0000, Peter Ross wrote:
> > [here]
 [...] 

[komische Aussagen gelöscht]

> Es geht darum, dass nicht die Versionen im Zentrum stehen, sondern
> die Änderungen *zwischen* den Versionen, auch Chagesets genannt. Darum
> geht es. Changesets/Patches stehen im Mittelpunkt, nicht die Versionen.

Was übrigens bei CVS im Prinzip auch so ist, und so werden die Dinger im
Repo auch gespeichert.

Ich denke, der Unterschied ist, ob ein SCM weiss, was wann wie gemergt
wurde (HG, GIT, ...) oder nicht (CVS, SVN).

[komische Aussagen gelöscht]

> > Deshalb behilft sich CVS mit Tags, so dass man zumindest zu bestimmten 
> > Zustaenden fileuebergreifend zurueckkommen kann.
> 
> Ein anderes Problem, das spezifisch für CVS aufgrund seiner RCS-Geschichte
> ist. Es lohnt daher nicht der Verallgemeinerung.

Ich empfinde Tags nicht als Problem, sondern einfach nur geil. Und
besser als bei SVN, wo ich ein Tag (also einen markieren Stand) ä#ndern
kann, weils ja doch bloss ein Branch ist! Schrecklich :)

> Wenn es ein zentrales Repository gibt,
> und jeder Entwickler vor jedem Commit mit dem Repository synchronisiert,
> und jeder Entwickler jeden Commit sofort hochlädt,
> 
> dann gibt es keinen Unterschied zwischen zentralen und verteilten VK.
> 
> Dann entartet in einer verteilten VK der Changeset-Baum zu einer
> einfachen langen Kette. 

(ist immer noch falsch, CVS und SVN können beide Branches, hatten wir ja
nebenläufig schon in anderer Mail)

> Besteht dein Feature hingegen aus meheren Changesets (mehreren
> "commits"), musst du in Subversion einen Branch anlegen. Insbesondere
> müssen beide Entwickler jeweils online sein, und der Branch muss
> vorher explizit angelegt werden.

WAS?! Stimmt das so? Wäre ja noch ein extremer CVS Vorteil (dass man
branches nicht /vorher/ anlegen muss - weil man vorher vielleicht gar
nicht weiss, dass man einen braucht)! Aber glaube ich erstmal nicht. So
schlecht kann SVN ja nu auch nicht sein.

> > Ich habe keine ausgiebigen Erfahrungen mit Dateien auf der "rechten Seite" 
> > Deiner Tabelle oben (nur Checkouts aus GIT), aber ich denke, das 
> > grundlegende Synchronisationsproblem ist bei allen aehnlich bei 
> > Subversion,
> 
> Nein, Subversion macht sich das Synchronisierungs-Problem besonders
> leicht, weil es vereinfacht gesagt vor jedem "commit" ein "update"
> verlangt.

Meinst Du, so wie CVS? Da gilt das nur dateiweise. Bei SVN gilt es
maximal verzeichnisweise, aber nicht generell.

> Branches werden von Subversion im Vergleich zu CVS relativ elegant
> gehandhabt. Aber im Vergleich zu den verteilten VK ist Subversion
> verdammt umständlich.

elegant? Wieso? Find das blöd. Brauchste ein copy und ein switch. switch
find ich logisch ok, aber copy?! Ich will doch nix kopieren (rein
logisch gesehen). Branch als Konvention. lol, mag ja mathematisch auf
das reduzierbar sein, aber bestimmt nicht für Menschen...

Das CVS Branch-Konzept ist anschaulich und einfach zu verstehen. Selbst
nicht-Informatiker ohne Erfahrung verstehen das in wenigen Wochen :)

> Dezentrale VK sind darauf ausgelegt, asynchron arbeiten zu können.
> Mehr Anspruch an die VK, aber viel weniger Stress für die Benutzer.

(funktioniert natürlich auch wieder nur gut, wenn man weniger eng
zusammenarbeitet, sonst macht man alles doppelt, wenn man
"microbranches" ausnutzt / übertreibt). Das schöne an dezentralen SCMs
ist IMHO, dass man arbeiten kann, wie man will, mit allen Zwischenstufen
bis hin zu zentraler Arbeitsweise. Obwohl das sicherlich auch höhere
Ansprüche an den Benutzer stellt.

> > Zurueck zu Deinen Versionskontrollen: haben nicht alle
> > Baumstrukturen, und wenn Mergen dazukommt, gerichtete Graphen?
> 
> Subversion nicht wirklich. Dort wird alles an einer Kette aufgefädelt.
> Sicher, die Branches in Form von Kopien sind ganz nett, 

Ich finde eher, die Branches in Form von Kopien sind technisch eine
Kette, aber logisch gar keine Kopien (sondern Branches) und sehr wohl
gerichtete Graphen. Da hat bloss jemand ein Implementierungsdetail als
Feature verkauft.

Weiss eine "svn copy" überhaupt, von welcher Quelle es stammt?

oki,

Steffen

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





Mehr Informationen über die Mailingliste linux-l