--- a/hgext/shelve.py Thu Nov 10 11:02:39 2016 -0800
+++ b/hgext/shelve.py Fri Nov 11 07:01:27 2016 -0800
@@ -707,6 +707,14 @@
toforget = (addedafter & shelveunknown) - addedbefore
repo[None].forget(toforget)
+def _finishunshelve(repo, oldtiprev, tr):
+ # The transaction aborting will strip all the commits for us,
+ # but it doesn't update the inmemory structures, so addchangegroup
+ # hooks still fire and try to operate on the missing commits.
+ # Clean up manually to prevent this.
+ repo.unfiltered().changelog.strip(oldtiprev, tr)
+ _aborttransaction(repo)
+
@command('unshelve',
[('a', 'abort', None,
_('abort an incomplete unshelve operation')),
@@ -846,16 +854,8 @@
_forgetunknownfiles(repo, shelvectx, addedbefore)
shelvedstate.clear(repo)
-
- # The transaction aborting will strip all the commits for us,
- # but it doesn't update the inmemory structures, so addchangegroup
- # hooks still fire and try to operate on the missing commits.
- # Clean up manually to prevent this.
- repo.unfiltered().changelog.strip(oldtiprev, tr)
-
+ _finishunshelve(repo, oldtiprev, tr)
unshelvecleanup(ui, repo, basename, opts)
-
- _aborttransaction(repo)
finally:
ui.quiet = oldquiet
if tr: