context: move contents of committablectx.markcommitted() to workingctx
Same reasoning as previous commits: this function updates the
dirstate. By not updating the dirstate here, we also fix the
close-head test.
Differential Revision: https://phab.mercurial-scm.org/D6365
--- a/mercurial/context.py Fri May 10 22:18:11 2019 -0700
+++ b/mercurial/context.py Fri May 10 21:55:59 2019 -0700
@@ -1226,18 +1226,6 @@
"""
- with self._repo.dirstate.parentchange():
- for f in self.modified() + self.added():
- self._repo.dirstate.normal(f)
- for f in self.removed():
- self._repo.dirstate.drop(f)
- self._repo.dirstate.setparents(node)
-
- # write changes out explicitly, because nesting wlock at
- # runtime may prevent 'wlock.release()' in 'repo.commit()'
- # from immediately doing so for subsequent changing files
- self._repo.dirstate.write(self._repo.currenttransaction())
-
def dirty(self, missing=False, merge=True, branch=True):
return False
@@ -1657,7 +1645,17 @@
return sorted(f for f in ds.matches(match) if ds[f] != 'r')
def markcommitted(self, node):
- super(workingctx, self).markcommitted(node)
+ with self._repo.dirstate.parentchange():
+ for f in self.modified() + self.added():
+ self._repo.dirstate.normal(f)
+ for f in self.removed():
+ self._repo.dirstate.drop(f)
+ self._repo.dirstate.setparents(node)
+
+ # write changes out explicitly, because nesting wlock at
+ # runtime may prevent 'wlock.release()' in 'repo.commit()'
+ # from immediately doing so for subsequent changing files
+ self._repo.dirstate.write(self._repo.currenttransaction())
sparse.aftercommit(self._repo, node)
--- a/tests/fakedirstatewritetime.py Fri May 10 22:18:11 2019 -0700
+++ b/tests/fakedirstatewritetime.py Fri May 10 21:55:59 2019 -0700
@@ -74,5 +74,5 @@
def extsetup(ui):
extensions.wrapfunction(context.workingctx, '_poststatusfixup',
_poststatusfixup)
- extensions.wrapfunction(context.committablectx, 'markcommitted',
+ extensions.wrapfunction(context.workingctx, 'markcommitted',
markcommitted)
--- a/tests/test-close-head.t Fri May 10 22:18:11 2019 -0700
+++ b/tests/test-close-head.t Fri May 10 21:55:59 2019 -0700
@@ -37,7 +37,7 @@
000000000000
$ hg --config extensions.closehead= close-head -m 'Close old heads' -r 1 2
$ hg id
- 340d36cac2f4 tip
+ 000000000000
$ hg bookmark
@ 1:66f7d451a68b
$ hg heads