fix: include cleanupnodes() in transaction
As pointed out by Yuya, we need a transaction to make sure the state
before the call to cleanupnodes() is not observable.
Differential Revision: https://phab.mercurial-scm.org/D3823
--- a/hgext/fix.py Tue Jun 19 22:19:37 2018 -0700
+++ b/hgext/fix.py Wed Jun 20 09:27:30 2018 -0700
@@ -133,7 +133,7 @@
raise error.Abort(_('cannot specify both "--rev" and "--all"'))
opts['rev'] = ['not public() and not obsolete()']
opts['working_dir'] = True
- with repo.wlock(), repo.lock():
+ with repo.wlock(), repo.lock(), repo.transaction('fix'):
revstofix = getrevstofix(ui, repo, opts)
basectxs = getbasectxs(repo, opts, revstofix)
workqueue, numitems = getworkqueue(ui, repo, pats, opts, revstofix,
--- a/tests/test-fix-topology.t Tue Jun 19 22:19:37 2018 -0700
+++ b/tests/test-fix-topology.t Wed Jun 20 09:27:30 2018 -0700
@@ -322,7 +322,6 @@
$ hg fix --all
- 1 new orphan changesets
$ hg log --graph --template '{rev} {desc}\n' -r 'sort(all(), topo)' --hidden
o 11 fifth