From patchwork Mon Oct 2 21:16:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D775: commands: update the resolve command to handle path conflicts From: phabricator X-Patchwork-Id: 24421 Message-Id: <7537e1dc8b4140838a7cc2762c44e8d8@localhost.localdomain> To: mercurial-devel@mercurial-scm.org Date: Mon, 2 Oct 2017 21:16:42 +0000 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 To: mbthomas, #hg-reviewers, ryanmce Cc: ryanmce, mercurial-devel 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: