hgext/shelve.py
changeset 39401 c67c94c0e7ae
parent 39400 6a71324cb68b
child 39402 38373da1af02
--- a/hgext/shelve.py	Wed Jun 06 01:03:10 2018 +0200
+++ b/hgext/shelve.py	Wed Jun 06 00:57:22 2018 +0200
@@ -764,9 +764,15 @@
 def _unshelverestorecommit(ui, repo, basename):
     """Recreate commit in the repository during the unshelve"""
     repo = repo.unfiltered()
-    with ui.configoverride({('ui', 'quiet'): True}):
-        shelvedfile(repo, basename, 'hg').applybundle()
+    if shelvedfile(repo, basename, 'shelve').exists():
+        node = shelvedfile(repo, basename, 'shelve').readinfo()['node']
+    if node is None or node not in repo:
+        with ui.configoverride({('ui', 'quiet'): True}):
+            shelvedfile(repo, basename, 'hg').applybundle()
         shelvectx = repo['tip']
+    else:
+        shelvectx = repo[node]
+
     return repo, shelvectx
 
 def _rebaserestoredcommit(ui, repo, opts, tr, oldtiprev, basename, pctx,