supongo que tenías algo como esto estructura:
main.c
lib1.c
lib2.c
ha cambiado el nombre de los archivos y tiene algo como esto:
main.c
lib/lib1.c
lib/lib2.c
ahora quiere algo así como lib
repositorio:
lib1.c
lib2.c
Supongo que esta última parte porque, cuando la incluye como un sub -repositorio, se verá como el repositorio original después del cambio de nombre.
Haría esto en unas pocas etapas.
La primera etapa sería hacer lo que probablemente ya hizo. Convertir el repositorio con la línea de comandos hg convert --filemap LibTempMap.txt Main LibTemp
y los siguientes contenidos de LibTempMap.txt
:
exclude *
include lib
rename lib .
Esto le da un repositorio con la historia después del cambio de nombre.
La segunda etapa sería convertir el repositorio antes de que el cambio de nombre con la línea de comandos hg convert --rev X --filemap LibMap.txt Main Lib
(donde X es la revisión antes de que el cambio de nombre) y los siguientes contenidos de LibMap.txt
:
exclude *
include lib1.c
include lib2.c
Esto le da un repositorio con el historial anterior al cambio de nombre.
Entonces yo trasplantar los cambios posteriores de LibTemp
a Lib
usando hg transplant -s ..\LibTemp Y:tip
desde el interior de la carpeta Lib
(donde Y
es la revisión después de que el cambio de nombre en el repositorio de LibTemp
). Esto debería trasplantar limpiamente ya que se aseguró de que las estructuras de archivos fueran las mismas en el repositorio temporal al hacer el cambio de nombre durante la conversión.
Le quedan entonces el repositorio Lib
que contiene el historial y los archivos que desea y puede eliminar el repositorio LibTemp
.
¿Hizo una operación para renombrar o eliminar y agregar? – Eiver
Eliminar y agregar, pero se detectó como cambio de nombre por hg addremove. –