significado version-control mercurial

version-control - significado - mercurial svn



¿Por qué ''hg mv''(mercurial) no mueve el historial de un archivo de forma predeterminada? (3)

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