3

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

Andrew Bullock
  • 36,616
  • 34
  • 155
  • 231
  • 8
    Could it be that the file changed line break encoding? ie. went from CR+LF to only CR or vice versa? Try looking at the files through a hex editor/dump. – Lasse V. Karlsen Feb 23 '11 at 15:39
  • I have also been having issues with my beyond compare marking every file as changed then when clicking to inspect it shows that the files are the same. – Tyler Smith Feb 23 '11 at 19:26

1 Answers1

1

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

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
mpm
  • 1,935
  • 11
  • 13