D6169: unshelve: disable unshelve during merge (issue5123)
navaneeth.suresh (Navaneeth Suresh)
phabricator at mercurial-scm.org
Tue Apr 2 18:40:34 EDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG03f6480bfdda: unshelve: disable unshelve during merge (issue5123) (authored by navaneeth.suresh, committed by ).
CHANGED PRIOR TO COMMIT
https://phab.mercurial-scm.org/D6169?vs=14616&id=14635#toc
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6169?vs=14616&id=14635
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
@@ -1111,3 +1111,49 @@
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]
+
+ $ cd ..
diff --git a/hgext/shelve.py b/hgext/shelve.py
--- a/hgext/shelve.py
+++ b/hgext/shelve.py
@@ -978,6 +978,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