# HG changeset patch # User Kyle Lippincott # Date 1541185065 25200 # 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 -r 5eaa5eb0db4e -r da2e874fe582 mercurial/commands.py --- a/mercurial/commands.py Fri Nov 02 14:18:29 2018 -0400 +++ b/mercurial/commands.py Fri Nov 02 11:57:45 2018 -0700 @@ -4912,7 +4912,7 @@ 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 -r 5eaa5eb0db4e -r da2e874fe582 tests/test-resolve.t --- a/tests/test-resolve.t Fri Nov 02 14:18:29 2018 -0400 +++ b/tests/test-resolve.t Fri Nov 02 11:57:45 2018 -0700 @@ -445,6 +445,19 @@ $ 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