361 Stimmen

Warum bekomme ich Baumkonflikte in Subversion?

Ich hatte einen Feature-Zweig meines Stammes und führte regelmäßig Änderungen aus meinem Stamm in meinen Zweig ein und alles funktionierte einwandfrei. Heute wollte ich den Zweig wieder mit dem Stamm zusammenführen, und alle Dateien, die nach der Erstellung meines Zweigs zu meinem Stamm hinzugefügt wurden, wurden als "Baumkonflikt" gekennzeichnet. Gibt es eine Möglichkeit, dies in Zukunft zu vermeiden?

Ich glaube nicht, dass diese richtig gekennzeichnet sind.

0voto

rescdsk Punkte 8548

Ich hatte das gleiche Problem und löste es, indem ich die Zusammenführung mit diese Anleitungen . Im Grunde verwendet es die "2-URL-Zusammenführung" von SVN, um die trunk auf den aktuellen Stand Ihres Zweigs zu bringen, ohne sich um Geschichte und Baumkonflikte kümmern zu müssen. Das hat mich davor bewahrt, 114 Baumkonflikte manuell zu beheben.

Ich bin mir nicht sicher, ob es die Geschichte so gut bewahrt, wie man es gerne hätte, aber in meinem Fall hat es sich gelohnt.

0voto

anre Punkte 3458

Ein Szenario, das mir manchmal begegnet:

Angenommen, Sie haben einen Stamm, von dem Sie einen Release-Zweig erstellt haben. Nach einigen Änderungen am Stamm (insbesondere der Erstellung des Verzeichnisses "some-dir") erstellen Sie einen Feature/Fix-Zweig, den Sie später ebenfalls in den Release-Zweig einbinden möchten (weil die Änderungen klein genug waren und das Feature/Fix für die Veröffentlichung wichtig ist).

trunk -- ... -- create "some-dir" -- ...
     \                                  \-feature/fix branch
      \- release branch

Wenn Sie dann versuchen, den Feature/Fix-Zweig direkt mit dem Release-Zweig zusammenzuführen, kommt es zu einem Baumkonflikt (obwohl das Verzeichnis im Feature/Fix-Zweig gar nicht existiert):

svn status
!     C some-dir
      >   local missing or deleted or moved away, incoming file edit upon merge

Sie müssen also explizit die Commits zusammenführen, die vor der Erstellung des Feature/Fix-Zweiges, der das Verzeichnis "some-dir" erstellt hat, auf dem Stamm gemacht wurden, bevor der Feature/Fix-Zweig zusammengeführt wird.

Ich vergesse das oft, weil das in Git nicht notwendig ist.

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