tortoisemerge with Hg reports all lines as changed

447 views Asked by At

I'd like to use TortoiseMerge with Mercurial to resolve conflicts, but its reporting every line in theirs and mine as added as though its not comparing properly

here is my mercurial.ini:

[ui]
merge = TortoiseMerge

[merge-tools]
TortoiseMerge.executable=C:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe
TortoiseMerge.args=/mine:$local /theirs:$other /base:$base -o /merged:$output

I'm using Hg 1.7.5

What's going on?

Update: When using KDiff or BeyondCompare, the base is always empty.

Thanks

1

There are 1 answers

0
mpm On

Your setup appears correct.

This is symptomatic of having no copy of the file in the base revision, in which case Mercurial acts as if the file was present but empty.

There are a couple ways of figuring out what's going on here. If there are no copies or renames involved, you should be able to simply do:

$ hg log -r "ancestor(p1(), p2())"

..to determine the ancestor of the merge, then:

$ hg manifest -r <rev> | grep <your file>

..to determine if the file was in fact present.

Alternately, you can run 'hg merge --debug' or 'hg update --debug' to see what changeset and file it's choosing for the merge (including rename/copy details).

If you find that the file is present in the common ancestor Mercurial chooses, then you should report a bug (including your debug output) at:

https://www.mercurial-scm.org/wiki/BugTracker