[Bug 5407] New: Graft performs a filemerge for all files renamed in graft target, even those unaffected by the commit to be grafted

bugzilla at mercurial-scm.org bugzilla at mercurial-scm.org
Tue Oct 25 14:46:06 UTC 2016


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

            Bug ID: 5407
           Summary: Graft performs a filemerge for all files renamed in
                    graft target, even those unaffected by the commit to
                    be grafted
           Product: Mercurial
           Version: 4.0-rc
          Hardware: PC
                OS: Windows
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at selenic.com
          Reporter: gabor.stefanik at nng.com
                CC: mercurial-devel at selenic.com

This is a spinoff of bugs 4028 and 5126.

It turns out that with bug 4028 fixed, we are now able to graft changes
backwards through a rename, but we do so inefficiently. Specifically, we try to
do a filemerge for all files that were renamed between the graft base and the
graft target, regardless of whether they were touched by the commit being
grafted.

This can severely slow down such grafts, and even create unnecessary conflicts
in case of renamed binary files. In fact it was this, not bug 5126, that caused
the slow grafts we experienced at NNG after applying the fix for bug 4028.

Testcase:
  $ hg init test
  $ cd test
  $ echo a > a
  $ hg ci -qAma
  $ hg mv a b
  $ echo b > b
  $ hg ci -qAmb
  $ echo c > c
  $ hg ci -qAmc
  $ hg up -q .~2
  $ hg graft 2 -qt:fail

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


More information about the Mercurial-devel mailing list