diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2538,7 +2538,8 @@ if opts.get('all_files') is None and not opts.get('rev') and not diff: # experimental config: commands.grep.all-files opts['all_files'] = ui.configbool('commands', 'grep.all-files') - if opts.get('all_files') and not opts.get('rev'): + plaingrep = opts.get('all_files') and not opts.get('rev') + if plaingrep: opts['rev'] = ['wdir()'] reflags = re.M @@ -2648,7 +2649,7 @@ cols = [ ('filename', fn, True), - ('rev', rev, True), + ('rev', rev, not plaingrep), ('linenumber', l.linenum, opts.get('line_number')), ] if diff: diff --git a/tests/test-grep.t b/tests/test-grep.t --- a/tests/test-grep.t +++ b/tests/test-grep.t @@ -416,8 +416,8 @@ $ echo modified >> new $ hg grep --all-files mod - new:2147483647:modified - um:2147483647:unmod + new:modified + um:unmod which can be overridden by -rREV @@ -427,8 +427,8 @@ commands.all-files can be negated by --no-all-files $ hg grep --config commands.grep.all-files=True mod - new:2147483647:modified - um:2147483647:unmod + new:modified + um:unmod $ hg grep --config commands.grep.all-files=True --no-all-files mod um:0:unmod @@ -469,5 +469,25 @@ $ hg add file1 $ hg commit -m "adds file1" $ hg mv file1 file2 + +wdir revision is hidden by default: + $ hg grep "some" - file2:2147483647:some text + file2:some text + +but it should be available in template dict: + + $ hg grep "some" -Tjson + [ + { + "date": [0, 0], + "file": "file2", + "line_number": 1, + "node": "ffffffffffffffffffffffffffffffffffffffff", + "rev": 2147483647, + "texts": [{"matched": true, "text": "some"}, {"matched": false, "text": " text"}], + "user": "test" + } + ] + + $ cd ..