Zitat von
Reinhard Kern:
wenn ich das richtig sehe (keine Erfahrung damit), ist das bei einem Versionsverwaltungssystem eigentlich auch nicht anders - ein System, dass aus 2 geänderten Versionen eine logisch korrekte dritte zusammensetzt, kann es doch garnicht geben.
Subversion macht das bei uns täglich. Wenn zwei Entwickler an der gleichen Datei, aber an verschiedenen Stellen Änderungen machen, werden die beim anderen jeweils integriert - automatisch. Nicht ohne Grund heissen diese System auch z.B. 'Concurrent Versions System'.
Zitat von
Reinhard Kern:
Da hilft nur Disziplin, Disziplin, Disziplin. Ich kenne nur Systeme, bei denen ein Entwickler die Komponente, die er ändert, für andere gegen Ändern sperrt. M.a.W. alle können lesen, nur einer kann ändern, aber dazu muss er Source usw. "auschecken", damit die anderen keine u.U. kaputte Zwischenversion bekommen.
Solche Systeme gibt - aber sie machen auch Ärger. Wenn der Entwickler krank wird oder in Urlaub fährt, ohne seine Version wieder zu entriegeln, muss ein Admin ran. Und die zeitliche Koordination (welcher Entwickler darf als nächster an den Quelltext) wird auch erschwert, wenn immer nur einer ändern darf, aber eventuell drei Entwickler Änderungen an der gleichen Datei vornehmen müssen.
Bei kaputten Zwischenversionen gibt es eins auf die Finger - einchecken "darf" man natürlich nur etwas, das zuvor Unittests passiert hat, oder zumindest einen Smoke-Test besteht (kompilier- und startbar), je nach internem Standard.