(nein, wir wollen nicht nach Git umsteigen).
Nun haben wir beim Mergen aber immer wieder viele unserer Meinung nach unnötiger Konflikte die
das mergen unproduktiv machen. Gibt's da irgendwelche nützlichen Hinweise für uns?
Leider ist aber Git genau die Lösung für derlei Probleme. Wir hatten bei unseren
SVN Repositorys vorher auch solche Probleme nachdem wir von
CVS dorthin umgestiegen waren.
Branchen und Mergen ist bei
SVN echt eine Qual, was aber schlicht an der technischen Umsetzung liegt. Sprich wirklich schön geht es dort einfach nicht.
Seit wir Git nutzen haben wir noch viel mehr Merges, aber deutlich weniger Konflikte und weniger Probleme beim Lösen der Konflikte. Mittlerweile haben wir mit dem Ablauf keinerlei Probleme mehr.
Die Idee war, in den branches etwas unabhängiger arbeiten zu können, damit nicht jeder mit
jeder kleinen Änderung, die vielleicht noch gar nicht ganz durchdacht ist, gleich den anderen
beim nächsten Checkin stört.
Die Idee ist auch vom Prinzip her gut, aber mit
SVN einfach nicht gut umsetzbar.
Bei Git kannst du einfach lokale Branches anlegen und dazwischen wechseln und dann die Änderungen lokal und dann zum Server mergen. Du wirfst also nicht bei jedem Commit gleich alles auf den Server...
Deine Beschreibung eures Ablaufs beschreibt im Grunde sehr gut eine mögliche Arbeitsweise mit Git. Aber eben nicht mit
SVN...
Leider bekomme wir häufig Baumkonflikte einer Art, die nicht im Tortoise
SVN Handbuch
beschrieben sind. Zum Beispiel in einer
pas Datei, die mein Kollege gar nicht geändert
hat und in der ich ein paar auskommentierte Zeilen hinzugefügt habe. Und unserer
Meinung nach auch zuviele normale Konflikte.
Das liegt an der Art und Weise wie
SVN intern Branches behandelt. Reduzieren kann man das Problem indem man strikt nur in eine Richtung Merges durchführt und nie in die andere. Das lässt sich bei eurer Arbeitsweise aber vielleicht kaum realisieren.