Wie verzweige ich post-commit richtig und stelle den trunk in svn wieder her?

9

Ich habe einige Commits, die ich nach der Tat beschlossen habe, sind mehr Zweigarbeit als Stammarbeit. Wie erstelle ich die Verzweigung und stelle den Stamm wieder her, während ich immer noch sicherstelle, dass das Zusammenführen nicht schmerzhaft ist?

Ist es so einfach, den aktuellen Trunk in einen Zweig zu kopieren und den Trunk wiederherzustellen? Oder wird das später zu Kopfschmerzen führen?

    
Dane O'Connor 29.09.2008, 14:27
quelle

4 Antworten

17

Ich denke, die Philips-Methode wäre ungefähr wie folgt, wenn man annimmt, dass die letzte "gute" Revision bei 100 war und Sie jetzt bei 130 sind, um den neuen Zweig zu erstellen:

%Vor%

Beachten Sie, dass die in diesen Revisionen vorgenommenen Änderungen beibehalten werden sollen, damit Sie sie wieder auf den Stamm anwenden können.

Um Stamm wiederherzustellen:

%Vor%

(Es spielt keine Rolle, in welcher Reihenfolge Sie diese ausgeführt haben, damit Sie den Stamm wiederherstellen können, bevor Sie den Zweig erstellen.)

Dann könnten Sie zu dem neuen Zweig wechseln, den Sie im Repo erstellt haben:

%Vor%     
Sam Hasler 29.09.2008, 18:49
quelle
3

Um ehrlich zu sein, kopiere ich meine Änderungen, stelle Stamm, Zweig und dann meine Änderungen in den Zweig ein. Der Hauptgrund dafür ist die leichte Zusammenfügung später (wenn Sie später vom Zweig zum Zweig am Verzweigungspunkt verschmelzen, enthält die Zusammenführung eine Rückstellung Ihrer ursprünglichen Änderungen).

Dies ist möglicherweise nicht der "richtige" Weg, da Sie Revisionen beim Zusammenführen immer überspringen können, aber normalerweise fällt es mir später viel weniger schwer. Disclaimer: Ich bin kein SVN Guru, also kann es für mich einfacher sein, weil ich es falsch mache - aber ich benutze SVN ziemlich viel.

    
Philip Rieck 29.09.2008 14:41
quelle
2

Es ist nichts falsch daran, Philipps Methode zu folgen, außer dass es in der Revisionsgeschichte einen "Crust" gibt. Wenn Sie sie aus Gründen der Übersichtlichkeit entfernen möchten und die Änderungen an HEAD vorgenommen werden, können Sie sie aus dem Repository entfernen, indem Sie diese Anweisungen .

Update: Philipps Methode ist besser als die in der Frage vorgeschlagene aus den Gründen, die er angegeben hat. Die Methoden von mir und Philip wären ähnlich, außer dass ich die Revisionen aus der Revisionshistorie entfernen möchte. (Wie gesagt, dies ist nur möglich, wenn alle Revisionen, die Sie entfernen möchten, sich im HEAD des Repositorys befinden.)

    
Sam Hasler 29.09.2008 14:31
quelle
0

Ich habe kein SVN hier verfügbar, aber so würde ich es versuchen:

Bestimmen Sie den Punkt in der Geschichte, wo Sie begonnen haben, schlechte Sachen zu begehen (sagen Sie Revision "100", während Sie bei "130" sind)

%Vor%

Dies sollte den schlechten Verlauf umgehen, ohne einen umgekehrten Merge hinzuzufügen (tatsächlich umgehen Sie den Verlauf des Trunks zwischen 100 und 130, aber Sie haben einen Link zu diesem Verlauf in der Verzweigung und Zugriff auf den Trunk, während er den rev erzwingt korrekte Geschichte)

Dann

%Vor%

Dies sollte funktionieren, wenn Sie die Änderungen aus dem Stamm vollständig entfernen möchten. Wenn es kleine gibt, die du behalten willst, kannst du sie wieder von Zweig zu Stamm auswählen (wenn du svn 1.5 benutzt, wird es Merge-Punkte verfolgen und falsche Konflikte vermeiden)

    
Jean 29.09.2008 16:09
quelle

Tags und Links