Download Versionskontrolle mit Subversion - Version Control with Subversion

Transcript
Grundlegende Konzepte
Was aber passiert, wenn Sallys Änderungen mit Harrys kollidieren? Diese Situation wird Konflikt genannt und ist
normalerweise kein allzu großes Problem. Wenn Harry Sallys Änderungen in seine Datei einpflegen lassen will, werden in
seiner Datei die miteinander in Konflikt stehenden Änderungen gekennzeichnet, er kann sämtliche Änderungen sehen und
manuell zwischen ihnen wählen. Das Programm löst solche Konfliktsituationen nicht automatisch, nur Menschen sind in der
Lage, die Probleme zu erkennen und die nötigen intelligenten Änderungen durchzuführen. Wenn Harry die Konfliktsituationen
– vielleicht nach einer kurzen Diskussion mit Sally – gelöst hat, kann er seine Datei problemlos ins Projektarchiv speichern.
Dieses Kopieren-Ändern-Zusammenfassen-Modell (engl. copy-modify-merge model) klingt vielleicht ein wenig chaotisch, in
der Praxis aber läuft es völlig glatt. Die einzelnen Anwender können parallel arbeiten, ohne einander in die Quere zu kommen
oder unnötig warten zu müssen. Wenn sie an den selben Dateien arbeiten, zeigt es sich meistens, dass ihre jeweiligen
Änderungen einander überhaupt nicht stören, wirkliche Konflikte sind selten. Und die Zeit, die es beansprucht, eine solche
Konfliktsituation zu lösen, ist meist wesentlich kürzer als der Zeitverlust, der durch das Sperren auftritt.
Am Ende läuft alles auf einen kritischen Faktor hinaus: Kommunikation zwischen den Anwendern. Wenn diese
Kommunikation eher spärlich abläuft, häufen sich sowohl semantische als auch syntaktische Konflikte. Kein System kann
Anwender dazu zwingen, vernünftig miteinander zu kommunizieren und kein System kann semantische Konflikte erkennen.
Also hat es auch keinen Sinn, sich in dem falschen Gefühl von Sicherheit zu wiegen, dass das Sperren Konflikte irgendwie
vermeiden könnte. In der Praxis verringert das System des Sperrens mehr als andere die Produktivität.
Wann das Sperren notwendig ist
Obwohl das Sperren-Ändern-Entsperren-Modell im Allgemeinen als schädlich für die Zusammenarbeit empfunden wird,
ist es mitunter angebracht.
Das Kopieren-Ändern-Zusammenführen-Modell beruht auf der Annahme, dass Dateien kontextbezogen
zusammenführbar sind – d.h., die Mehrzahl der Dateien im Projektarchiv sind zeilenorientierte Textdateien (wie z.B.
Programm-Quelltext). Aber für Dateien in Binärformaten, wie Grafiken und Klänge, ist es oftmals nicht möglich,
6