Wie teilt man Zweige in einem Mercurial-Repository auf, um mit HG-Befehlen andere Repositories zu erstellen?

Wie teilt man Zweige in einem Mercurial-Repository auf, um mit HG-Befehlen andere Repositories zu erstellen?

Beispielsweise habe ich in meinem HG-Repository den folgenden Verlauf (d. h. ich habe bei Rev. 80 einen Zweig mit dem Namen „Projekt X“ erstellt):

Project X Workbench:
-------------------------------------------------------------
·   85: Project X: version Z stable
·   84: Project X: improvements based on Project Model #3
| ·   83: Project Model: improvements #3
| ·   82: Project Model: improvements #2
| ·   81: Project Model: improvements #1
|_·   80: Project Model: created
·   79: Project X: code improvements
·   78: Project X: version Y stable
|   
[...]

Jetzt möchte ich zwei Repositories haben, „Project“ und „Model“. Das „Project“-Repository muss den Hauptzweig von „Project X“ haben und das „Model“-Repository muss den Zweig haben, der in Rev. 80 erstellt wurde (also von Rev. 80 bis Rev. 83):

Project Workbench:
-------------------------------------------------------------
·   81: Project X: version Z stable
·   80: Project X: improvements based on Project Model #3
·   79: Project X: code improvements
·   78: Project X: version Y stable
|   
[...]

Model Workbench:
-------------------------------------------------------------
·   3: Project Model: improvements #3
·   2: Project Model: improvements #2
·   1: Project Model: improvements #1
·   0: Project Model: created

Wie kann ich das mit HG-Befehlen machen? Oder geht das nur „auf die harte Tour“?

Hard way:
---------
1. create another repository named "Model"
2. rev1 = 80, rev2 = 0
3. update "Project X" to (rev1 + rev2)
4. copy "Project X" code to "Model" folder
5. commit "Model" as rev2 using the same comments of "Project X" on (rev1 + rev2)
6. rev2++
7. go back to step 3 while rev2 < 4
8. on "Project X" strip rev1 and all its descendants

Antwort1

Sie können Ihren „harten Weg“ viel einfacher und kürzer machen (vorausgesetzt, Sie benennen den benannten Zweig defaultim Modellrepository nicht in den Standardzweig um).

  1. Klonen Sie das Repository „Projekt X“ in das (neue) Repository „Projekt“.Reichweite0:80 Revisionen hg clone -r 80 ProjectX Project(echte Pfade statt Namen verwenden)
  2. Klonvoll"Projekt X" in "Modell"hg clone -r 80 ProjectX Model
  3. Histedit-Erweiterung aktivieren (global oder nur im Modell)
  4. Führen Sie histedit mit dem Hash des Änderungssatzes 0 als Parameter aus und „löschen“ Sie alle Änderungssätze vor Rev. 80.

verwandte Informationen