2012-10-03 10 views
15

Ich habe zwei Zweige (Kinder von Stamm), die für den Test in eine Niederlassung zusammengeführt werden müssen, aber sie können nicht in den Stamm gehen. Beide Zweige sind mit trunk @ HEAD auf dem neuesten Stand. Deshalb möchte ich von diesem gehen:SVN Merge zwischen zwei Zweigen - "Pfad nicht gefunden"

__________________trunk 
    \___duck \ 
       \___beaver 

dazu:

__________________________trunk 
    \ 
    \______________platypus 

ich die Filiale Schnabeltier aus der neuesten Version von Stamm erstellt, und ich versuche, Ente und Biber in diese neue Kopie zu fusionieren von Stamm:

svn copy ^/trunk ^/branches/platypus; 
svn switch ^/branches/platypus; 
svn merge --reintegrate ^/branches/duck; 
svn merge --reintegrate ^/branches/beaver; 

aber die Merge-ops scheitern

svn: '/blah/!svn/bc/12047/repo/branches/duck' path not found 

Wenn ich versuche, Ente (oder Biber) in den Kofferraum zu integrieren, funktioniert es gut. Was fehlt mir hier?

+0

Ente, Biber, Plutypus - sehr lustig – Konstantin

Antwort

15

Ich hatte den gleichen Fehler und war in der Lage, es durch manuell zu lösen unter Angabe alle Revisionsnummern wollte ich zusammenführen, anstatt SVN entscheiden zu lassen. Dies ermöglichte die Fortsetzung der Zusammenführung und veranlasste mich wie erwartet zu Zusammenführungskonflikten.

ich TortoiseSVN wurde mit den Revisionen von Hand zu holen, aber ich nehme an die SVN-Befehlszeile, es wäre so etwas wie:

svn log --stop-on-copy https://svn.blah/svn/proj1/branches/xyz 

dann die Revisionsnummern alle aufschreiben und verschmelzen sie alle in einem Rutsch, z.B:

svn merge -c123,124,156,159 https://svn.blah/svn/proj1/branches/xyz 
-1

Verwenden Sie die Option --ignore-ancestry, wenn Sie die Zusammenführung durchführen. Es könnte sein, dass der Zusammenführungsverlauf unvollständig ist (möglicherweise aufgrund der Schildkröte oder irgendeines Clients für diese Tatsache), und etwas, das auf dem Zweig ausgeführt wurde, versucht, auf die Arbeitskopie angewendet zu werden, wenn Sie eine "normale" Zusammenführung durchführen.

+1

Danke, aber das funktioniert nicht. Sie können --reintegrate und --ignore-ancestry nicht gleichzeitig verwenden, und eine Zusammenführung ohne --integrate erzeugt nur eine Tonne von Konflikten, da beide Zweige die gleiche Verbindung haben – Mathew

1

Ich hatte ein ähnliches Problem bei der Reintegration eines Zweiges, der aus einem anderen Zweig (der jetzt wieder reintegriert wurde) zusammengeführt wurde. Wie folgt aus:

-----------------------------r7------------------ 
    \      /   /ERROR !svn/bc/4/repo/branches/duck' path not found 
    r1----dinosaur--r5-------   /
        \---duck------------r9 

Es scheint nicht möglich zu sein, Ente zu reintegrieren, der Pfad nicht gefunden Fehler über r4 beschwert - aber ich konnte spezifische Revisionen (r5-r9) von Ente mit dem Stamm zusammenführen.

0

beschloß ich, das wie folgt aus: die problematischen Zweige in

  1. Stamm

    Eingebunden
  2. Erstellt neue "konsolidiert" Zweig vom Stamm

  3. zurückgekehrt Stamm in seinen Zustand vor Schritt 1 und die Umkehrung begangen

  4. Eingebunden Datensatz nur aus Schritt 3 in der Zweig

  5. Geprüft durch neuen konsolidierten Zweig mit dem Stamm verschmelzen, aber es nicht natürlich

End Ergebnis ist ein neuer Zweig beging die Änderungen aus dem umschließende Feature Zweige und Trunk unverändert (aber leider mit einigen neuen Einträgen im Log).

Verwandte Themen