Kann ich einen Zweig aus dem Kofferraum aktualisieren, ohne eine Zusammenführung auszuführen?

StackOverflow https://stackoverflow.com/questions/2372424

Frage

Ich habe das wahrscheinlich einfach nicht durchgesehen, oder vielleicht bin ich mir einfach nicht bewusst, dass eine bereits vorhandene Option in der Subversion (ich bin sicherlich kein Experte).

Ich frage mich nur, ob ich eine Zweigstelle erstellt habe, um an einer neuen Funktion zu arbeiten, wenn es eine einfachere Möglichkeit gibt, den Zweig mit dem auf dem Laufenden zu halten Rüssel'S jüngste Überarbeitungen, ohne alle Schwierigkeiten zu machen, eine Reihe von Überarbeitungen zu verschmelzen. Ich möchte einfach in der Lage sein, alle Überarbeitungen aus dem Kofferraum zu aktualisieren und zu erhalten (und Der Zweig natürlich), während meine engagierten Änderungen nur den Zweig beeinflussen. Ist das möglich? Macht das, was ich frage, Sinn?

Ich nehme an, dies ist nicht unbedingt anders, als eine Reihe von Überarbeitungen zusammenzufassen. Es ist nur so, dass ich Ankhsvn verwende, das all diese Best-Practice-Überprüfungen durchführt, bevor ich eine Verschmelzung zulässt, und manchmal fühlt es sich so an, als wäre es viel komplizierter, als es sein muss. Die Idee ist, dass ich meinen Zweig mit allen Commits auf dem neuesten Stand halten möchte. tun Fusioniere meinen Zweig in den Kofferraum, alles geht reibungslos (wie möglich).

War es hilfreich?

Lösung

Wenn Sie Ihre Filiale mit den neuesten Trunk-Check-Ins datieren, wird als Zusammenschluss bezeichnet.

Ich weiß, dass das Zusammenführen manchmal ein königlicher Albtraum sein kann, aber genau das ist das Zusammenführen.

Andere Tipps

Tl; dr; Nein, Sie müssen sich verschmelzen, hier sind einige Anweisungen

Es ist nicht so schlimm, wie du denkst. Ich werde die Schritte der Befehlszeile, die ich verwende, skizzieren. Ich werde Vimidiff verwenden, um die Konflikte zu verwalten, die Sie mit MELD oder einem weiteren Diff -Tool verwenden können, das Sie möchten. Befehle sind die Hash '#' Marke voraus

<in branch first time from copy>
# svn log --stop-on-copy | tail 
<read the revision that was the copy instruction in this case r229>
# cd ../../trunk
# svn up
<I make note of the latest rivision which is r334>
<now I go back to the branch>
# cd ../branches/branch 
# svn merge -r229:334 svn://url.to.svn.server/project/trunk
<a whole bunch of stuff happens>
< now I check for conflicts >
# svn status | grep ^C
<which outputs something like>
C       public/tools/Diagnostic.class.php
C       public/domain/Report_Setup_Parameter.class.php
C       public/modules/mReports.module.php
<I now revert all these and manually merge them>
# svn revert public/tools/Diagnostic.class.php
...
<revert done now manuall doinng the merge
# vimdiff public/tools/Diagnostic.class.php ../../trunk/public/tools/Diagnostic.class.php
...
<now all the changes are done>
# svn commit -m "Merging trunk into branch 'branch' r:229:334"
commited revision 335

Fertig, wenn Sie es reguliert tun, gibt es nicht viele Änderungen. Nach der ersten Zusammenführung müssen Sie die Revisionsnummer der letzten Zusammenführung verwenden. Daher würde in der Zukunft der Befehl im SVN -Protokoll nachsehen, wenn die Überarbeitung der letzten Zusammenführung in diesem Fall 335 war

# svn merge -r335:370 svn://url.to.svn.server/project/trunk

Alle anderen Schritte sind gleich.

Die Idee ist, dass ich meinen Zweig mit allen Commits auf dem neuesten Stand halten möchte.

Um dies zu erreichen, müssen Sie die Range-Revision aus dem Kofferraum verschmelzen. Tatsächlich ist es eine gute Praxis, diese Art von Zusammenführung von Zeit zu Zeit zu einem Zweig zu machen, um mit dem, was im Koffer vor sich geht, auf dem neuesten Stand zu sein.

Ich weiß nichts über die Werkzeuge für Ankhsvn, aber 'Pure' SVN hat sehr gute Werkzeuge, die die Zusammenführungsvorgänge recht einfach machen. Schildkröte ist ein großartiges Werkzeug für Windows und wenn Sie möchten NetBeans Es gibt auch eine sehr schöne grafische Unterstützung für die Zusammenführung.

Ich bin mit Ankhsvn nicht vertraut, aber was Sie beschreiben, ist genau das, was svn merge ist für. Die Antwort auf Ihre Frage lautet also nein.

Sie können jedoch das überprüfen --reintegrate Option, um zu sehen, ob dies Ihnen das Leben erleichtert.

Siehe diese Blog -Beiträge:

Subversion Fusion Wieder Integrate
Subversion 1.5 Merge-Tracking in den Punkt gebracht

Wenn Sie PHPStorm verwenden, können Sie versuchen, die GUI -Schnittstelle zu verwendenhttps://www.jetbrains.com/help/idea/2016.1/integrating-changes-to-from-feature-branches.html

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