# HG changeset patch # User Jun Wu # Date 1489468938 25200 # Node ID 6f0b7475cf9a1c3b6232b7f0e5449c6d0ca8c6cc # Parent 9d55494bd0dbbf4dd3245cb384e01e3627e309fd histedit: use safecleanupnode in _aborthistedit (issue5500) Now nobody in histedit calls the unsafe cleanupnode directly. diff -r 9d55494bd0db -r 6f0b7475cf9a hgext/histedit.py --- a/hgext/histedit.py Mon Mar 13 22:19:06 2017 -0700 +++ b/hgext/histedit.py Mon Mar 13 22:22:18 2017 -0700 @@ -1209,8 +1209,8 @@ if repo.unfiltered().revs('parents() and (%n or %ln::)', state.parentctxnode, leafs | tmpnodes): hg.clean(repo, state.topmost, show_stats=True, quietempty=True) - cleanupnode(ui, repo, 'created', tmpnodes) - cleanupnode(ui, repo, 'temp', leafs) + safecleanupnode(ui, repo, 'created', tmpnodes) + safecleanupnode(ui, repo, 'temp', leafs) except Exception: if state.inprogress(): ui.warn(_('warning: encountered an exception during histedit ' diff -r 9d55494bd0db -r 6f0b7475cf9a tests/test-histedit-obsolete.t --- a/tests/test-histedit-obsolete.t Mon Mar 13 22:19:06 2017 -0700 +++ b/tests/test-histedit-obsolete.t Mon Mar 13 22:22:18 2017 -0700 @@ -503,3 +503,49 @@ abort: cannot edit history that contains merges [255] $ cd .. + +Abort +------------------------------------------- + + $ cp -R base abort + $ cd abort + $ hg histedit -r 'b449568bf7fc' --commands - << EOF + > pick b449568bf7fc 13 f + > pick 7395e1ff83bd 15 h + > pick 6b70183d2492 14 g + > pick b605fb7503f2 16 i + > pick 3a6c53ee7f3d 17 j + > edit ee118ab9fa44 18 k + > EOF + Editing (ee118ab9fa44), you may commit or record as needed now. + (hg histedit --continue to resume) + [1] + + $ hg histedit --abort + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + + $ hg log -G --hidden -r '::. + .:' + x 22:44ca09d59ae4 (secret) j + | + x 21:31747692a644 (secret) i + | + x 20:9985cd4f21fa (draft) g + | + x 19:4dc06258baa6 (draft) h + | + | @ 18:ee118ab9fa44 (secret) k + | | + | o 17:3a6c53ee7f3d (secret) j + | | + | o 16:b605fb7503f2 (secret) i + | | + | o 15:7395e1ff83bd (draft) h + | | + | o 14:6b70183d2492 (draft) g + |/ + o 13:b449568bf7fc (draft) f + | + o 12:40db8afa467b (public) c + | + o 0:cb9a9f314b8b (public) a +