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).