[Bug 4952] New: Retry merge with custom merge tool incorrectly uses result of previous merge tool as input

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Fri Nov 13 17:41:55 UTC 2015


https://bz.mercurial-scm.org/show_bug.cgi?id=4952

            Bug ID: 4952
           Summary: Retry merge with custom merge tool incorrectly uses
                    result of previous merge tool as input
           Product: Mercurial
           Version: 3.6
          Hardware: PC
                OS: Windows
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at selenic.com
          Reporter: rationull at gmail.com
                CC: mercurial-devel at selenic.com

I have encountered the following problem introduced in Mercurial 3.6. I am
running version 3.6+20151109 with TortoiseHG 3.6, but the problem appears to be
in hg core (see my THG bug report:
https://bitbucket.org/tortoisehg/thg/issues/4354) The behavior I'm seeing:

- Set merge tool ([ui] merge in .hgrc/mercurial.ini) to internal:merge
- Create a repository with two separate branches, with a change on each branch
such that the changes conflict with each other.
- Merge the two branch heads. internal:merge will leave the conflicting file
with conflict markers.
- Run "hg resolve --tool=kdiff3 <filename>".

Expected result: KDiff3 correctly shows the shared ancestor content and the two
conflicting revisions (see Expected.jpg).

Actual result: KDiff3 shows the shared ancestor revision and "other"
conflicting revision correctly, but the local conflicting revision contains the
merge markers from internal:merge (see Actual.jpg).


The problem occurs with THG's built in KDiff3 config, and with the built in
KDiff3 config from mercurial/default.d/mergetools.rc. It does not occur with a
barebones config consisting just of kdiff3.executable, but starts occurring
when you add arguments and use $local. So it appears that the treatment of
$local has changed to simply use the current local content of the file rather
than the content on the merge parent from the local branch.

This behavior started with 3.6.0.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list