2008-10-26 12 views

Répondre

67

J'ai résolu ce problème en utilisant une extension de Mercurial intégré ... Je dois juste ajouter les lignes à Mercurial.ini (sur dossier) Mercurial suivants:

[extensions] 
hgext.extdiff= 

[extdiff] 
cmd.vdiff = kdiff3 

Quand je veux utiliser kdiff3 au lieu de diff je n'utiliser:

hg vdiff file.ext 
+2

De plus, vous pouvez passer des options à difftool, par exemple. '[extdiff] opts.vdiff = 2>/dev/null' – ACyclic

+0

Cette réponse (et les autres ci-dessous jusqu'à présent) rend un autre outil de diff disponible, mais ne change pas" l'outil diff par défaut ". C'est-à-dire, cela ne change pas quel outil est utilisé quand vous appelez 'hg diff' - ou plus important quand vous utilisez' hg log -p' pour regarder toute une collection de changesets. J'aimerais trouver un moyen de vraiment changer la valeur par défaut? (par exemple, pour pouvoir utiliser un diff basé sur un mot parfois lors de l'examen d'une branche.) –

8

Avec cette configuration

[extdiff] 
cmd.kdiff3 = 

J'utilise cette commande pour voir diffs:

hg kdiff 

Ceci affiche une arborescence avec tous les fichiers qui ont été modifiés. Vous cliquez sur un fichier pour voir les différences pour seulement le fichier. Vous pouvez peut-être ajouter un paramètre de fichier à la commande pour afficher un seul fichier.

Plus d'infos here.

2

Je viens d'avoir ce problème il y a quelques minutes; Je viens de l'installer et ajouté son chemin (par défaut est à c: \ program files \ kdiff3) à mon système PATH e.v. Redémarré ma fenêtre pour prendre le nouveau chemin, et "hg kdiff3" a juste fonctionné. Comme il se trouve ce qui suit dans mon fichier de base "mercurial.ini", cela permet au kdiff3 de fonctionner pour tous les repos hg sur le système.

[extensions] 
hgext.extdiff = 

[extdiff] 
cmd.kdiff3 = 

[merge-tools] 
kdiff3.args = $base $local $other -o $output 
2

Si vous cherchez quelque chose comme git difftool, où vous n'avez pas besoin de taper les noms de fichiers et de voir la diff pour tous les fichiers modifiés, ajoutez-les à votre ~/.hgrc et exécutez hg difftool.

[extensions] 
extdiff = 

[extdiff] 
cmd.vimdiff = vimdiff 

[alias] 
difftool = !for file in $(hg status -n); do hg vimdiff $file; done