Gibt es eine Möglichkeit, Änderungen zu begehen, die ich stattdessen an meiner SVN -Checkout of Trunk an eine Filiale vorgenommen habe?
Frage
Ich habe gerade angefangen, an einigen Veränderungen gegen Trunk auf einem SVN -Repo zu arbeiten und dachte, sie würden etwas klein sein. Jetzt fange ich tatsächlich an zu merken, dass ich stattdessen wahrscheinlich gerade eine neue Filiale hätte starten sollen. Anstatt einen Zweig zu machen und dann jedes einzelne Stück in ihn zu bewegen, gibt es eine Möglichkeit, einen neuen Zweig zu erstellen und dann die Änderungen in meiner Arbeitskopie zu begehen?
Lösung
- Machen Sie einen neuen Zweig von dem Ort, an dem Sie sich entwickeln,
- Wechseln Sie zum neu erstellten Zweig
- Begehen Sie die lokalen Änderungen (werden sich für die neue Zweigstelle verpflichten)
Machen Sie keine Kasse
Ich mache es mit SVN 1.6.5, es funktioniert ohne Schwierigkeiten, aber wenn Sie wirklich paranoid sind, könnten Sie folgen:
- Erstellen Sie einen Patch aus der aktuellen Arbeitskopie
- Erstellen Sie einen Zweig
- Wechseln Sie darauf
- Wenden Sie den Patch an
- verpflichten
Andere Tipps
Was ist mit dem Erstellen eines Patchs aus Ihrer aktuellen Arbeit mit svn diff
, und dann einen neuen Zweig herstellen und den Patch auf den Zweig anwenden mit patch -p0
?
Sie können den Status Ihrer Arbeitskopie direkt an eine URL mit dem abweichen svn copy
Befehl. Die erstellte Niederlassung umfasst die lokalen Änderungen.
Einige gotchas:
- Möglicherweise erhalten Sie Fehler, die so etwas wie "Datei bereits existieren" angeben. Dies wird durch eine Nichtübereinstimmung von Basisrevisionen in Ihrer Arbeitskopie verursacht, insbesondere zwischen einer Datei und ihrem übergeordneten Ordner. Eine mögliche Lösung besteht darin, a zu machen
svn update
Bevor Sie versuchen, auf diese Weise zu verzweigen. - nach dem
svn copy
, Die Arbeitskopie wird unverändert sein. Es wird immer noch auf den Kofferraum hinweisen. Es wird auch immer noch die lokalen Modifikationen in seinem Status zeigen. Sie sollten zuerst diese Änderungen zurückversetzen, unabhängig davon, ob Sie die Arbeitskopie wie dies sind oder sie in die neue Filiale wechseln.