D6169: unshelve: disable unshelve during merge (issue5123)
navaneeth.suresh (Navaneeth Suresh)
phabricator at mercurial-scm.org
Tue Apr 2 09:06:28 EDT 2019
navaneeth.suresh updated this revision to Diff 14616.
navaneeth.suresh edited the summary of this revision.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6169?vs=14592&id=14616
REVISION DETAIL
https://phab.mercurial-scm.org/D6169
AFFECTED FILES
hgext/shelve.py
tests/test-shelve.t
CHANGE DETAILS
diff --git a/tests/test-shelve.t b/tests/test-shelve.t
--- a/tests/test-shelve.t
+++ b/tests/test-shelve.t
@@ -1087,3 +1087,46 @@
test (4|13):33f7f61e6c5e (re)
$ cd ..
+
+Abort unshelve while merging (issue5123)
+-----------------------------------------
+ $ hg init issue5123
+ $ cd issue5123
+ $ echo > a
+ $ hg ci -Am a
+ adding a
+ $ hg co null
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo > b
+ $ hg ci -Am b
+ adding b
+ created new head
+ $ echo > c
+ $ hg add c
+ $ hg shelve
+ shelved as default
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg co 1
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 0
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+-- successful merge with two parents
+ $ hg log -G
+ @ changeset: 1:406bf70c274f
+ tag: tip
+ parent: -1:000000000000
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: b
+
+ @ changeset: 0:ada8c9eb8252
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: a
+
+-- trying to pull in the shelve bits
+-- unshelve should abort otherwise, it'll eat my second parent.
+ $ hg unshelve
+ abort: cannot unshelve while merging
+ [255]
diff --git a/hgext/shelve.py b/hgext/shelve.py
--- a/hgext/shelve.py
+++ b/hgext/shelve.py
@@ -988,6 +988,12 @@
return unshelvecontinue(ui, repo, state, opts)
elif len(shelved) > 1:
raise error.Abort(_('can only unshelve one change at a time'))
+
+ # abort unshelve while merging (issue5123)
+ parents = repo[None].parents()
+ if len(parents) > 1:
+ raise error.Abort(_('cannot unshelve while merging'))
+
elif not shelved:
shelved = listshelves(repo)
if not shelved:
To: navaneeth.suresh, #hg-reviewers
Cc: yuja, mercurial-devel
More information about the Mercurial-devel
mailing list