Was hier passiert, ist Folgendes: Sie erstellen eine neue Datei in Ihrem Trunk und führen sie dann in Ihrem Zweig zusammen. Beim Merge-Commit wird diese Datei auch in Ihrer Filiale erstellt.
Wenn Sie Ihren Zweig wieder in den Trunk zusammenführen, versucht SVN erneut, dasselbe zu tun: Es wird angezeigt, dass eine Datei in Ihrem Zweig erstellt wurde, und es wird versucht, sie in Ihrem Trunk beim Zusammenführungs-Commit zu erstellen, aber sie ist bereits vorhanden! Dies führt zu einem Baumkonflikt.
Der Weg, dies zu vermeiden, besteht in einer speziellen Zusammenführung, einer Wiedereingliederung . Dies können Sie mit dem --reintegrate
Schalter erreichen.
Sie können dies in der Dokumentation nachlesen:
http://svnbook.red-bean.com/de/1.7/svn.branchmerge.basicmerging.html#svn.branchemerge.basicmerging.reintegrate
Wenn Sie Ihren Zweig wieder mit dem Stamm zusammenführen, ist die zugrunde liegende Mathematik jedoch ganz anders. Ihr Feature-Zweig ist jetzt eine Mischung aus doppelten Trunk-Änderungen und Änderungen des privaten Zweigs. Es gibt also keinen einfachen zusammenhängenden Bereich von Revisionen, über den kopiert werden muss. Wenn Sie die Option --reintegrate angeben, bitten Sie Subversion, nur die Änderungen, die für Ihren Zweig eindeutig sind, sorgfältig zu replizieren. (Und tatsächlich geschieht dies, indem der neueste Stammbaum mit dem neuesten Zweigbaum verglichen wird: Der resultierende Unterschied besteht genau darin, dass sich Ihr Zweig ändert!)
Nach der Wiedereingliederung eines Zweigs ist es sehr ratsam, ihn zu entfernen. Andernfalls treten immer dann Baumkonflikte auf, wenn Sie in die andere Richtung verschmelzen: vom Stamm zu Ihrem Zweig. (Aus genau dem gleichen Grund wie zuvor beschrieben.)
Es gibt auch einen Weg, dies zu umgehen, aber ich habe es nie versucht. Sie können es in diesem Beitrag lesen: Reintegration des Subversion-Zweigs in Version 1.6