Beim Zusammenführen einiger Zweige (unter Verwendung von SVN 1.6.1), bei denen eine Datei zu beiden Zweigen hinzugefügt wurde (und dann in diesen separaten Zweigen bearbeitet wurde), tritt einer der neuen Baumkonflikte auf:
C foo.txt
> local obstruction, incoming add upon merge
Ich brauche die Änderungen von beiden Zweigen, aber der Baumkonflikt gibt mir nicht die üblichen .working-, .merge-left- und .merge-right-Dateien - was aufgrund der Art des Konflikts verständlich ist. Es gibt einige dieser Konflikte, bei denen in jedem Zweig dieselbe Datei gelöscht wurde, die jedoch einfach zu lösen sind.
Wie kann ich dieses Problem beheben? Das SVN Redbean-Buch (für 1.6) behandelt diese Situation nicht.
quelle
Ich habe einen Beitrag gefunden, der eine Lösung dafür vorschlägt . Es ist im Begriff zu rennen:
Dadurch werden die lokalen Versionsdateien als OK beansprucht.
Sie können es für einzelne Dateien oder ganze Projektkataloge ausführen.
quelle
alias mtc='stat | awk "BEGIN { FS=\" \" } /^.{6}C/ { print \$NF }"'
Dann kann ich diesen als Argument für den Auflösungsbefehl verwenden, wie folgt:svn resolve --accept working $(mtc)
svn resolve --accept working path/index.html
SVN-Auflösung - Basis akzeptieren
quelle
Ich habe es gerade geschafft, mich ziemlich gründlich einzuklemmen und zu versuchen, den obigen Ratschlägen von user619330 zu folgen. Die Situation war: (1): Ich hatte einige Dateien hinzugefügt, während ich an meinem ersten Zweig, branch1, arbeitete. (2) Ich habe einen neuen Zweig erstellt, Zweig2 für die weitere Entwicklung, ihn vom Trunk abzweigen und dann meine Änderungen von Zweig1 zusammenführen. (3) Ein Mitarbeiter hatte meine Mods von Zweig1 in seinen eigenen Zweig kopiert und weitere Mods hinzugefügt. und dann wieder zum Kofferraum verschmolzen; (4) Ich wollte jetzt die neuesten Änderungen von Trunk in meinem aktuellen Arbeitszweig, Zweig2, zusammenführen. Dies ist mit SVN 1.6.17.
Die Zusammenführung hatte Baumkonflikte mit den neuen Dateien, und ich wollte die neue Version aus dem Trunk, in dem sie sich unterschieden. Daher habe ich von einer sauberen Kopie von branch2 einen SVN-Löschvorgang für die in Konflikt stehenden Dateien durchgeführt und diese branch2-Änderungen festgeschrieben (wodurch eine temporäre Version erstellt wurde) Version von branch2 ohne die fraglichen Dateien), und dann habe ich aus dem Trunk zusammengeführt. Ich habe dies getan, weil ich wollte, dass der Verlauf mit der Trunk-Version übereinstimmt, damit ich später keine Probleme mehr habe, wenn ich versuche, wieder zum Trunk zusammenzuführen. Das Zusammenführen verlief einwandfrei, ich habe die Trunk-Version der Dateien erhalten, svn st zeigt alles in Ordnung an, und dann habe ich beim Versuch, die Änderungen zwischen dem zuvor vorgenommenen Löschen und dem Hinzufügen aus dem Zusammenführen zu übernehmen, weitere Baumkonflikte festgestellt. Habe eine SVN-Lösung der Konflikte zugunsten meiner Arbeitskopie (die jetzt die Trunk-Version der Dateien hatte) durchgeführt und sie zum Festschreiben gebracht.
Nun, nein. Ein Update einer anderen Kopie von branch2 führte zur alten Version der Dateien (Pre-Trunk Merge). Jetzt habe ich zwei verschiedene Arbeitskopien von branch2, die angeblich auf dieselbe Version aktualisiert wurden, mit zwei verschiedenen Versionen der Dateien, und beide bestehen darauf, dass sie vollständig auf dem neuesten Stand sind! Das Auschecken einer sauberen Kopie von branch2 führte zur alten Version (Pre-Trunk) der Dateien. Ich aktualisiere diese manuell auf die Trunk-Version und schreibe die Änderungen fest, gehe zu meiner ersten Arbeitskopie zurück (von der ich die Trunk-Änderungen ursprünglich eingereicht hatte), versuche, sie zu aktualisieren, und erhalte jetzt einen Prüfsummenfehler für die betreffenden Dateien. Blasen Sie das betreffende Verzeichnis weg, erhalten Sie eine neue Version per Update, und schließlich habe ich eine gute Version von branch2 mit den Trunk-Änderungen. Ich hoffe. Vorbehalt Entwickler.
quelle