[Bug 5955] New: cloning with ellipsis and narrow extension can lead to LookupError

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Thu Aug 9 16:11:06 UTC 2018


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

            Bug ID: 5955
           Summary: cloning with ellipsis and narrow extension can lead to
                    LookupError
           Product: Mercurial
           Version: default branch
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at mercurial-scm.org
          Reporter: 7895pulkit at gmail.com
                CC: mercurial-devel at mercurial-scm.org

I tested clone of our repo with ellipsis and this resulted in LookupError.

$ hg clone server-repo repo --debug --narrow --include 'contrib/<dir>/<dir1>'
sending hello command
sending between command
remote: 468
remote: capabilities: batch branchmap
bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%2C03%0Acheckheads%3Drelated%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushk
ey%0Ahgtagsfnodes%0Alistkeys%0Anarrow%3Dv0%0Aphases%3Dheads%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache
changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generald
elta,revlogv1,treemanifest unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
remote: 1
sending protocaps command
query 1; heads
sending batch command
requesting all changes
sending getbundle command
bundle2-input-bundle: with-transaction
bundle2-input-part: "changegroup" (params: 2 mandatory) supported
adding changesets
<some changeset hashes>
adding manifests
adding contrib/ revisions
bundle2-input-part: total payload size 67935614
bundle2-input-part: total payload size 72
bundle2-input-bundle: 2 parts total
transaction abort!
rollback completed
Traceback (most recent call last):
  File "/storage/pulkit/hg-committed/mercurial/scmutil.py", line 161, in
callcatch
    return func()
  File "/storage/pulkit/hg-committed/mercurial/dispatch.py", line 344, in
_runcatchfunc
    return _dispatch(req)
  File "/storage/pulkit/hg-committed/mercurial/dispatch.py", line 982, in
_dispatch
    cmdpats, cmdoptions)
  File "/storage/pulkit/hg-committed/hgext/journal.py", line 90, in runcommand
    return orig(lui, repo, cmd, fullargs, *args)
  File "/storage/pulkit/hg-committed/mercurial/dispatch.py", line 728, in
runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/storage/pulkit/hg-committed/mercurial/dispatch.py", line 990, in
_runcommand
    return cmdfunc()
  File "/storage/pulkit/hg-committed/mercurial/dispatch.py", line 979, in
<lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File "/storage/pulkit/hg-committed/mercurial/util.py", line 1531, in check
    return func(*args, **kwargs)
  File "/storage/pulkit/hg-committed/mercurial/util.py", line 1531, in check
    return func(*args, **kwargs)
  File "/storage/pulkit/hg-committed/hgext/wrapclone.py", line 38, in wrapclone
  File "/storage/pulkit/hg-committed/mercurial/util.py", line 1531, in check
    return func(*args, **kwargs)
  File "/storage/pulkit/hg-committed/mercurial/util.py", line 1531, in check
    return func(*args, **kwargs)
File "/storage/pulkit/hg-committed/hgext/sparse.py", line 163, in
_clonesparsecmd
    return orig(ui, repo, *args, **opts)
  File "/storage/pulkit/hg-committed/mercurial/util.py", line 1531, in check
    return func(*args, **kwargs)
  File "/storage/pulkit/hg-committed/mercurial/util.py", line 1531, in check
    return func(*args, **kwargs)
  File "/storage/pulkit/hg-committed/hgext/narrow/narrowcommands.py", line 112,
in clonenarrowcmd
    return orig(ui, repo, *args, **pycompat.strkwargs(opts))
  File "/storage/pulkit/hg-committed/mercurial/util.py", line 1531, in check
    return func(*args, **kwargs)
  File "/storage/pulkit/hg-committed/mercurial/commands.py", line 1454, in
clone
    shareopts=opts.get('shareopts'))
  File "/storage/pulkit/hg-committed/mercurial/hg.py", line 710, in clone
    streamclonerequested=stream)
  File "/storage/pulkit/hg-committed/hgext/narrow/narrowcommands.py", line 107,
in pullnarrow
    return orig(repo, *args, **kwargs)
  File "/storage/pulkit/hg-committed/mercurial/exchange.py", line 1495, in pull
    _fullpullbundle2(repo, pullop)
  File "/storage/pulkit/hg-committed/mercurial/exchange.py", line 1435, in
_fullpullbundle2
    _pullbundle2(pullop)
  File "/storage/pulkit/hg-committed/mercurial/exchange.py", line 1678, in
_pullbundle2
    bundle2.processbundle(pullop.repo, bundle, op=op)
  File "/storage/pulkit/hg-committed/mercurial/bundle2.py", line 460, in
processbundle
    processparts(repo, op, unbundler)
  File "/storage/pulkit/hg-committed/mercurial/bundle2.py", line 467, in
processparts
    _processpart(op, part)
  File "/storage/pulkit/hg-committed/mercurial/bundle2.py", line 534, in
_processpart
    handler(op, part)
  File "/storage/pulkit/hg-committed/hgext/narrow/narrowbundle2.py", line 281,
in wrappedcghandler
    origcghandler(op, inpart)
  File "/storage/pulkit/hg-committed/mercurial/bundle2.py", line 1805, in
handlechangegroup
    expectedtotal=nbchangesets, **extrakwargs)
  File "/storage/pulkit/hg-committed/mercurial/bundle2.py", line 470, in
_processchangegroup
    ret = cg.apply(op.repo, tr, source, url, **kwargs)
  File "/storage/pulkit/hg-committed/mercurial/changegroup.py", line 326, in
apply
    self._unpackmanifests(repo, revmap, trp, progress)
  File "/storage/pulkit/hg-committed/mercurial/changegroup.py", line 486, in
_unpackmanifests
    if not dirlog.addgroup(deltas, revmap, trp):
  File "/storage/pulkit/hg-committed/mercurial/revlog.py", line 2643, in
addgroup
    _('unknown parent'))
LookupError: meta/contrib/00manifest.i at 1ff283c19e0c: unknown parent
abort: meta/contrib/00manifest.i at 1ff283c19e0c: unknown parent!

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


More information about the Mercurial-devel mailing list