##// END OF EJS Templates
revert: remove dangerous `parents` argument from `cmdutil.revert()`...
revert: remove dangerous `parents` argument from `cmdutil.revert()` As we found out the hard way (thanks to spectral@ for figuring it out!), `cmdutil.revert()`'s `parents` argument must be `repo.dirstate.parents()` or things may go wrong. We had an extension that passed in the target commit as the first parent. The `hg split` command from the evolve extension seems to have made the same mistake, but I haven't looked carefully. The problem is that `cmdutil._performrevert()` calls `dirstate.normal()` on reverted files if the commit to revert to equals the first parent. So if you pass in `ctx=foo` and `parents=(foo.node(), nullid)`, then `dirstate.normal()` will be called for the revert files, even though they might not be clean in the working copy. There doesn't seem to be any reason, other than a tiny performance benefit, to passing the `parents` around instead of looking them up again in `cmdutil._performrevert()`, so that's what this patch does. Differential Revision: https://phab.mercurial-scm.org/D8925

File last commit:

r41072:ce0bc295 default
r45935:8c466bcb default
Show More
TODO.rst
21 lines | 782 B | text/x-rst | RstLexer

Address commentary in manifest.excludedmanifestrevlog.add - specifically we should improve the collaboration with core so that add() never gets called on an excluded directory and we can improve the stand-in to raise a ProgrammingError.

Reason more completely about rename-filtering logic in narrowfilelog. There could be some surprises lurking there.

Formally document the narrowspec format. For bonus points, unify with the server-specified narrowspec format.

narrowrepo.setnarrowpats() or narrowspec.save() need to make sure they're holding the wlock.

The follinwg places do an unrestricted dirstate walk (including files outside the narrowspec). Some of them should perhaps not do that.

  • debugfileset
  • perfwalk
  • sparse (but restricted to sparse config)
  • largefiles