2009-07-27 5 views
27

Ich weiß nicht, wenn das Svn-Team beschlossen, Baum Konflikte auf uns zufügen, aber es hat die Merge-Funktionalität von SVN vollständig gebrochen.Svn Merge-Funktionalität durch Baumkonflikte gebrochen

Ich habe einen Zweig und ich möchte die neuesten Änderungen aus dem Stamm in den Zweig zusammenführen. Ich habe bereits eine solche Zusammenführung gemacht, aber diese scheitert an einem Baumkonflikt. Hier ist der Befehl:

$ svn --force merge -r 3185:3192 svn://chamar2/rx-services/SAMS . 
svn: Attempt to add tree conflict that already exists 

Das erste Mal, dass ich diese Zusammenführung versuchte (ohne --force) nur den Baum Konflikt geschaffen und hat nichts verschmelzen. Jetzt meldet es nur die obige Nachricht.

Wenn ich svn status auf der Zweig Arbeitskopie tun, zeigt es alle Dateien, die Änderungen haben, die noch nicht auf den Stamm zusammengeführt wurden. Natürlich ist der Zweck meiner Branche, diese Änderungen dort vorzunehmen, wo sie noch nicht im Kofferraum sind.

Was dachten sie, als sie das taten?

Ich habe keine brauchbaren Informationen darüber gefunden, was Baumkonflikte verursacht und wie ich weiterarbeiten kann, jetzt wo Svn diese Dinge erstellt hat.

Gibt es eine Möglichkeit zu sagen, Svn Baumkonflikte zu vergessen und einfach die Zusammenführung wie früher zu tun?

Ich benutze einen 1.6 Client und einen älteren SVN-Server (wahrscheinlich 1.3.1).

+2

SVN fügte Baumkonflikte nicht als Merkmal hinzu; sie sind der Art der Revisionskontrolle eigen. Nun könnte man sagen, dass SVN einen schlechten Job bei der Behandlung von Baumkonflikten macht und/oder darüber informiert, aber zumindest erkennt es sie und versucht, Sie wissen zu lassen, was vor sich geht. –

Antwort

12

Das Problem stellte sich heraus, dass ich das Eltern/Verzeichnis als Quelle der Zusammenführung anstelle des Eltern/Trunk/Verzeichnis gewählt hatte. Es war Benutzerfehler, aber die Baumkonfliktnachricht ist verwirrend. Wenn svn gerade vorangeschritten wäre und die Zusammenführung gemacht hätte, hätte ich das Problem sofort gesehen.

Baum Konflikte haben neue Nachricht Semantik eingeführt, die einige gewöhnungs nehmen.

Danke für den Zeiger auf die Tortoise-Dokumentation zu Tree Conflicts. Es ist die einzige Dokumentation, die ich gesehen habe, die sich mit der Arbeit an Zweigen beschäftigt. Das angegebene Beispiel erklärt nicht, warum ich Baumkonflikte in den Dateien hatte, die ich in der Filiale geändert hatte. Die Baumkonflikt-Nachrichten werden etwas gewöhnungsbedürftig sein.

Es sieht aus wie alles, was Sie in den meisten Fällen zu tun ist, um den Baum Konflikte gelöst markiert, und in diesen Fällen ist es wie Baum Konflikte sieht ist nur Lärm.

Mark Phippard sagt, dass eine ältere Server-Version nicht Baum Konflikte verursachen. Der Server muss nur aktualisiert werden, wenn Sie Merge-Tracking-Unterstützung benötigen und Ihr Server vor 1.5 ist. Offenbar verschmelzen Tracking das einzige, was von älteren SVN-Server fehlt:

http://eclipse.open.collab.net/ds/viewMessage.do?dsForumId=62&dsMessageId=332448 
+1

Baum Konflikte: Stellen Sie sich ein Verzeichnis als Textdatei mit jedem Unterverzeichnis als Zeile vor. Fügen Sie jetzt Zeilen aus dieser Datei hinzu und löschen Sie sie - Sie erhalten einen Konflikt. Dies ist genau das, was bei Baumkonflikten passiert, nur dass der Zusammenführungseditor nicht existiert (offensichtlich, da die Antwort darin besteht, die Verzeichnisse an die richtige Stelle zu kopieren und als aufgelöst zu markieren). – gbjbaanb

2

Ich habe eine wilde Vermutung, dass Sie eine schlechte Interaktion zwischen dem 1.6-Client und dem 1.3-Server beobachten. Die Baumkonflikterkennung ist eine neue Funktion von 1.6. Außerdem wurde die Merge-Unterstützung bei 1,5 geändert (und viel mehr nutzbar gemacht).

Ich würde versuchen, das Server-und Repo-Format auf 1.6 zu aktualisieren, eine andere Sache zu versuchen, ist eine 1.5 (keine Baum Konflikte) oder eine 1.4 (und keine neue Merge weder) Client.

Auch dies ist ein all Vermutung und vielleicht nicht wirklich nützlich sein ...

+0

Ich hatte darüber nachgedacht, meinen Client auf 1.5 zurückzusetzen, aber svn hat die unangenehme Angewohnheit, das Format der Arbeitskopie mit jeder neuen Version zu ändern, und meine 1.6-Arbeitskopie funktioniert nicht mit einem 1.5-Client. Möglicherweise muss ich den Client herunterstufen und einen neuen Checkout durchführen. –

10

svn: Versuch Baumkonflikt hinzuzufügen, die bereits

Subversion existiert beschwert, weil, nachdem Sie ein tat Zusammenführen, die einen Konflikt erzeugt haben, haben Sie dann das gleiche wieder zusammenführen. SVN versuchte, einen Konflikt hinzuzufügen, bemerkte jedoch, dass der Konflikt bereits durch die vorherige Zusammenführungsoperation erstellt wurde. Es gibt also eine Warnung richtig aus.

Wenn Sie einen Merge-Vorgang ausführen und Sie nicht mit dem Ergebnis zufrieden sind, dann bevor Sie etwas anderes versuchen, sollten Sie zuerst die lokalen Änderungen zurücksetzen.

Wie für den ursprünglichen Baum Konflikt: zu verstehen, warum das Verhalten von den älteren Clients unterscheidet und wie solche Konflikte zu lösen, müssen Sie die section on tree conflicts im Svn Buch lesen. Das TortoiseSVN Handbuch hat auch eine gute topic on tree conflicts.

+4

Ich hatte gerade "Versuch, Baumkonflikt hinzuzufügen, der bereits existiert" eine brandneue Zusammenführung machend. Gefolgt von "Fehler beim Lesen der gespoolten REPORT-Anfrage Antwort" – fiddlesticks

+2

-1: Ich bekomme diesen Fehler bei einer neuen Zusammenführung ohne vorherige Zusammenführungen. Ich glaube, es sind zwei Baumkonflikte in der gleichen Verschmelzung, die das Problem verursachen. – darreljnz

-1

Hallo Leute Ich hatte genau das gleiche Problem, Baum Konflikte, wenn ich eine svn merge zu tun versuchte. Es stellt sich heraus, Laurynas war absolut richtig. Es geschah, weil das SVN-Repository eine alte Version war. Auf dem Server ging ich in das Verzeichnis {repopath} \ db \ format und innerhalb der Formatdatei enthielt es "2".

Alles, was ich war ein

svnadmin upgrade {repopath} 

zu tun haben, die ziemlich schmerzlos war.

Nachdem ich das getan hätte, als ich versuchte, merge-Tracking zu verwenden, ich habe keine weiteren Baum Konflikte bekommen! Danke für den Tipp!