[Bug 6066] New: rebase can lead to AttributeError

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Wed Jan 30 17:31:50 UTC 2019


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

            Bug ID: 6066
           Summary: rebase can lead to AttributeError
           Product: Mercurial
           Version: 4.9rc0
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: rebase
          Assignee: bugzilla at mercurial-scm.org
          Reporter: 7895pulkit at gmail.com
                CC: mercurial-devel at mercurial-scm.org

I was rebasing something and hit the following traceback:

```
~/repo/pushaccess/tests$ hg rebase -b . -d @
rebasing 41680:62b328f80ba3 "py3: fix up test-remotefilelog-cacheprocess.t to
not depend on a repr"
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/mercurial/scmutil.py", line 165,
in callcatch
    return func()
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
367, in _runcatchfunc
    return _dispatch(req)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
1021, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/local/lib/python2.7/dist-packages/hgext/journal.py", line 90, in
runcommand
    return orig(lui, repo, cmd, fullargs, *args)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
756, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
1030, in _runcommand
    return cmdfunc()
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
1018, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/home/foobar/repo/mutable-history/hgext3rd/evolve/__init__.py", line
797, in warnobserrors
    return orig(ui, repo, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/home/foobar/repo/mutable-history/hgext3rd/topic/__init__.py", line
1239, in setrebaseconfig
    return orig(ui, repo, **opts)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 921, in
rebase
    return _dorebase(ui, repo, action, opts, inmemory=inmemory)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 975, in
_dorebase
    return _origrebase(ui, repo, action, opts, rbsrt, inmemory=inmemory)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 1044, in
_origrebase
    rbsrt._performrebase(tr)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 458, in
_performrebase
    self._rebasenode(tr, rev, allowdivergence, progress)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 549, in
_rebasenode
    dest, wctx=self.wctx)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 1267, in
rebasenode
    labels=['dest', 'source'], wc=wctx)
  File "/home/foobar/repo/mutable-history/hgext3rd/topic/__init__.py", line
1186, in mergeupdatewrap
    ret = orig(repo, node, branchmerge, force, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/merge.py", line 2075,
in update
    followcopies, matcher=matcher, mergeforce=mergeforce)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/merge.py", line 1342,
in calculateupdates
    acceptremote, followcopies)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/merge.py", line 1146,
in manifestmerge
    ret = copies.mergecopies(repo, wctx, p2, pa)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/copies.py", line 416,
in mergecopies
    return _fullcopytracing(repo, c1, c2, base)
  File "/home/foobar/repo/mutable-history/hgext3rd/evolve/compat.py", line 251,
in fixedcopytracing
    limit = copies._findlimit(repo, c1.rev(), c2.rev())
  File "/usr/local/lib/python2.7/dist-packages/mercurial/copies.py", line 49,
in _findlimit
    a = ctxa.rev()
AttributeError: 'NoneType' object has no attribute 'rev'
** Unknown exception encountered with possibly-broken third-party extension
debugshell
** which supports versions unknown of Mercurial.
** Please disable debugshell and try your action again.
** If that fixes the bug please report it to the extension author.
** Python 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]
** Mercurial Distributed SCM (version 4.9rc0+159-30dd20a56f3e)
** Extensions loaded: releasenotes, blackbox, journal, show, patchbomb, churn,
rebase, shelve, evolve, topic, absorb, fastannotate, debugshell, phabricator,
bbreview
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/mercurial/commandserver.py",
line 433, in _serverequest
    sv.serve()
  File "/usr/local/lib/python2.7/dist-packages/mercurial/commandserver.py",
line 346, in serve
    while self.serveone():
  File "/usr/local/lib/python2.7/dist-packages/mercurial/commandserver.py",
line 319, in serveone
    handler(self)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/chgserver.py", line
492, in runcommand
    return super(chgcmdserver, self).runcommand()
  File "/usr/local/lib/python2.7/dist-packages/mercurial/commandserver.py",
line 303, in runcommand
    ret = dispatch.dispatch(req) & 255
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
225, in dispatch
    ret = _runcatch(req) or 0
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
376, in _runcatch
    return _callcatch(ui, _runcatchfunc)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
384, in _callcatch
    return scmutil.callcatch(ui, func)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/scmutil.py", line 165,
in callcatch
    return func()
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
367, in _runcatchfunc
    return _dispatch(req)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
1021, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/local/lib/python2.7/dist-packages/hgext/journal.py", line 90, in
runcommand
    return orig(lui, repo, cmd, fullargs, *args)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
756, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
1030, in _runcommand
    return cmdfunc()
  File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line
1018, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/home/foobar/repo/mutable-history/hgext3rd/evolve/__init__.py", line
797, in warnobserrors
    return orig(ui, repo, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/home/foobar/repo/mutable-history/hgext3rd/topic/__init__.py", line
1239, in setrebaseconfig
    return orig(ui, repo, **opts)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line 1676,
in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 921, in
rebase
    return _dorebase(ui, repo, action, opts, inmemory=inmemory)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 975, in
_dorebase
    return _origrebase(ui, repo, action, opts, rbsrt, inmemory=inmemory)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 1044, in
_origrebase
    rbsrt._performrebase(tr)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 458, in
_performrebase
    self._rebasenode(tr, rev, allowdivergence, progress)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 549, in
_rebasenode
    dest, wctx=self.wctx)
  File "/usr/local/lib/python2.7/dist-packages/hgext/rebase.py", line 1267, in
rebasenode
    labels=['dest', 'source'], wc=wctx)
  File "/home/foobar/repo/mutable-history/hgext3rd/topic/__init__.py", line
1186, in mergeupdatewrap
    ret = orig(repo, node, branchmerge, force, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/merge.py", line 2075,
in update
    followcopies, matcher=matcher, mergeforce=mergeforce)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/merge.py", line 1342,
in calculateupdates
    acceptremote, followcopies)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/merge.py", line 1146,
in manifestmerge
    ret = copies.mergecopies(repo, wctx, p2, pa)
  File "/usr/local/lib/python2.7/dist-packages/mercurial/copies.py", line 416,
in mergecopies
    return _fullcopytracing(repo, c1, c2, base)
  File "/home/foobar/repo/mutable-history/hgext3rd/evolve/compat.py", line 251,
in fixedcopytracing
    limit = copies._findlimit(repo, c1.rev(), c2.rev())
  File "/usr/local/lib/python2.7/dist-packages/mercurial/copies.py", line 49,
in _findlimit
    a = ctxa.rev()
AttributeError: 'NoneType' object has no attribute 'rev'
```

I am using in-memory merge and copytracing is enabled.

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


More information about the Mercurial-devel mailing list