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 default
im Modellrepository nicht in den Standardzweig um).
- 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) - Klonvoll"Projekt X" in "Modell"
hg clone -r 80 ProjectX Model
- Histedit-Erweiterung aktivieren (global oder nur im Modell)
- Führen Sie histedit mit dem Hash des Änderungssatzes 0 als Parameter aus und „löschen“ Sie alle Änderungssätze vor Rev. 80.