[PATCH STABLE] amend: abort if unresolved merge conflicts found (issue5805)
Yuya Nishihara
yuya at tcha.org
Sun Mar 11 11:16:19 UTC 2018
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1520766638 -32400
# Sun Mar 11 20:10:38 2018 +0900
# Branch stable
# Node ID eeb87b24aea7f547f6d95b812dd080dc6e9ab194
# Parent 9639c433be54191b4136b48fe70fc8344d2b5db2
amend: abort if unresolved merge conflicts found (issue5805)
It was checked by repo.commit() before e8a7c1a0565a "cmdutil: remove the
redundant commit during amend."
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -34,6 +34,7 @@ from . import (
graphmod,
match as matchmod,
mdiff,
+ mergeutil,
obsolete,
patch,
pathutil,
@@ -3212,6 +3213,11 @@ def amend(ui, repo, old, extra, pats, op
if subs:
subrepo.writestate(repo, newsubstate)
+ # avoid cycle (TODO: should be removed in default branch)
+ from . import merge as mergemod
+ ms = mergemod.mergestate.read(repo)
+ mergeutil.checkunresolved(ms)
+
filestoamend = set(f for f in wctx.files() if matcher(f))
changes = (len(filestoamend) > 0)
diff --git a/tests/test-commit-amend.t b/tests/test-commit-amend.t
--- a/tests/test-commit-amend.t
+++ b/tests/test-commit-amend.t
@@ -415,6 +415,23 @@ Refuse to amend during a merge:
[255]
$ hg ci -m 'merge'
+Refuse to amend if there is a merge conflict (issue5805):
+
+ $ hg up -q foo
+ $ echo c > a
+ $ hg up default -t :fail
+ 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+ use 'hg resolve' to retry unresolved file merges
+ [1]
+ $ hg resolve -l
+ U a
+
+ $ hg ci --amend
+ abort: unresolved merge conflicts (see 'hg help resolve')
+ [255]
+
+ $ hg up -qC .
+
Follow copies/renames:
$ hg mv b c
More information about the Mercurial-devel
mailing list