versiones source software sistema open control python mercurial

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.