Antworten:
Das Verzweigen in Subversion wird durch eine sehr sehr leichte und effiziente Kopierfunktion erleichtert.
Verzweigung und Markierung sind praktisch gleich. Kopieren Sie einfach mit dem svn copy
Befehl einen ganzen Ordner im Repository an eine andere Stelle im Repository .
Grundsätzlich bedeutet dies, dass das Kopieren eines Ordners gemäß Konvention bedeutet - ob es sich um ein Backup, ein Tag, einen Zweig oder was auch immer handelt. Abhängig davon, wie Sie über Dinge nachdenken möchten (normalerweise abhängig davon, welches SCM-Tool Sie in der Vergangenheit verwendet haben), müssen Sie eine Ordnerstruktur in Ihrem Repository einrichten, um Ihren Stil zu unterstützen.
Häufige Arten sind eine Reihe von Ordnern an der Spitze Ihres Repository haben genannt tags
, branches
, trunk
usw. - , dass Sie Ihre ganzen kopieren kann trunk
(oder Untergruppen) in den tags
und / oder branches
Ordner. Wenn Sie mehr als ein Projekt haben, möchten Sie möglicherweise diese Art von Struktur unter jedem Projekt replizieren:
Es kann eine Weile dauern, bis Sie sich an das Konzept gewöhnt haben - aber es funktioniert - stellen Sie nur sicher, dass Sie (und Ihr Team) klar sind, welche Konventionen Sie verwenden werden. Es ist auch eine gute Idee, eine gute Namenskonvention zu haben - etwas, das Ihnen sagt, warum der Zweig / das Tag erstellt wurde und ob es noch angemessen ist -, über Möglichkeiten nachzudenken, veraltete Zweige zu archivieren.
svn cp
billige Kopien, kopiert es nicht die tatsächlichen Dateien während der Verzweigung. Siehe svnbook.red-bean.com/de/1.1/ch04s02.html
Erstellen Sie einen neuen Zweig mit dem folgenden svn copy
Befehl:
$ svn copy svn+ssh://host.example.com/repos/project/trunk \
svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
-m "Creating a branch of project"
svn switch svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH .
Sie als Nächstes (wenn Sie die aktuelle Kasse auf einen neuen Zweig umstellen möchten) oder svn checkout svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH
(wenn Sie einen neuen Zweig in einem separaten Verzeichnis haben möchten), um mit der Arbeit an einem neu erstellten Zweig zu beginnen.
--parents
Option mit verwendensvn copy
!
-m
Option weglasse , heißt es wie svn: E155010: Path '/home/constantine/someDirectory/svn+ssh:https:/myhost.com/svn/dir1/dir2/trunk/dir3/dir4/dir5' does not exist
. Damit -m
heißt es svn: E205009: Local, non-commit operations do not take a log message or revision properties
. (Ich habe die Adressen ersetzt, aber sie existieren, außer ofc, dem neuen Zweigverzeichnis und dem gesamten Pfad + der URL, die SVN aus irgendeinem Grund im Fehler zusammengeführt hat) .
svn cp /trunk/ /branch/NEW_Branch
Wenn Sie einige lokale Änderungen in der Amtsleitung haben, verwenden Sie diese, Rsync
um Änderungen zu synchronisieren
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
rsync
auf diese Weise zu verwenden. svn cp
kopiert auch alle lokalen Änderungen.
Angenommen, Sie möchten einen Zweig aus einem Trunk-Namen (als "TEST") erstellen und verwenden dann:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
Normalerweise kopieren Sie es nach svn + ssh: //host.example.com/repos/project/branches/mybranch, damit Sie mehrere Zweige im Repository behalten können, aber Ihre Syntax ist gültig.
Hier einige Ratschläge zum Einrichten Ihres Repository-Layouts .
Top Tipp für neue SVN-Benutzer; Dies kann ein wenig helfen, um schnell die richtigen URLs zu erhalten.
Führen Sie svn info
diese Option aus , um nützliche Informationen zum aktuell ausgecheckten Zweig anzuzeigen.
Die URL sollte (wenn Sie svn im Stammordner ausführen) die URL enthalten, von der Sie kopieren müssen.
Verwenden Sie auch den svn switch
Befehl , um zum neu erstellten Zweig zu wechseln :
svn switch http://my.repo.url/myrepo/branches/newBranchName
Wenn Sie sogar vorhaben, Ihre Niederlassung zusammenzuführen, sollten Sie sich Folgendes ansehen:
Ich habe gehört, dass Subversion 1.5 mehr Merge-Tracking einbaut. Ich habe keine Erfahrung damit. Mein Projekt ist auf 1.4.x und svnmerge.py ist ein Lebensretter!
Im Folgenden finden Sie die Schritte zum Erstellen eines Zweigs aus dem Trunk mithilfe von TortoiseSVN in einem Windows-Computer. Dazu muss natürlich der TortoiseSVN-Client installiert sein.