Svn-Wechsel von Amtsleitung zu Zweigstelle


70

Ich bin im Stammordner eines von SVN gehosteten Projekts trunkund untersuche das Einrichten von zwei Zweigen.

Ein Zweig ist ein "Schnappschuss" des Projekts bei der aktuellen (stabilen) Revision, und ein zweiter Zweig ist einer, an dem ich arbeiten werde, um neuen Code anzuwenden, den Trunk zu testen und dann auf eine neue Version zu aktualisieren.

Mein Ziel ist es, den Schnappschuss als Versicherung zu behalten und schnell eine ältere, stabile Version unseres Projekts zu erhalten. Der zweite Zweig wird, sobald wir neuen Code angewendet und die Tests bestanden haben, wieder in den Trunk integriert, den wir der Öffentlichkeit anbieten.

Um den Schnappschuss einzurichten, habe ich unseren trunkin einen Zweig namens kopiert v1p2p3:

$ svn cp https://www.example.com/svn/trunk \ 
         https://www.example.com/svn/branches/v1p2p3 \
         -m "Branching from root trunk to v1p2p3 at r1114"

So weit, ist es gut:

Committed revision 1115.

Ich möchte meine lokale Repository-Kopie auf diesen Zweig umstellen, um sicherzustellen, dass alles funktioniert, aber ich erhalte eine Fehlermeldung:

$ svn switch --relocate https://www.example.com/svn/trunk \
                        https://www.example.com/svn/branches/v1p2p3

Die Fehlermeldung lautet:

svn: E155024: Invalid relocation destination: 
              'https://www.example.com/svn/branches/v1p2p3' 
              (does not point to target)

Was mache ich falsch?

(Wenn dies nicht funktioniert, kann ich vermutlich nicht mit dem ehrgeizigeren zweiten Zweig beginnen. Ich suche nach einer Möglichkeit, dies zu tun, ohne das vorhandene Projektlayout zu beschädigen. Vielen Dank für Ihren Rat und Entschuldigung, wenn dies eine dumme Frage ist.)

Antworten:


143

Dies ist nicht erforderlich, --relocateda sich der Zweig innerhalb derselben Repository-URL befindet. Mach einfach:

svn switch https://www.example.com/svn/branches/v1p2p3

Vielen Dank für die schnelle Hilfe. Ich gehe davon aus, dass Änderungen nach dem Wechsel zu dieser URL das in trunkRuhe lassen, richtig?
Alex Reynolds

Jep. Weitere Festschreibungen, während Ihr WC auf den Zweig gerichtet ist, werden nur für diesen Zweig festgeschrieben. Sie können überprüfen, wohin die Commits gehen werden mitsvn info
tzaman

40
  • Die Kurzversion der (richtigen) Antwort von tzaman lautet (für frische SVN)

    svn switch ^/branches/v1p2p3
    
  • --relocateSchalter ist sowieso veraltet, wenn es nötig ist, müssen Sie svn relocateBefehl verwenden

  • Anstatt einen Snapshot-Zweig (ReadOnly) zu erstellen, können Sie Tags verwenden (herkömmliche RO-Labels für den Verlauf).

Unter Windows muss das Caret-Zeichen ( ^) maskiert werden:

svn switch ^^/branches/v1p2p3

2
+1 für das Vorschlagen von Tags: "Schnappschuss als Versicherung und ein schneller Weg, um eine ältere, stabile Version zu erhalten" klingt wie der klassische Anwendungsfall für Tags, die normalerweise im Rahmen des Freigabeprozesses erstellt werden.
Vilpan

2

In meinem Fall wollte ich check outeine new branch, die in letzter Zeit gekürzt wurde, aber groß ist, und ich möchte Zeit und Internetbandbreite sparen, da ich mich in einem langsam gemessenen Netzwerk befinde

also ich, copped the previous branchdass ich schon eingecheckt habe

Ich bin in das Arbeitsverzeichnis gegangen und anhand der SVN-Informationen kann ich sehen, dass es sich um den vorherigen Zweig handelt. Ich habe den folgenden Befehl ausgeführt (Sie finden diesen Befehl unter svn switch --help).

svn switch ^/branches/newBranchName

Check svn infowieder können Sie sehen , es ist die newBranchName voran gehen immer undsvn up

und so bekam ich die neue Niederlassung einfach und schnell mit minimaler Datenübertragung über das Internet

Ich hoffe, mein Fall zu teilen hilft und beschleunigt Ihre Arbeit

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.