# HG changeset patch # User Kyle Lippincott # Date 2018-11-02 18:57:45 # Node ID da2e874fe582e467eebb1203e3282c7a4e7b8405 # Parent 5eaa5eb0db4e201504b99115230b82dc9517ac17 resolve: when resolve.mark-check=abort, downgrade to warning if pats specified Previously, with --config resolve.mark-check=abort, running `hg resolve -m foo` would abort and emit a message saying to use --all. This command does not work, though: `hg resolve -m foo --all`, and it's really weird for --all to be the "--force" flag. My original goal with the option was to make it so that `hg resolve -m` (no filename arguments) was safer, which is why --all is used; in my mind, `hg resolve -m foo` should always mark it as resolved, and `--all` is how you specify "all the files", so that's why I chose `hg resolve -m --all` as the way out of `hg resolve -m` aborting. This commit makes all of this work the way it was meant to in my head :) Differential Revision: https://phab.mercurial-scm.org/D5218 diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -4912,7 +4912,7 @@ def resolve(ui, repo, *pats, **opts): if hasconflictmarkers: ui.warn(_('warning: the following files still have conflict ' 'markers:\n ') + '\n '.join(hasconflictmarkers) + '\n') - if markcheck == 'abort' and not all: + if markcheck == 'abort' and not all and not pats: raise error.Abort(_('conflict markers detected'), hint=_('use --all to mark anyway')) diff --git a/tests/test-resolve.t b/tests/test-resolve.t --- a/tests/test-resolve.t +++ b/tests/test-resolve.t @@ -445,6 +445,19 @@ Test explicitly setting the otion to 'no $ hg resolve -l R file1 R file2 +Test with marking an explicit file as resolved, this should not abort (since +there's no --force flag, we have no way of combining --all with a filename) + $ hg resolve --unmark + $ hg resolve -l + U file1 + U file2 +(This downgrades to a warning since an explicit file was specified). + $ hg --config commands.resolve.mark-check=abort resolve -m file2 + warning: the following files still have conflict markers: + file2 + $ hg resolve -l + U file1 + R file2 Testing the --re-merge flag $ hg resolve --unmark file1 $ hg resolve -l