Frage

TortoiseSVN kann mit verschiedenen Arten von Baum Konflikte helfen mit Bearbeiten Konflikt Fenster.

Das Problem ist, dass im Fall von " ... bei merge " Konflikttypen TortoiseSVN kann nicht erraten, welche Dateien zusammengefügt werden müssen.

Zum Beispiel (Fall: Lokal fehlt, eingehende Löschung beim Update )

  • Entwickler A am Stamm modifiziert Arbeitsdatei Foo.c und Commits in das Repository.
  • I arbeiten Zweig move Datei Foo.c auf Datei Bar.c und begehen es in das Repository.

Ein Merge von Entwickler A die Änderungen an meinem Zweig Arbeitskopie führt zu einem Baumkonflikt:

  • Datei Bar.c ist bereits in meiner Arbeitskopie mit dem Status 'normal'
  • Foo.c ist markiert mit einem Baumkonflikt als fehlend

In den meisten Fällen muss ich merge Entwickler A die Änderungen Foo.c in der umbenannten Bar.c.

Aber wie kann ich es tun?

Datei Foo.c mit Änderungen von Entwickler A ist nicht in meinem Zweig WC.

Die TortoiseSVN Hilfe , sagt „ Beachten Sie, dass, wenn Sie die fehlende Datei aus dem Repository kopieren und dann als aufgelöst markieren, wird Ihre Kopie wieder entfernt werden. Sie müssen den Konflikt lösen zuerst.

Also sollte ich muss chechout Stamm haben Zugriff auf Foo.c Datei für merge? Gibt es einfachen Ansatz, um dieses Problem zu lösen?

Dieses Problem (wie TortoiseSVN Baum Konflikte lösen kann) ist sehr wichtig für mich und unsere Entwickler.

Können Sie mir helfen?

War es hilfreich?

Lösung

Sie können eine „Zwei-URL Merge“ zu verschmelzen, um Änderungen von Foo.c auf ‚Stamm‘ verwenden, um in Ihrem verzweigten und umbenannt Bar.c.

cd branch/B
svn merge http://www/svn/svnroot/branches/B/Bar.c http://www/svn/trunk/Foo.c Bar.c

Während Zweig / B ist eine Arbeitskopie.

So entfernen Sie schließlich den Konflikt Entwickler A und B sollten auf dem gleichen Dateinamen übereinstimmen. verschiedene Dateien für den gleichen Code verwenden, kann es nicht wünschenswert sein.

EDIT: Vom Blick auf, wie ‚andere‘ VCS dieses Problem zu nähern, würde Ich mag auf quote vom Absatz 'Umbenennen von Dateien und Änderungen verschmelzenden' :

  

Wenn ich eine Datei ändern, und Sie es umbenennen   auf einen neuen Namen, und dann verschmelzen wir unsere   entsprechende Änderungen, meine Änderungen   in die Datei unter dem ursprünglichen Namen   wird in die Datei weitergegeben werden unter   seine neuen Namen. (Dies ist Ihnen etwas   könnte erwarten, nicht zu „einfach Arbeit“, aber   alle Steuerrevisionssysteme tatsächlich   dies tun.)

Vielleicht ein Grund zu geben Mercurial ein Versuch.

Andere Tipps

Ich mag zellus-Lösung. Sie könnten auch die Bewegung der Datei in den Zweig zusammenführen und dann die Zusammenführung mit dem Stamm durchführen.

Was ich tun, wenn große Zweige Verschmelzung ist merge Stamm in den Zweig Zuerst werden alle Konflikte lösen (einschließlich Baum Konflikte), dann verschmelzen zu Stamm das Ergebnis zurück. Dies hält Stamm mehr länger stabil während der Zusammenführung Zeit auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top