martinvonz added a comment.
In https://phab.mercurial-scm.org/D4341#67539, @pulkit wrote: > Maybe the current state is not very helpful in reviewing. The traceback which I am trying to fix is this: > > $ hg merge > + Traceback (most recent call last): > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/scmutil.py", line 161, in callcatch > + return func() > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/dispatch.py", line 344, in _runcatchfunc > + return _dispatch(req) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/dispatch.py", line 982, in _dispatch > + cmdpats, cmdoptions) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/dispatch.py", line 728, in runcommand > + ret = _runcommand(ui, options, cmd, d) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/dispatch.py", line 990, in _runcommand > + return cmdfunc() > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/dispatch.py", line 979, in <lambda> > + d = lambda: util.checksignature(func)(ui, *args, **strcmdopt) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/util.py", line 1531, in check > + return func(*args, **kwargs) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/commands.py", line 3785, in merge > + labels=labels, abort=abort) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/hg.py", line 904, in merge > + labels=labels) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/merge.py", line 2177, in update > + stats = applyupdates(repo, actions, wc, p2, overwrite, labels=labels) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/merge.py", line 1584, in applyupdates > + ms.add(fcl, fco, fca, f) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/merge.py", line 493, in add > + self._repo.vfs.write('merge/' + hash, fcl.data()) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/context.py", line 1685, in data > + return self._repo.wread(self._path) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/localrepo.py", line 1212, in wread > + data = self.wvfs.read(filename) > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/vfs.py", line 78, in read > + with self(path, 'rb') as fp: > + File "/place/vartmp/hgtests.nx0HIy/install/lib/python/mercurial/vfs.py", line 409, in __call__ > + fp = util.posixfile(f, mode) > + IOError: [Errno 2] $ENOENT$: '$TESTTMP/mvtest/a' > abort: $ENOENT$: $TESTTMP/mvtest/a > [255] > > > > The error comes when we try to read a working-fctx which is not present in working directory. I don't think applyupdates is the right place to add logic about updating sparse checkouts. The best way I could figure out is that explicitly take care that f2 is loaded while merging. Could you add that to the commit message (probably not including the entire stack trace)? REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D4341 To: pulkit, #hg-reviewers Cc: martinvonz, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel