[Bug 4945] New: Stripped amend-ed changesets cannot be re-pulled

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Mon Nov 9 00:43:35 UTC 2015


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

            Bug ID: 4945
           Summary: Stripped amend-ed changesets cannot be re-pulled
           Product: Mercurial
           Version: 3.6
          Hardware: PC
                OS: Mac OS
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: strip
          Assignee: bugzilla at selenic.com
          Reporter: arai.unmht at gmail.com
                CC: mercurial-devel at selenic.com

(maybe similar to bug 4535)

Steps to reproduce:

1. prepare .hgrc for strip and amend command
2. run following commands in some directory

  mkdir tmp
  cd tmp
  hg init .

  echo foo > f0
  hg add f0
  hg ci -m '0'         # 0

  echo foo > f1
  hg add f1
  hg ci -m '1'         # 0-1

  echo foo > f2
  hg add f2
  hg ci -m '2'         # 0-1-2

  echo bar > f2
  hg amend             #     4
                       #    /
                       # 0-1-2(x)

  hg strip -r 1        # 0

  hg pull .hg/strip-backup/*


Expected result:

stripped changesets are restored.


Actual result:

|hg pull| fails with following error, there hash is revision 2's one.

  abort: 00changelog.i at 74b7f688c17bcb1256602be2fadb4bfa4baff66c: filtered node!


Here's output for |hg pull --traceback .hg/strip-backup/*|

pulling from .hg/strip-backup/25a687638727-9bb7f4b2-backup.hg
searching for changes
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
187, in _runcatch
    return _dispatch(req)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
920, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
679, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
1051, in _runcommand
    return checkargs()
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
1011, in checkargs
    return cmdfunc()
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line
917, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line
183, in closure
    return func(*(args + a), **kw)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File
"/Users/arai/.mozbuild/version-control-tools/hgext/firefoxtree/__init__.py",
line 299, in pullcommand
    return orig(ui, repo, source=source, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line
183, in closure
    return func(*(args + a), **kw)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hgext/mq.py", line 3525, in
mqcommand
    return orig(ui, repo, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line
183, in closure
    return func(*(args + a), **kw)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/Users/arai/projects/mutable-history/hgext/evolve.py", line 726, in
warnobserrors
    ret = orig(ui, repo, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line
183, in closure
    return func(*(args + a), **kw)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/Users/arai/projects/mutable-history/hgext/evolve.py", line 698, in
wrapmayobsoletewc
    res = origfn(ui, repo, *args, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line
183, in closure
    return func(*(args + a), **kw)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hgext/rebase.py", line 1143, in
pullrebase
    orig(ui, repo, *args, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 801, in
check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/commands.py", line
5324, in pull
    opargs=pullopargs).cgresult
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line
183, in closure
    return func(*(args + a), **kw)
  File
"/Users/arai/.mozbuild/version-control-tools/hgext/bundleclone/__init__.py",
line 590, in pull
    res = orig(repo, remote, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line
183, in closure
    return func(*(args + a), **kw)
  File
"/Users/arai/.mozbuild/version-control-tools/hgext/firefoxtree/__init__.py",
line 215, in pull
    res = orig(repo, remote, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line
183, in closure
    return func(*(args + a), **kw)
  File "/Users/arai/.mozbuild/version-control-tools/hgext/mozext/__init__.py",
line 755, in pull
    res = orig(repo, remote, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/exchange.py", line
1118, in pull
    _pullbundle2(pullop)
  File "/usr/local/lib/python2.7/site-packages/mercurial/exchange.py", line
1257, in _pullbundle2
    bundle = pullop.remote.getbundle('pull', **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/localrepo.py", line
117, in getbundle
    cg = bundle2.getunbundler(self.ui, cg)
  File "/usr/local/lib/python2.7/site-packages/mercurial/bundle2.py", line 636,
in getunbundler
    magicstring = changegroup.readexactly(fp, 4)
  File "/usr/local/lib/python2.7/site-packages/mercurial/changegroup.py", line
38, in readexactly
    s = stream.read(n)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1321,
in read
    for chunk in self.iter:
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1293,
in splitbig
    for chunk in chunks:
  File "/usr/local/lib/python2.7/site-packages/mercurial/bundle2.py", line 552,
in getchunks
    for chunk in self._getcorechunk():
  File "/usr/local/lib/python2.7/site-packages/mercurial/bundle2.py", line 574,
in _getcorechunk
    for chunk in part.getchunks(ui=self.ui):
  File "/usr/local/lib/python2.7/site-packages/mercurial/bundle2.py", line 950,
in getchunks
    for chunk in self._payloadchunks():
  File "/usr/local/lib/python2.7/site-packages/mercurial/bundle2.py", line 989,
in _payloadchunks
    chunk = buff.read(preferedchunksize)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1321,
in read
    for chunk in self.iter:
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1293,
in splitbig
    for chunk in chunks:
  File "/usr/local/lib/python2.7/site-packages/mercurial/changegroup.py", line
687, in generate
    source):
  File "/usr/local/lib/python2.7/site-packages/mercurial/changegroup.py", line
705, in generatefiles
    filerevlog = repo.file(fname)
  File "/usr/local/lib/python2.7/site-packages/mercurial/bundlerepo.py", line
364, in file
    return bundlefilelog(self.svfs, f, self.bundle, self.changelog.rev)
  File "/usr/local/lib/python2.7/site-packages/mercurial/bundlerepo.py", line
212, in __init__
    linkmapper)
  File "/usr/local/lib/python2.7/site-packages/mercurial/bundlerepo.py", line
72, in __init__
    link = linkmapper(cs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/changelog.py", line
212, in rev
    _('filtered node'))
FilteredLookupError: 00changelog.i at 74b7f688c17bcb1256602be2fadb4bfa4baff66c:
filtered node
abort: 00changelog.i at 74b7f688c17bcb1256602be2fadb4bfa4baff66c: filtered node!

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


More information about the Mercurial-devel mailing list