version-control - significado - mercurial svn
¿Por qué ''hg mv''(mercurial) no mueve el historial de un archivo de forma predeterminada? (3)
Sé cómo hacerlo , simplemente no puedo entender por qué hg mv no mueve el historial del archivo también de manera predeterminada.
Realmente parece una tontería estar obligado a ejecutar hg log --follow before hg mv . Esto me recuerda los tiempos con cvs cuando necesitaba eliminar y agregar un archivo usando dos operaciones diferentes y perdiendo historial de la misma manera.
En mi humilde opinión, si solo estuviera usando builtin mv que estaría bien para perder el historial, pero estoy usando hg mv , y, pensando en el repositorio en sí, no tiene sentido perder el historial by default . Debería haber hg mv --no-follow y no al revés.
Esto no es intuitivo. ¿Alguien aquí tiene una explicación sensata sobre este comportamiento? ¿Es esto un error de diseño, o hay una buena razón para ello? ¿Es posible hacer esto? ¿ --follow esto de manera predeterminada cuando se usa hg mv ?
La respuesta de @xantos ahora está fechada. La forma correcta de actualizar el archivo hgrc es:
[alias]
log = log -f
No sabes cómo hacerlo. hg log --follow afecta la forma en que se muestra el registro, no cómo se realiza el movimiento real. Por defecto, se muestra el historial del nombre del archivo. --follow follows cambia el nombre y copia. Esto concuerda con la forma en que Mercurial se implementa internamente.
No hay ninguna razón para ejecutar hg log --follow before hg mv .
Puede cambiar el comportamiento predeterminado del registro: en su ~ / .hgrc (o en algún lugar / Mercurial.ini), agregue
[alias]
log = log -f
He leído que la apariencia del registro es por razones de velocidad. Move no es realmente una operación de "primer nivel" en Mercurial. Es una copia + eliminar (esto en comparación con Bazar, donde el movimiento / cambio de nombre es una operación de "primer nivel" pero eso no tiene una copia con preservación del historial).