[Bug 4077] New: abort: unknown revision when pulling a bookmark associated with a hidden changeset

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Thu Oct 31 16:28:41 CDT 2013


http://bz.selenic.com/show_bug.cgi?id=4077

          Priority: normal
            Bug ID: 4077
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: abort: unknown revision when pulling a bookmark
                    associated with a hidden changeset
          Severity: bug
    Classification: Unclassified
                OS: All
          Reporter: gregory.szorc at gmail.com
          Hardware: All
            Status: UNCONFIRMED
           Version: unspecified
         Component: Mercurial
           Product: Mercurial

This bug is similar in nature to bug 4075 in that things blow up when
attempting to push/pull when hidden changesets are involved.

I had a non-publishing repository where I was pushing bookmarks so I could
access things on separate devices. Somehow I managed to create a bookmark on
the server that was pointing to a hidden/obsolete changeset. When I attempted
to pull that repo, the client aborted:

$ hg pull collab
pulling from ssh://hgssh@hg.gregoryszorc.com/gecko-collab
searching for changes
no changes found
adding remote bookmark gps/build/backend-update-logic
adding remote bookmark gps/build/environment-assertion
adding remote bookmark gps/build/generic-build-rule
adding remote bookmark gps/build/gyp-dependencies
adding remote bookmark gps/build/jarmaker-api
adding remote bookmark gps/build/js-modules-install-manifests
abort: unknown revision '4eb57fd5292afdb2b547a0ca1354ea9ab825447f'!

I confirmed the changeset in question existed, but was hidden:

$ hg log --hidden -r 'hidden() and 4eb57fd5292afdb2b547a0ca1354ea9ab825447f'
changeset:   170469:4eb57fd5292a
parent:      170304:6c06b499bb16

Stack:

$ hg --debug --traceback pull collab
running ssh hgssh at hg.gregoryszorc.com 'hg -R gecko-collab serve --stdio'
sending hello command
sending between command
remote: 145
remote: capabilities: lookup changegroupsubset branchmap pushkey known
getbundle unbundlehash batch stream unbundle=HG10GZ,HG10BZ,HG10UN
httpheader=1024
remote: 1
pulling from ssh://hgssh@hg.gregoryszorc.com/gecko-collab
preparing listkeys for "bookmarks"
sending listkeys command
query 1; heads
sending batch command
searching for changes
all remote heads known locally
no changes found
preparing listkeys for "phases"
sending listkeys command
fetching remote obsolete markers
preparing listkeys for "obsolete"
sending listkeys command
checking for updated bookmarks
adding remote bookmark gps/build/backend-update-logic
adding remote bookmark gps/build/environment-assertion
adding remote bookmark gps/build/generic-build-rule
adding remote bookmark gps/build/gyp-dependencies
adding remote bookmark gps/build/jarmaker-api
adding remote bookmark gps/build/js-modules-install-manifests
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 97, in
_runcatch
    return _dispatch(req)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 778, in
_dispatch
    cmdpats, cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 549, in
runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 188, in
wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/hgext/pager.py", line 132, in pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 188, in
wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 412, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 869, in
_runcommand
    return checkargs()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 840, in
checkargs
    return cmdfunc()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 775, in
<lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 143, in
wrap
    util.checksignature(origfn), *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/home/gps/src/hgext-gecko-dev/__init__.py", line 504, in pullexpand
    result = orig(ui, repo, uri or tree, **opts)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 143, in
wrap
    util.checksignature(origfn), *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/hgext/mq.py", line 3533, in mqcommand
    return orig(ui, repo, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 143, in
wrap
    util.checksignature(origfn), *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/home/gps/src/mutable-history/hgext/evolve.py", line 585, in
warnobserrors
    ret = orig(ui, repo, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 143, in
wrap
    util.checksignature(origfn), *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/home/gps/src/mutable-history/hgext/evolve.py", line 564, in
wrapmayobsoletewc
    res = origfn(ui, repo, *args, **opts)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 143, in
wrap
    util.checksignature(origfn), *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/hgext/rebase.py", line 811, in
pullrebase
    orig(ui, repo, *args, **opts)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 507, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 4599, in
pull
    bookmarks.updatefromremote(ui, repo, remotebookmarks, source)
  File "/usr/lib/python2.7/dist-packages/mercurial/bookmarks.py", line 279, in
updatefromremote
    localmarks[k] = repo[remotemarks[k]].node()
  File "/usr/lib/python2.7/dist-packages/mercurial/localrepo.py", line 391, in
__getitem__
    return context.changectx(self, changeid)
  File "/usr/lib/python2.7/dist-packages/mercurial/context.py", line 115, in
__init__
    _("unknown revision '%s'") % changeid)
RepoLookupError: unknown revision '4eb57fd5292afdb2b547a0ca1354ea9ab825447f'
abort: unknown revision '4eb57fd5292afdb2b547a0ca1354ea9ab825447f'!

I'm trying to come up with STR. The simple case of setting a bookmark to an
obsolete/hidden changeset and then pulling that repo from local fs doesn't seem
to be triggering this...

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


More information about the Mercurial-devel mailing list