Diffing dos versiones en Hg

Estoy tratando de ver las diferencias entre dos versiones de un proyecto. La forma en que pensé inicialmente hacerlo:

  1. Crear un nuevo repository
  2. Confirmar la primera versión al repository
  3. Sobrescribir la primera versión con la segunda versión, comprometerse con el repository
  4. hg diff las dos versiones

Esto no funcionó, porque cuando la segunda versión sobrescribió la primera versión, Mercurial asumió que cada file se había cambiado. En realidad, solo se cambian unos pocos files y quiero ver qué se cambió específicamente en cada file.

WinDiff me da una list de los files que se cambiaron, pero eso es todo, así que realmente me gustaría usar Hg para get los detalles.

EDITAR: Estoy usando Eclipse. Lo que específicamente estoy haciendo es crear un nuevo proyecto Java, usar la function de import de Eclipse para importar los files fuente que quiero, y luego comprometer ese proyecto a mi repository. Luego uso la import de nuevo para importar la versión 2 en el mismo proyecto para que los files de la primera se sobrescriban. Me quedan files con el mismo nombre pero que son files de la versión 2. Luego envío los nuevos files al repository.

Mi versión de Mercurial es 1.8.3. Hacer los pasos anteriores me da solo un set de cambios.

Además, al crear el diff, ¿hay alguna forma de especificar solo los files de Java, no el text o las properties, etc.?

Su procedimiento es sólido, solo recuerde usar hg addremove como Lasse señaló en los comentarios. Entonces el procedimiento completo es:

  1. Crear un nuevo repository
  2. Importar la primera versión al repository
  3. Ejecute hg add y hg commit
  4. Eliminar todos los files excepto .hg
  5. Importar la segunda versión al repository
  6. Ejecutar hg addremove y hg commit
  7. hg diff las dos versiones

El paso hg addremove incluso detectará files que han sido renombrados entre las dos versiones. También escribes:

Además, al crear el diff, ¿hay alguna manera de especificar solo para diferir files java, no text o properties, etc.?

Sí, puedes usar el indicador --include para esto:

 $ hg diff -I '**.java' 

No entiendo por qué no puede usar Mercurial directamente en el repository original de su proyecto.

Para ver cuáles son los cambios en los files Java entre REV1 y REV2 de su proyecto:

 hg diff -r REV1 -r REV2 -I **.java 

Para distinguir dos versiones de un file en eclipse:

  1. Haga clic derecho en el file y vaya a Equipo> Mostrar historial
  2. La vista Historial debería abrirse y mostrarle todas las versiones confirmadas del file
  3. Haga doble clic en la versión con la que desea diferir la cabeza.