D5218: resolve: when resolve.mark-check=abort, downgrade to warning if pats specified

spectral (Kyle Lippincott) phabricator at mercurial-scm.org
Fri Nov 2 19:03:40 UTC 2018


spectral created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  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 :)

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5218

AFFECTED FILES
  mercurial/commands.py
  tests/test-resolve.t

CHANGE DETAILS

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 @@
   $ 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
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -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'))
 



To: spectral, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list