[Bug 6140] New: AssertionError during rename-heavy merge: assert sf not in data['diverge'].

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Thu May 16 18:16:52 EDT 2019


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

            Bug ID: 6140
           Summary: AssertionError during rename-heavy merge: assert sf
                    not in data['diverge'].
           Product: Mercurial
           Version: 5.0
          Hardware: PC
                OS: Mac OS
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at mercurial-scm.org
          Reporter: kissling at oberon.ch
                CC: mercurial-devel at mercurial-scm.org

When trying to merge a revision containing a lot of renamed files (through
SourceTree, or through CLI) I run into an assertion. Never had issues with the
repository (~1 GB, about 25000 commits). I updated the CLI Mercurial from v4.9
to v5.0 (macOS Homebrew installation), but the error was still there.

Re-cloning the repository does not fix the problem.

The problematic revision I want to merge contains a lot of renamed files that
already exist on the merge destination (possibly also having conflicts, but the
merge fails before seeing the conflicts). All descendants of this revision fail
with the same assertion error.


Unfortunately, the repo is private and cannot be shared, but if there is a way
to enable extended logging I would happily provide those logs.

A workaround would also be kindly appreciated, as no descendant of the
problematic revision is mergeable due to this error.



$ hg merge xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
** unknown exception encountered, please report by visiting
** https://mercurial-scm.org/wiki/BugTracker
** Python 2.7.16 (default, Apr 12 2019, 15:32:40) [GCC 4.2.1 Compatible Apple
LLVM 10.0.1 (clang-1001.0.46.3)]
** Mercurial Distributed SCM (version 5.0)
** Extensions loaded: churn, convert, histedit, strip, mq, purge
Traceback (most recent call last):
  File "/usr/local/bin/hg", line 43, in <module>
    dispatch.run()
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/dispatch.py",
line 99, in run
    status = dispatch(req)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/dispatch.py",
line 225, in dispatch
    ret = _runcatch(req) or 0
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/dispatch.py",
line 376, in _runcatch
    return _callcatch(ui, _runcatchfunc)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/dispatch.py",
line 384, in _callcatch
    return scmutil.callcatch(ui, func)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/scmutil.py",
line 167, in callcatch
    return func()
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/dispatch.py",
line 367, in _runcatchfunc
    return _dispatch(req)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/dispatch.py",
line 1021, in _dispatch
    cmdpats, cmdoptions)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/dispatch.py",
line 756, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/dispatch.py",
line 1030, in _runcommand
    return cmdfunc()
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/dispatch.py",
line 1018, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/util.py",
line 1680, in check
    return func(*args, **kwargs)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/util.py",
line 1680, in check
    return func(*args, **kwargs)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/hgext/mq.py", line
3631, in mqcommand
    return orig(ui, repo, *args, **kwargs)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/util.py",
line 1680, in check
    return func(*args, **kwargs)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/commands.py",
line 4037, in merge
    labels=labels, abort=abort)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/hg.py",
line 961, in merge
    mergeforce=mergeforce, labels=labels)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/merge.py",
line 2075, in update
    followcopies, matcher=matcher, mergeforce=mergeforce)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/merge.py",
line 1342, in calculateupdates
    acceptremote, followcopies)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/merge.py",
line 1146, in manifestmerge
    ret = copies.mergecopies(repo, wctx, p2, pa)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/copies.py",
line 505, in mergecopies
    return _fullcopytracing(repo, c1, c2, base)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/copies.py",
line 603, in _fullcopytracing
    _checkcopies(c1, c2, f, base, tca, dirtyc1, limit, data1)
  File
"/usr/local/Cellar/mercurial/5.0/lib/python2.7/site-packages/mercurial/copies.py",
line 972, in _checkcopies
    assert sf not in data['diverge']
AssertionError

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


More information about the Mercurial-devel mailing list