Frage Subversion: Kann ich es auschecken, ändern und dann zu einem Zweig machen?


Ich habe einen Checkout von meinem Koffer zu einem lokalen DIR gemacht und dort viele lokale Änderungen vorgenommen. Jetzt möchte ich es nicht in den Stamm zurückgeben, aber ich würde lieber einen Zweig von dieser lokalen Version machen. Ist das möglich?

Kann ich den Stamm nur in einen Zweig kopieren und dann? cd DIR und svn switch zum Zweig?

AKTUALISIEREN: Danke für die Antworten, es hat funktioniert! Um die Schritte zusammenzufassen:

  • cd DIR
  • svn copy . new-branch-URL
  • svn switch new-branch-URL .

(Beachten Sie die Punkte)


76
2017-08-20 21:02


Ursprung


Antworten:


Entsprechend seiner Befehlszeilenhilfe kann svn copy von einem Verzeichnis in eine Repository-URL kopieren. Sie sollten also in der Lage sein, Ihre Arbeitskopie in die Zweigstelle zu kopieren, z. B .:

svn copy working_directory url_to_branch

38
2017-08-20 21:09



Das SVN-Buch (http://svnbook.red-bean.com/en/1.6/svn-book.html#svn.branchmerge.using.create) empfiehlt nicht, einen Zweig von der lokalen Arbeitskopie zu erstellen.

Es ist auch möglich, eine Verzweigung mithilfe von zu erstellen svn copy Um ein Verzeichnis innerhalb der Arbeitskopie zu duplizieren, wird diese Technik nicht empfohlen. Es kann tatsächlich ziemlich langsam sein! Das Kopieren eines Verzeichnisses auf der Clientseite ist eine Operation mit linearer Zeit, bei der tatsächlich jede Datei und jedes Unterverzeichnis innerhalb dieses Arbeitskopieverzeichnisses auf der lokalen Festplatte dupliziert werden müssen.

Erstellen Sie stattdessen zuerst den Zweig und dann den Befehl svn switch Befehl, damit Sie Ihre Änderungen festschreiben können. Wenn Ihre Arbeitskopie nicht mehr aktuell ist, fügen Sie "@REV" an die Quell-URL an, wobei "REV" die Revision Ihrer Arbeitskopie ist, von der berichtet wird svn info.

Das Kopieren eines Verzeichnisses auf dem Server ist jedoch eine Operation mit konstanter Zeit, und so erstellen die meisten Benutzer Zweige.

$ svn copy http://svn.example.com/repos/calc/trunk \
           http://svn.example.com/repos/calc/branches/my-calc-branch \
      -m "Creating a private branch of /calc/trunk."

50
2017-09-20 02:15



In meinem SVN-Client: TortoiseSVN reicht es aus:

  • Rechtsklick auf das oberste Verzeichnis, das ich verzweigen möchte
  • In "To URL" wählen Sie das Zweigverzeichnis in Ihrem Repository
  • im Rahmen "Kopie im Repository erstellen von:" wählen Sie "Arbeitskopie"

erledigt :)

Es ist genau so, als würde man die lokale Version in die angegebene Repository-URL kopieren.


9
2017-08-20 21:13



Ja, Sie können dies tun, indem Sie SVN-Befehlszeile ebenso gut wie SchildkröteSVN.

Sie müssen Ihre SVN Arbeitskopie als src angeben und Ihre neue Verzweigung als Ziel der

svn copy <file/path/to/working/copy> <URL/TO/REPOSITORY/BRANCH>

Befehl.

In TortoiseSVN zeigen Sie einfach in Ihre Arbeitskopie, wählen Sie "Branch / Tag" aus dem Kontextmenü und wählen Sie "Arbeitskopie" im Abschnitt "Kopie im Repository erstellen von:"

Beachten Sie, dass es aus Gründen der Rückverfolgbarkeit nicht sinnvoll ist, Tags auf solche Weise zu erstellen, aber für Zweige ist es völlig in Ordnung.


1
2017-08-21 00:22