D775: commands: update the resolve command to handle path conflicts
mbthomas (Mark Thomas)
phabricator at mercurial-scm.org
Mon Oct 2 21:16:42 UTC 2017
mbthomas updated this revision to Diff 2352.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D775?vs=2211&id=2352
REVISION DETAIL
https://phab.mercurial-scm.org/D775
AFFECTED FILES
mercurial/commands.py
CHANGE DETAILS
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -4271,10 +4271,19 @@
for f in ms:
if not m(f):
continue
+
+ # Set label based on merge state.
l = 'resolve.' + {'u': 'unresolved', 'r': 'resolved',
+ 'pu': 'unresolved', 'pr': 'resolved',
'd': 'driverresolved'}[ms[f]]
+
+ # Set key based on merge state. Unresolved path conflicts show
+ # as 'P'. Resolved path conflicts show as 'R', the same as normal
+ # resolved conflicts.
+ key = {'pu': 'P', 'pr': 'R'}.get(ms[f], ms[f].upper())
+
fm.startitem()
- fm.condwrite(not nostatus, 'status', '%s ', ms[f].upper(), label=l)
+ fm.condwrite(not nostatus, 'status', '%s ', key, label=l)
fm.write('path', '%s\n', f, label=l)
fm.end()
return 0
@@ -4323,6 +4332,17 @@
runconclude = True
continue
+ # path conflicts must be resolved manually
+ if ms[f] in ("pu", "pr"):
+ if mark:
+ ms.mark(f, "pr")
+ elif unmark:
+ ms.mark(f, "pu")
+ elif ms[f] == "pu":
+ ui.warn(_('%s: path conflict must be resolved manually\n')
+ % f)
+ continue
+
if mark:
ms.mark(f, "r")
elif unmark:
To: mbthomas, #hg-reviewers, ryanmce
Cc: ryanmce, mercurial-devel
More information about the Mercurial-devel
mailing list