763 return tmpwctx, addedbefore |
763 return tmpwctx, addedbefore |
764 |
764 |
765 def _unshelverestorecommit(ui, repo, basename): |
765 def _unshelverestorecommit(ui, repo, basename): |
766 """Recreate commit in the repository during the unshelve""" |
766 """Recreate commit in the repository during the unshelve""" |
767 repo = repo.unfiltered() |
767 repo = repo.unfiltered() |
|
768 node = None |
768 if shelvedfile(repo, basename, 'shelve').exists(): |
769 if shelvedfile(repo, basename, 'shelve').exists(): |
769 node = shelvedfile(repo, basename, 'shelve').readinfo()['node'] |
770 node = shelvedfile(repo, basename, 'shelve').readinfo()['node'] |
770 if node is None or node not in repo: |
771 if node is None or node not in repo: |
771 with ui.configoverride({('ui', 'quiet'): True}): |
772 with ui.configoverride({('ui', 'quiet'): True}): |
772 shelvedfile(repo, basename, 'hg').applybundle() |
773 shelvedfile(repo, basename, 'hg').applybundle() |
773 shelvectx = repo['tip'] |
774 shelvectx = repo['tip'] |
774 # We might not strip the unbundled changeset, so we should keep track of |
775 # We might not strip the unbundled changeset, so we should keep track of |
775 # the unshelve node in case we need to reuse it (eg: unshelve --keep) |
776 # the unshelve node in case we need to reuse it (eg: unshelve --keep) |
776 if node is None: |
777 if node is None: |
777 info = {'node': nodemod.hex(node)} |
778 info = {'node': nodemod.hex(shelvectx.node())} |
778 shelvedfile(repo, basename, 'shelve').writeinfo(info) |
779 shelvedfile(repo, basename, 'shelve').writeinfo(info) |
779 else: |
780 else: |
780 shelvectx = repo[node] |
781 shelvectx = repo[node] |
781 |
782 |
782 return repo, shelvectx |
783 return repo, shelvectx |