From patchwork Sat Jul 27 06:56:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D6700: unshelve: clear shelvedstate and _finishunshelve() on partial unshelve From: phabricator X-Patchwork-Id: 41090 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Sat, 27 Jul 2019 06:56:03 +0000 navaneeth.suresh created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY On a partial `unshelve`, `shelvedstate` was not cleared and `_finishunshelve()` was not called. Ideally, these should be called on this case. This patch makes `shelvedstate` to delete after a successful partial `unshelve` and calls `_finishunshelve()` in the same case. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D6700 AFFECTED FILES mercurial/shelve.py tests/test-shelve.t CHANGE DETAILS To: navaneeth.suresh, #hg-reviewers Cc: mercurial-devel diff --git a/tests/test-shelve.t b/tests/test-shelve.t --- a/tests/test-shelve.t +++ b/tests/test-shelve.t @@ -1239,6 +1239,7 @@ > y > EOF unshelving change 'default' + temporarily committing pending changes (restore with 'hg unshelve --abort') rebasing shelved changes diff --git a/d b/d new file mode 100644 diff --git a/mercurial/shelve.py b/mercurial/shelve.py --- a/mercurial/shelve.py +++ b/mercurial/shelve.py @@ -1001,11 +1001,10 @@ with ui.configoverride(overrides, 'unshelve'): mergefiles(ui, repo, pctx, shelvectx) restorebranch(ui, repo, branchtorestore) + shelvedstate.clear(repo) + _finishunshelve(repo, oldtiprev, tr, activebookmark) if not ispartialunshelve: _forgetunknownfiles(repo, shelvectx, addedbefore) - - shelvedstate.clear(repo) - _finishunshelve(repo, oldtiprev, tr, activebookmark) unshelvecleanup(ui, repo, basename, opts) finally: if tr: