D3917: grep: search working directory files by default if --all-files is specified

yuja (Yuya Nishihara) phabricator at mercurial-scm.org
Wed Jul 11 14:16:35 UTC 2018


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

REVISION SUMMARY
  The default was -rtip:0 before, but "--all-files -rtip:0" would be the most
  useless combination, and it isn't supported yet. Let's change the default to
  something useful.
  
  This isn't flagged as BC since --all-files isn't released.

REPOSITORY
  rHG Mercurial

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

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

CHANGE DETAILS

diff --git a/tests/test-grep.t b/tests/test-grep.t
--- a/tests/test-grep.t
+++ b/tests/test-grep.t
@@ -412,6 +412,18 @@
   $ hg grep -r "." "unmod" --all-files
   um:1:unmod
 
+With --all-files, the working directory is searched by default
+
+  $ echo modified >> new
+  $ hg grep --all-files mod
+  new:2147483647:modified
+  um:2147483647:unmod
+
+ which can be overridden by -rREV
+
+  $ hg grep --all-files -r. mod
+  um:1:unmod
+
 --diff --all-files makes no sense since --diff is the option to grep history
 
   $ hg grep --diff --all-files um
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2535,6 +2535,8 @@
     diff = opts.get('all') or opts.get('diff')
     if diff and opts.get('all_files'):
         raise error.Abort(_('--diff and --all-files are mutually exclusive'))
+    if opts.get('all_files') and not opts.get('rev'):
+        opts['rev'] = ['wdir()']
 
     reflags = re.M
     if opts.get('ignore_case'):



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


More information about the Mercurial-devel mailing list