Übernehmen Sie Änderungen in einen anderen Zweig als den aktuell ausgecheckten Zweig mit Subversion

115

Ich habe an Code gearbeitet, der aus der Entwicklungszeile ausgecheckt wurde, und festgestellt, dass die vorgenommenen Änderungen möglicherweise zu Änderungen führen und in einen experimentellen Zweig verschoben werden müssen, bevor der Hauptentwicklungsbaum festgelegt wird. Ich habe jedoch den experimentellen Zweig nicht ausgecheckt und möchte die bereits vorgenommenen Änderungen nicht verlieren.

Gibt es eine Möglichkeit, die Änderungen im Arbeitsordner in einen anderen Zweig als den ursprünglich ausgecheckten zu übertragen?

Paul Alexander
quelle

Antworten:

129

Sie sollten zuerst einen Zweig aus einem bekannten erstellen sourceURL(dies wäre Ihre 'Entwicklungslinie', die Sie in der Frage erwähnt haben):

svn copy sourceURL branchURL

Wechseln Sie dann zu diesem Zweig:

svn switch branchURL

Und übernehmen Sie Ihre Änderungen:

svn commit
Ryanprayogo
quelle
55

Sie könnten es in der TortoiseSVN so machen:

  • Klicken Sie mit der rechten Maustaste auf das Verzeichnis, in dem sich die Änderungen befinden, die Sie verzweigen möchten. Es darf nicht die Wurzel des Repositorys sein, weniger, um auf diese Weise zu duplizieren.
  • Wählen Sie TortoiseSVN -> " Branch / tag ... ";
  • Set To URL : "svn: // host / repository / FooBar / branches / FooBarBranchName";
  • Stellen Sie sicher, dass [*] Arbeitskopie ausgewählt ist . Dadurch wird sichergestellt, dass die Änderungen festgeschrieben werden.
  • Protokollmeldung : "Experimentieren mit Fliegen :)";
  • Optional: Kreuzen Sie [*] Arbeitskopie auf neuen Zweig / Tag um . Dies ist nützlich, wenn Sie planen, weiter an der neuen Niederlassung zu arbeiten. Sie können aber auch später darauf umsteigen.
  • Versuchen Sie, die Schaltfläche OK zu finden . Hinweis: Es befindet sich im unteren Teil des Fensters zentriert.

Genießen!

J Pollack
quelle
Was meinen Sie mit "Es darf nicht die Wurzel des Repositorys sein, weniger, um auf diese Weise zu duplizieren"?
Thekozak
Ich empfehle, den Stammordner nicht mit allen irrelevanten Unterordnern auszuwählen, die in der Verzweigung nicht geändert werden müssen. Später wird es einfacher sein, den (kleineren) Zweig wieder mit dem Stamm zusammenzuführen.
J Pollack
In meinem Fall verursachte das Festschreiben nur dieses Ordners Probleme, da die Software auch von Superordnern abhängt. Ich denke, das ist am häufigsten der Fall. Ich denke, für die meisten Anwendungsfälle ist es besser, nur das Ganze festzuschreiben, daher wird empfohlen, von der Wurzel aus festzuschreiben, die ich sage.
Ikku100
@ ikku100 Wenn es keine Änderungen in diesen Superordnern gibt, wie wäre das wichtig?
simpleuser
Dies könnte daran liegen, dass später möglicherweise Änderungen vorgenommen werden, aber ich denke, Sie können die korrekte Überarbeitung des Superordners überprüfen und dann den Zweig für den Unterordner auschecken. Das ist mehr Arbeit als nur das Übernehmen vom Superdir, denke ich.
Ikku100
8

Sie können einen neuen Zweig direkt aus Ihrem Arbeitsverzeichnis erstellen und das Arbeitsverzeichnis in diesen Zweig wechseln.

Die Befehle sind svn copyundsvn switch

Dima
quelle