https://bz.mercurial-scm.org/show_bug.cgi?id=5794
Bug ID: 5794 Summary: lfs doesn't play well with narrow Product: Mercurial Version: default branch Hardware: PC OS: Linux Status: UNCONFIRMED Severity: feature Priority: wish Component: lfs Assignee: bugzi...@mercurial-scm.org Reporter: idls...@gmail.com CC: mercurial-devel@mercurial-scm.org I've tried to clone a repository with both narrow and lfs enabled, and got a LookupError for a file that was excluded from the clone. The interesting part in the stacktrace is line 230 from lfs/__init__.py: 230: # TODO: is there a way to just walk the files in the commit? 231: if any(ctx[f].islfs() for f in ctx.files() if f in ctx): Here is the full stracktrace: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/mercurial/scmutil.py", line 154, in callcatch return func() File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 314, in _runcatchfunc return _dispatch(req) File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 917, in _dispatch cmdpats, cmdoptions) File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 674, in runcommand ret = _runcommand(ui, options, cmd, d) File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 925, in _runcommand return cmdfunc() File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 914, in <lambda> d = lambda: util.checksignature(func)(ui, *args, **strcmdopt) File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1228, in check return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1228, in check return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/hgext/narrow/narrowcommands.py", line 116, in clonenarrowcmd return orig(ui, repo, *args, **pycompat.strkwargs(opts)) File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1228, in check return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 1450, in clone shareopts=opts.get('shareopts')) File "/usr/lib/python2.7/dist-packages/hgext/lfs/wrapper.py", line 227, in hgclone result = orig(ui, opts, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 680, in clone streamclonerequested=stream) File "/usr/lib/python2.7/dist-packages/hgext/narrow/narrowcommands.py", line 111, in pullnarrow return orig(repo, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/mercurial/exchange.py", line 1364, in pull _pullbundle2(pullop) File "/usr/lib/python2.7/dist-packages/mercurial/exchange.py", line 1541, in _pullbundle2 bundle2.processbundle(pullop.repo, bundle, op=op) File "/usr/lib/python2.7/dist-packages/mercurial/bundle2.py", line 454, in processbundle processparts(repo, op, unbundler) File "/usr/lib/python2.7/dist-packages/mercurial/bundle2.py", line 461, in processparts _processpart(op, part) File "/usr/lib/python2.7/dist-packages/mercurial/bundle2.py", line 528, in _processpart handler(op, part) File "/usr/lib/python2.7/dist-packages/hgext/narrow/narrowbundle2.py", line 491, in wrappedcghandler origcghandler(op, inpart) File "/usr/lib/python2.7/dist-packages/mercurial/bundle2.py", line 1734, in handlechangegroup expectedtotal=nbchangesets, **extrakwargs) File "/usr/lib/python2.7/dist-packages/mercurial/bundle2.py", line 464, in _processchangegroup ret = cg.apply(op.repo, tr, source, url, **kwargs) File "/usr/lib/python2.7/dist-packages/mercurial/changegroup.py", line 364, in apply throw=True, **pycompat.strkwargs(hookargs)) File "/usr/lib/python2.7/dist-packages/mercurial/localrepo.py", line 827, in hook return hook.hook(self.ui, self, name, throw, **args) File "/usr/lib/python2.7/dist-packages/mercurial/hook.py", line 210, in hook res = runhooks(ui, repo, htype, hooks, throw=throw, **args) File "/usr/lib/python2.7/dist-packages/mercurial/hook.py", line 246, in runhooks throw) File "/usr/lib/python2.7/dist-packages/mercurial/hook.py", line 94, in _pythonhook r = obj(ui=ui, repo=repo, hooktype=htype, **pycompat.strkwargs(args)) File "/usr/lib/python2.7/dist-packages/hgext/lfs/__init__.py", line 231, in checkrequireslfs if any(ctx[f].islfs() for f in ctx.files() if f in ctx): File "/usr/lib/python2.7/dist-packages/hgext/lfs/__init__.py", line 231, in <genexpr> if any(ctx[f].islfs() for f in ctx.files() if f in ctx): File "/usr/lib/python2.7/dist-packages/hgext/lfs/wrapper.py", line 179, in filectxislfs return _islfs(self.filelog(), self.filenode()) File "/usr/lib/python2.7/dist-packages/mercurial/context.py", line 774, in filenode return self._filenode File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 966, in __get__ result = self.func(obj) File "/usr/lib/python2.7/dist-packages/mercurial/context.py", line 722, in _filenode return self._filelog.lookup(self._fileid) File "/usr/lib/python2.7/dist-packages/mercurial/revlog.py", line 1448, in lookup raise LookupError(id, self.indexfile, _('no match found')) -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel