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'): 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