Por ejemplo, tengo el siguiente historial en mi repositorio de HG (es decir, creé una rama en la revisión 80), denominada "Proyecto X":
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
|
[...]
Ahora quiero tener dos repositorios, "Proyecto" y "Modelo". El repositorio "Proyecto" debe tener la rama principal del "Proyecto X" y el repositorio "Modelo" debe tener la rama creada en la rev. 80 (es decir, de la rev. 80 a la 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
¿Cómo puedo hacer eso usando los comandos HG? ¿O puedo hacerlo sólo "por las malas"?
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
Respuesta1
Puede hacer que el "camino difícil" sea mucho más fácil y corto (suponiendo que no cambie el nombre de la rama nombrada a la predeterminada default
en el repositorio de modelos)
- Clonar el repositorio "Proyecto X" al (nuevo) repositorio "Proyecto",rangoRevisiones 0:80
hg clone -r 80 ProjectX Project
(use rutas reales en lugar de nombres) - Clonlleno"Proyecto X" en "Modelo"
hg clone -r 80 ProjectX Model
- Habilitar la extensión hiseditit (globalmente o solo en el modelo)
- Ejecute histedit con el hash del conjunto de cambios 0 como parámetro y "elimine" todos los conjuntos de cambios antes de la revisión 80