2
votes

I am using tortoisehg.

Kdiff3 runs when I select "diff to parent" or "diff to local" from the context menu in the workbench. However, Kdiff3 doesn't run when merging (merge with local) after a pull. The merge tool just says the following: % hg merge --verbose --tool=internal:merge 2 resolving manifests merging main.c.txt warning: conflicts during merge. merging main.c.txt incomplete! (edit conflicts, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon [command returned code 1 Fri Jun 27 13:17:22 2014]

I have selected kdiff3 for both Three-way Merge Tool and Visual Diff Tool in both the global settings and the repository settings. Is there something else I must do?

Update: My OS is windows 7

Another Update: (.hgrc in local repo shown below)

[extensions]
hgext.extdiff =

[extdiff]
cmd.kdiff3 =

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

Update 2 (Mercurial.ini):

[merge-tools]
kdiff3.priority=-1
kdiff3.args=--L1 base --L2 local --L3 other $base $local $other -o $output
kdiff3.regkey=Software\KDiff3
kdiff3.regappend=\kdiff3.exe
kdiff3.fixeol=True
kdiff3.gui=True

Stephen

1
Show [ui] section, merge key from mercurial.ini (and .hgrc)Lazy Badger
The only item I had in the [ui] section was my username. Please see updates to my original post showing .hgrc and Mercurial.ini files.user1164199

1 Answers

2
votes
  1. Kdiff3 is not defined anywhere as mergetool for TortoiseHG (in global or repository context)
  2. If order to use Kdiff3 as difftool you can not have and not enable extdiff extension
  3. Both (needed) values can and have be defined in TortoiseHG GUI: TortoiseHG - Global Settings - TortoiseHG

THG Tools

or, in case of text-presentation for mercurial.ini

[ui]
merge = p4merge
...
[tortoisehg]
vdiff = p4merge

In my case I defined p4merge as diff|merge tool for all my repositories and have to redefine in GUI for repo-settings (or write changed string into hgrc) only if for some repository I'll prefer to use another tools