D1682: unamend: allow unamending if allowunstable is set
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu Dec 14 01:28:02 UTC 2017
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
I don't see why unamend should be disallowed when allowunstable is
set. By switching to rewriteutil.precheck() we fix that and get more
consistent error messages (and some additional ones).
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D1682
AFFECTED FILES
hgext/uncommit.py
tests/test-unamend.t
CHANGE DETAILS
diff --git a/tests/test-unamend.t b/tests/test-unamend.t
--- a/tests/test-unamend.t
+++ b/tests/test-unamend.t
@@ -280,17 +280,20 @@
o 0:18d04c59bb5d Added a
+ $ hg --config experimental.evolution=createmarkers unamend
+ abort: cannot unamend changeset with children
+ [255]
+
$ hg unamend
- abort: cannot unamend a changeset with children
- [255]
Trying to unamend a public changeset
- $ hg up
- 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg up -C 23
+ 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg phase -r . -p
$ hg unamend
abort: cannot unamend public changesets
+ (see 'hg help phases' for details)
[255]
Testing whether unamend retains copies or not
diff --git a/hgext/uncommit.py b/hgext/uncommit.py
--- a/hgext/uncommit.py
+++ b/hgext/uncommit.py
@@ -208,8 +208,7 @@
# identify the commit from which to unamend
curctx = repo['.']
- if not curctx.mutable():
- raise error.Abort(_('cannot unamend public changesets'))
+ rewriteutil.precheck(repo, [curctx.rev()], 'unamend')
# identify the commit to which to unamend
markers = list(predecessormarkers(curctx))
@@ -220,9 +219,6 @@
prednode = markers[0].prednode()
predctx = unfi[prednode]
- if curctx.children():
- raise error.Abort(_("cannot unamend a changeset with children"))
-
# add an extra so that we get a new hash
# note: allowing unamend to undo an unamend is an intentional feature
extras = predctx.extra()
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list