nike - ¿Cómo puedo importar un repositorio mercurial(incluido el historial) a otro repositorio mercurial como subdirectorio, sin usar subrepos?
mercurial svn (1)
Esto suena un poco complejo, así que déjame explicarte:
Project_A ha vivido durante algún tiempo dentro de su propio repositorio Mercurial. Project_A ahora se está integrando en un nuevo superproyecto, Super-Project_B. Super-Project_B también tiene un repositorio mercurial. Preferiríamos que Project_A no fuera un subrepo, sino un niño normal, pero tampoco queremos perder la historia. ¿Hay alguna forma de hacer esto?
Sí. Use la extensión de conversión para mover projectA hacia abajo en un nivel de directorio:
hg convert --filemap filemap.txt projectA projectA-redone
donde su filemap.txt
tiene esta línea en ella:
rename . projectA
(Ese punto puede ser una barra pero no lo creo).
Eso le dará un nuevo repositorio, projectA-redone, que tiene toda la historia de A, aunque todos los conjuntos de cambios tendrán diferentes hashes ya que su contenido (rutas) ha cambiado para que "projectA" aparezca delante de todos ellos.
Luego vas a Super-Project_B y haces un hg pull -f /path/to/projectA-redone
. Necesita la -f
porque, de lo contrario, le dirán que los repositorios no están relacionados, ya que no tienen conjuntos de cambios en común.
Finalmente, harás una hg merge
en Super_project_b que no debería tener conflictos (a menos que ya tengas un directorio ProjectA, en cuyo caso deberías haber elegido un nombre diferente o hg remove
primero).
Después de hacer eso, B tendrá todo A dentro del subdirectorio del proyecto y todo el historial estará intacto.