Mit Bäumen meine ich hier zwei separate Repositories, aber dafür habe ich kein geeignetes deutsches Wort gefunden. Immerhin gibt es schon Zweige (»Branches«), da ist Baum schon eine ganz treffende Bezeichnung. Egal. Worum es eigentlich geht, ist zwei komplett unabhängige Bazaar-Bäume zusammen zu führen, ohne die Geschichte zu verlieren. Hier stelle ich meine Methode vor, die ich selbst ausgeknobelt habe, da ich im Internet nichts finden konnte.
Nehmen wir mal an, dass wir zwei Bazaar-Bäume namens bzr1/ und bzr2/ haben, wobei bzr2/ in bzr1 übernommen werden soll. Dabei wird bzr2/ ein Zweig von bzr1/ ohne gemeinsame Vorfahren, die Revisionsnummern erhöhen sich also dort erst beim Zusammenführen und werden nicht zwischen die ursprünglichen eingefügt. Achtung, am besten das Zusammenführen an Kopien der Bäume ausführen, falls etwas schief gehen sollte!Zuerst wird in bzr2/ der Baum bzr1/ als Elternteil angegeben:
$ bzr bind ../bzr1
Dann führen wir beide Bäume zusammen, die Zahl der Revisionen müssen wir angeben, da Bazaar sonst verwirrt ist.
$ bzr merge -r 1..4 ../bzr1
Ein Update bringt den jetzt zusammengeführten Baum auf den richtigen Stand. Alle aufgeführten Konflikte werden wir im nächsten Schritt lösen.
$ bzr update
Alle konfliktierenden Dateien mit Hilfe des conflicts-Befehls anzeigen und mit resolve auflösen. Das kann man sehr schön mit dem find-Befehl unter Unix/Linux lösen, indem man alle Dateien durchiteriert. Fälschlich angegebene Dateien werden von Bazaar ignoriert.
$ bzr conflicts
$ bzr resolve
Ein lokaler Commit bringt alles wieder in Ordnung, ohne bzr1/ anzurühren. Danach werden beide Bäume getrennt.
$ bzr commit --local -m "merge"
$ bzr unbind
| < Zurück | Weiter > |
|---|





Kommentare