versiones usados software sistema que para mas gestion fundamentos formato documentos control con archivos version-control mercurial diff dvcs rename

version control - usados - Mercurial diff no funciona después de mover/cambiar el nombre



software para control de versiones de documentos (2)

Creo que es porque b/a no existe en la revisión 1 o la revisión 0. Si ejecuta el comando hg diff -r 0 -r 4 desde dentro de la carpeta b , debe producir el resultado esperado.

Si ejecuta hg diff -r 0 -r 1 a desde la raíz de la copia de trabajo, también debe mostrar el resultado esperado.

Después de mover un archivo a otro directorio, ya no puedo mostrar las diferencias entre dos revisiones. P.ej:

hg init touch a hg add a hg ci -m "Added a" echo "Bli" >> a hg ci -m "Bli" echo "Bla" >> a hg ci -m "Bla" echo "Blub" >> a hg ci -m "Blub" hg diff -r 0 -r 1 a

Resultados en:

diff -r 8603b08f5a64 -r 16675581549e a --- a/a Mon Apr 23 09:03:25 2012 +0000 +++ b/a Mon Apr 23 09:03:25 2012 +0000 @@ -0,0 +1,1 @@ +Bli

que es lo que esperaba Sin embargo, cuando muevo el archivo "a" a un directorio "b":

mkdir b hg mv a b/a hg ci -m "Moved a into b" cd b hg diff -r 0 -r 1 a

esto resulta en nada (sin salida en absoluto). También traté de usar el git Giff algo:

hg diff --git -r 0 -r 1 a

De nuevo, no hay salida en absoluto. El registro parece estar bien:

hg log --follow a

Resultados en:

changeset: 4:cb8185829bfd tag: tip user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX date: Mon Apr 23 09:08:12 2012 +0000 summary: Moved a into b changeset: 3:4d1ba89885c3 user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX date: Mon Apr 23 09:03:26 2012 +0000 summary: Blub changeset: 2:e9126dbb50b2 user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX date: Mon Apr 23 09:03:26 2012 +0000 summary: Bla changeset: 1:16675581549e user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX date: Mon Apr 23 09:03:25 2012 +0000 summary: Bli changeset: 0:8603b08f5a64 user: XXXXXXXXXXXXXXXXXXXXXXXXXXXX date: Mon Apr 23 09:03:25 2012 +0000 summary: Added a

¿Alguien tiene alguna idea de por qué la diferencia no funciona después de mover un archivo? Tu ayuda es muy apreciada.


Esto es difícil o imposible con Mercurial de hoy. Creo que lo más cercano que puedes conseguir es

hg log --follow --patch -r 1 a

donde Mercurial rastreará las copias hacia atrás ( --follow ) antes de mostrar el diff ( --patch ).

En general, Mercurial no rastrea las identidades de los archivos , solo rastrea los nombres de los archivos . Cuando busque información por número de revisión, Mercurial buscará primero la revisión y luego buscará cualquier nombre de archivo en esa revisión. Entonces hg cat -r 0 a le dará el mismo resultado que

hg update -r 0 cat a

es decir, el resultado es independiente del padre del directorio de trabajo actual.