2010-07-07 12 views
2

Nous utilisions Visual Source Safe et il y avait une fonctionnalité intéressante que je ne trouve pas dans TortoiseHG. Vous faites un clic droit sur un fichier et cliquez sur "Afficher l'historique". VSS ouvre une liste de versions pour ce fichier. Ensuite, vous sélectionnez deux versions (c'est-à-dire: la version 50 et la version 47) et cliquez sur le bouton de comparaison pour lancer un diff visuel des deux versions. Comment puis-je faire cela avec Mercurial/TortoiseHG? J'ai vu la fonction d'annotation, mais ne compare que les versions consécutives d'un fichier.Comment obtenir un diff visuel de deux versions non consécutives d'un fichier en utilisant Mercurial TortoiseHG?

Répondre

2

Vous pouvez le faire dans l'Explorateur du référentiel de TortoiseHG:
Marquez une version, faites un clic droit sur une autre version et un menu contextuel apparaîtra.
Dans ce menu contextuel, choisissez "Diff visuel avec sélection".

EDIT:
@Sly:
Au lieu d'utiliser la boîte de filtre, vous pouvez faire un clic droit sur Class1.cs dans l'Explorateur Windows et ouvrez l'Explorateur de référentiel à partir de là. Lorsque vous faites cela, le filtre est déjà actif et vous ne voyez que les changesets où class1.cs était impliqué. Cela rend l'étape 1 beaucoup plus facile (au moins à mon avis, je le fais toujours de cette façon) ET il élimine complètement les étapes 4 et 5 (la liste n'apparaît pas du tout puisqu'il n'y a qu'un seul fichier à diff).

+0

Ce n'est pas mauvais mais le processus est plutôt long. Disons que je veux voir les changements récents pour class1.cs et comparer les versions. Je dois: 1) Utiliser la boîte de filtre pour trouver les changesets qui impliquent class1.cs 2) Cliquer sur un changeset 3) Localiser un autre changeset et faire un clic droit "Diff visuel avec Selected" 4) Localiser class1.cs dans la fenêtre Visual Diffs être 150 fichiers répertoriés ici et ils ne sont pas triés). 5) Double-cliquez sur class1.cs pour ouvrir le diff visuel. L'étape 4 est vraiment douloureuse. Y a-t-il un moyen plus rapide de faire cela? – Sylvain

+0

J'ai édité ma réponse, voir ci-dessus! –

+0

Oui, c'est exactement ce dont j'ai besoin. Notez que la réponse de @Paul Nathan fonctionne plutôt bien. J'attendrai jusqu'à demain pour accepter votre réponse au cas où quelqu'un posterait une réponse encore plus simple. – Sylvain

1

J'ai trouvé plus rapide de faire ce qui suit que de tripoter TortoiseHG dans le but que vous décrivez.

Installer Winmerge à l'emplacement par défaut;

Ensuite, modifiez votre hgrc global pour l'avoir. (Mercurial.ini dans Windows)

[extdiff] 
cmd.guidiff = C:\Program Files\WinMerge\WinMergeU.exe 

Et puis,

hg guidiff -r rev1 -r rev2 

sur la ligne de commande. Notez que vous pouvez utiliser kdiff3 ou autre en tant que client diff de votre interface graphique.

+0

C'est sympa. Disons que je veux voir les changements récents pour class1.cs et comparer les versions. Je voudrais: 1) 'hg log -I ** class1.cs -l 10' pour voir les changements récents pour class1. 2) Localiser les révolutions que je veux comparer. 3) 'hg guidiff -r 535 -r 500 -I ** class1.cs' pour ouvrir le diff pour ce fichier spécifique. – Sylvain

+0

@Sly: oui. Vous n'aurez pas besoin de ces ** mais je ne crois pas. –