python - source - sistema de control de versiones mercurial
Cómo cambiar el nombre de un directorio en Mercurial y continuar rastreando todos los cambios de archivos (3)
Como ya ha cambiado el nombre de los directorios, esto está perfectamente bien. (Le habría ahorrado un paso manual si hubiera dejado que Mercurial lo cambiara de nombre: hg rename doc docs
, etc. en lugar de hacerlo usted mismo y luego informe a Mercurial).
Si no tiene otros archivos para registrar, el hg addremove
es superfluo. Mire en la salida de hg stat
y solo debería ver las líneas que comienzan con ''R'' (para doc/*
, test/*
y util/*
) y ''A'' (para docs/*
, etc.)
Finalmente, no te olvides de confirmar los cambios.
EDITAR: Olvidé decir ... use hg log --follow
para seguir los cambios en el cambio de nombre.
Decidí cambiar el nombre de algunos directorios en mi paquete Home / Hobby Python ( doc
to docs
, test
to tests
, util
to utils
) porque, ahora que lo he pensado más, creo que los nuevos nombres son más apropiados. Mi pensamiento general ahora es que si los contenedores tienen nombres de sus contenidos, sus nombres deberían ser nombres en plural.
Ahora que estoy listo para mi próximo hg commit
, me pregunto cómo contarle a Mercurial sobre estos cambios en el nombre del directorio. Soy nuevo en el software RCS en general y solo he usado Mercurial por un par de meses. Cuando ejecuto el hg status
, muestra todos los archivos en estos directorios siendo eliminados y agregados, así que me temo que si hago un hg addremove
todo el historial de cambios para los archivos en estos directorios, o al menos el historial de cambios se fragmentará y no se podrá rastrear. Me encontré con el comando hg rename
, pero los documentos solo discuten su uso para archivos individuales, no directorios.
Después de seguir leyendo en la "Guía Definitiva" de Bryan O''Sullivan, parece que tal vez rename
puede referirse a directorios.
Así que esto es lo que he decidido probar:
hg rename --after doc docs
hg rename --after test tests
hg rename --after util utils
hg status
hg addremove
¿Puede alguien decirme si este es el método aceptado y preferido para cambiar el nombre de los directorios en Mercurial, y si no es así, cómo debería hacerlo?
Una razón para usar --después de cambiar el nombre con hg es si está usando una herramienta de refactorización que hace más que renombrar, por ejemplo, también corrige las referencias.
Mercurial no tiene concepto de directorios; trata todo (archivos y directorios) como archivos. Además, por lo general, nunca cambio el nombre de los archivos o directorios de forma manual; Yo solo uso
hg renombrar el nombre antiguo nombre-nuevo
Sugiero que hagas eso también.
Mercurial ofrece una función de seguimiento de cambio de nombre, lo que significa que mercurial puede rastrear el historial completo de un archivo que ha sido renombrado. Si renombra manualmente esto, no es posible.
Sin embargo, como ya los ha renombrado manualmente, necesita usar el argumento --follow
junto con hg log
para rastrear los cambios del archivo a través del historial.
Personalmente, me gustaría ir con hg rename
y debería ser el método preferido.