3 Stimmen

Subversion - Zusammenführung von Zweig und Stamm

Ich habe einen Zweig (Revision 9002) aus meinem Stamm erstellt und seit ein paar Wochen Änderungen daran vorgenommen. Ich habe auch die Änderungen aus dem Stamm in den Zweig regelmäßig und ohne Probleme zusammengeführt, indem ich

svn merge -rXXXX:HEAD

wobei XXXX die Revision nach derjenigen ist, die durch die vorherige Zusammenführung entstanden ist. So weit, so gut.

Jetzt muss ich den Zweig mit dem Stamm zusammenführen und habe dabei große Schwierigkeiten. Ich habe folgendes versucht SVN: Zusammenführen eines Zweigs in den Stamm , aber bei der Verwendung von

svn merge -r9003:head http://path/to/my/branch

Ich erhalte etwa 20 Baumkonflikte, gefolgt von svn: Attempt to add tree conflict that already exists und der Vorgang wird abgebrochen.

Ist dies die richtige Vorgehensweise? Irgendwelche Ideen?

Das letzte, was ich an dem Zweig gemacht habe, war das Zusammenführen des Stammes mit ihm, so dass der Zweig im Grunde mein neuer Stamm ist.

2voto

Rup Punkte 32603

Wenn Sie alles aus dem Stamm in Ihren Zweig zusammengeführt haben und diesen zum Stamm befördern wollen, ist es wahrscheinlich am einfachsten, die Verzeichnisse im Repository zu verschieben

svn move http://path/to/trunk http://path/to/branches/old-trunk
svn move http://path/to/branches/my-new-trunk http://path/to/trunk

Da Sie nun in den Stamm kopiert haben, sollten Sie svn log --stop-on-copy (die Standardeinstellung in Tortoise) wird an diesem Punkt aufhören - Sie müssen dieses Flag ausschalten, um weiter zurück zu sehen.

Andernfalls müssen Sie wohl svn merge wie bisher in kleinen Gruppen von Überarbeitungen und nicht in einem Zug und lösen Sie die verschiedenen Konflikte nach und nach.

1voto

William Punkte 3505

Ich benutze immer die --reintegrate Flagge, wenn ich einen Zweig wieder in den Stamm einfüge. Wenn Sie sich also im Verzeichnis einer ausgecheckten Kopie von trunk befinden, versuchen Sie svn merge --reintegrate ^/path/to/branch . Außerdem bin ich mir nicht sicher, warum Sie svn merge -rXXXX:HEAD und nicht nur svn merge ^/trunk aus dem Verzeichnis einer ausgecheckten Kopie von trunk. So habe ich es immer gemacht, obwohl ich mich häufig irre :)

1voto

Thomas Meyer Punkte 91

Um Ihren Zweig zusammenzuführen, müssen Sie den Unterschied zwischen dem Zweig und dem Stamm zusammenführen (d.h. eine manuelle --reintegrate ).

Also

svn merge http://path/to/trunk@N http://path/to/branch@HEAD .

wobei N ist die letzte Revision des Stammes, den Sie in den Zweig eingebunden haben. Wenn man bedenkt, dass Sie zuletzt den Zweig mit dem Stamm synchronisiert haben, könnten Sie mit HEAD .

In gewisser Weise weisen Sie SVN an, alle Änderungen im Zweig zusammenzuführen, mit Ausnahme derjenigen, die aus dem Stamm stammen.

Wenn Sie Ihren Zweig mit dem Stamm synchronisieren wollen, führen Sie außerdem svn merge http://path/to/trunk .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X