D775: commands: update the resolve command to handle path conflicts

mbthomas (Mark Thomas) phabricator at mercurial-scm.org
Mon Oct 2 17:16:42 EDT 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