D3826: grep: change default behaviour of grep

sangeet259 (Sangeet Kumar Mishra) phabricator at mercurial-scm.org
Thu Jul 5 15:30:43 EDT 2018


sangeet259 updated this revision to Diff 9462.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D3826?vs=9461&id=9462

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

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
@@ -24,219 +24,108 @@
 simple
 
   $ hg grep '.*'
-  port:4:export
-  port:4:vaportight
-  port:4:import/export
+  port:2147483647:export
+  port:2147483647:vaportight
+  port:2147483647:import/export
   $ hg grep port port
-  port:4:export
-  port:4:vaportight
-  port:4:import/export
+  [1]
 
 simple with color
 
   $ hg --config extensions.color= grep --config color.mode=ansi \
   >     --color=always port port
-  \x1b[0;35mport\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;32m4\x1b[0m\x1b[0;36m:\x1b[0mex\x1b[0;31;1mport\x1b[0m (esc)
-  \x1b[0;35mport\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;32m4\x1b[0m\x1b[0;36m:\x1b[0mva\x1b[0;31;1mport\x1b[0might (esc)
-  \x1b[0;35mport\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;32m4\x1b[0m\x1b[0;36m:\x1b[0mim\x1b[0;31;1mport\x1b[0m/ex\x1b[0;31;1mport\x1b[0m (esc)
+  [1]
 
 simple templated
 
   $ hg grep port \
   > -T '{file}:{rev}:{node|short}:{texts % "{if(matched, text|upper, text)}"}\n'
-  port:4:914fa752cdea:exPORT
-  port:4:914fa752cdea:vaPORTight
-  port:4:914fa752cdea:imPORT/exPORT
+  port:2147483647:ffffffffffff:exPORT
+  port:2147483647:ffffffffffff:vaPORTight
+  port:2147483647:ffffffffffff:imPORT/exPORT
 
   $ hg grep port -T '{file}:{rev}:{texts}\n'
-  port:4:export
-  port:4:vaportight
-  port:4:import/export
+  port:2147483647:export
+  port:2147483647:vaportight
+  port:2147483647:import/export
 
 simple JSON (no "change" field)
 
   $ hg grep -Tjson port
   [
    {
-    "date": [4, 0],
+    "date": [0, 0],
     "file": "port",
     "line_number": 1,
-    "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
-    "rev": 4,
+    "node": "ffffffffffffffffffffffffffffffffffffffff",
+    "rev": 2147483647,
     "texts": [{"matched": false, "text": "ex"}, {"matched": true, "text": "port"}],
-    "user": "spam"
+    "user": "test"
    },
    {
-    "date": [4, 0],
+    "date": [0, 0],
     "file": "port",
     "line_number": 2,
-    "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
-    "rev": 4,
+    "node": "ffffffffffffffffffffffffffffffffffffffff",
+    "rev": 2147483647,
     "texts": [{"matched": false, "text": "va"}, {"matched": true, "text": "port"}, {"matched": false, "text": "ight"}],
-    "user": "spam"
+    "user": "test"
    },
    {
-    "date": [4, 0],
+    "date": [0, 0],
     "file": "port",
     "line_number": 3,
-    "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
-    "rev": 4,
+    "node": "ffffffffffffffffffffffffffffffffffffffff",
+    "rev": 2147483647,
     "texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
-    "user": "spam"
+    "user": "test"
    }
   ]
 
 simple JSON without matching lines
 
   $ hg grep -Tjson -l port
   [
    {
-    "date": [4, 0],
+    "date": [0, 0],
     "file": "port",
     "line_number": 1,
-    "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
-    "rev": 4,
-    "user": "spam"
+    "node": "ffffffffffffffffffffffffffffffffffffffff",
+    "rev": 2147483647,
+    "user": "test"
    }
   ]
 
 all
 
   $ hg grep --traceback --all -nu port port
-  port:4:4:-:spam:import/export
-  port:3:4:+:eggs:import/export
-  port:2:1:-:spam:import
-  port:2:2:-:spam:export
-  port:2:1:+:spam:export
-  port:2:2:+:spam:vaportight
-  port:2:3:+:spam:import/export
-  port:1:2:+:eggs:export
-  port:0:1:+:spam:import
+  [1]
 
 all JSON
 
   $ hg grep --all -Tjson port port
   [
-   {
-    "change": "-",
-    "date": [4, 0],
-    "file": "port",
-    "line_number": 4,
-    "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
-    "rev": 4,
-    "texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
-    "user": "spam"
-   },
-   {
-    "change": "+",
-    "date": [3, 0],
-    "file": "port",
-    "line_number": 4,
-    "node": "95040cfd017d658c536071c6290230a613c4c2a6",
-    "rev": 3,
-    "texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
-    "user": "eggs"
-   },
-   {
-    "change": "-",
-    "date": [2, 0],
-    "file": "port",
-    "line_number": 1,
-    "node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
-    "rev": 2,
-    "texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}],
-    "user": "spam"
-   },
-   {
-    "change": "-",
-    "date": [2, 0],
-    "file": "port",
-    "line_number": 2,
-    "node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
-    "rev": 2,
-    "texts": [{"matched": false, "text": "ex"}, {"matched": true, "text": "port"}],
-    "user": "spam"
-   },
-   {
-    "change": "+",
-    "date": [2, 0],
-    "file": "port",
-    "line_number": 1,
-    "node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
-    "rev": 2,
-    "texts": [{"matched": false, "text": "ex"}, {"matched": true, "text": "port"}],
-    "user": "spam"
-   },
-   {
-    "change": "+",
-    "date": [2, 0],
-    "file": "port",
-    "line_number": 2,
-    "node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
-    "rev": 2,
-    "texts": [{"matched": false, "text": "va"}, {"matched": true, "text": "port"}, {"matched": false, "text": "ight"}],
-    "user": "spam"
-   },
-   {
-    "change": "+",
-    "date": [2, 0],
-    "file": "port",
-    "line_number": 3,
-    "node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
-    "rev": 2,
-    "texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
-    "user": "spam"
-   },
-   {
-    "change": "+",
-    "date": [1, 0],
-    "file": "port",
-    "line_number": 2,
-    "node": "8b20f75c158513ff5ac80bd0e5219bfb6f0eb587",
-    "rev": 1,
-    "texts": [{"matched": false, "text": "ex"}, {"matched": true, "text": "port"}],
-    "user": "eggs"
-   },
-   {
-    "change": "+",
-    "date": [0, 0],
-    "file": "port",
-    "line_number": 1,
-    "node": "f31323c9217050ba245ee8b537c713ec2e8ab226",
-    "rev": 0,
-    "texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}],
-    "user": "spam"
-   }
   ]
+  [1]
 
 other
 
   $ hg grep -l port port
-  port:4
+  [1]
   $ hg grep import port
-  port:4:import/export
+  [1]
 
   $ hg cp port port2
   $ hg commit -m 4 -u spam -d '5 0'
 
 follow
 
   $ hg grep --traceback -f 'import\n\Z' port2
-  port:0:import
-  
+  [1]
   $ echo deport >> port2
   $ hg commit -m 5 -u eggs -d '6 0'
   $ hg grep -f --all -nu port port2
-  port2:6:4:+:eggs:deport
-  port:4:4:-:spam:import/export
-  port:3:4:+:eggs:import/export
-  port:2:1:-:spam:import
-  port:2:2:-:spam:export
-  port:2:1:+:spam:export
-  port:2:2:+:spam:vaportight
-  port:2:3:+:spam:import/export
-  port:1:2:+:eggs:export
-  port:0:1:+:spam:import
+  [1]
 
   $ hg up -q null
   $ hg grep -f port
@@ -275,31 +164,27 @@
   $ echo blue >> color
   $ hg ci -m 3
   $ hg grep orange
-  color:3:orange
+  color:2147483647:orange
   $ hg grep --all orange
-  color:3:+:orange
-  color:2:-:orange
-  color:1:+:orange
+  [1]
 
   $ hg grep --diff orange
-  color:3:+:orange
-  color:2:-:orange
-  color:1:+:orange
+  [1]
 
 test substring match: '^' should only match at the beginning
 
   $ hg grep '^.' --config extensions.color= --color debug
-  [grep.filename|color][grep.sep|:][grep.rev|3][grep.sep|:][grep.match|b]lack
-  [grep.filename|color][grep.sep|:][grep.rev|3][grep.sep|:][grep.match|o]range
-  [grep.filename|color][grep.sep|:][grep.rev|3][grep.sep|:][grep.match|b]lue
+  [grep.filename|color][grep.sep|:][grep.rev|2147483647][grep.sep|:][grep.match|b]lack
+  [grep.filename|color][grep.sep|:][grep.rev|2147483647][grep.sep|:][grep.match|o]range
+  [grep.filename|color][grep.sep|:][grep.rev|2147483647][grep.sep|:][grep.match|b]lue
 
 match in last "line" without newline
 
   $ $PYTHON -c 'fp = open("noeol", "wb"); fp.write(b"no infinite loop"); fp.close();'
   $ hg ci -Amnoeol
   adding noeol
   $ hg grep loop
-  noeol:4:no infinite loop
+  noeol:2147483647:no infinite loop
 
   $ cd ..
 
@@ -316,8 +201,7 @@
   $ hg rename color colour
   $ hg ci -Am rename
   $ hg grep octarine
-  colour:1:octarine
-  color:0:octarine
+  colour:2147483647:octarine
 
 Used to crash here
 
@@ -351,12 +235,10 @@
   $ hg commit -A -m "3 blue"
 
   $ hg grep --all red
-  color:3:-:red
-  color:1:+:red
+  [1]
 
   $ hg grep --diff red
-  color:3:-:red
-  color:1:+:red
+  [1]
 
 Issue3885: test that changing revision order does not alter the
 revisions printed, just their order.
@@ -385,10 +267,10 @@
   $ hg add binfile.bin
   $ hg ci -m 'add binfile.bin'
   $ hg grep "MaCam" --all
-  binfile.bin:0:+: Binary file matches
+  [1]
 
   $ hg grep "MaCam" --diff
-  binfile.bin:0:+: Binary file matches
+  [1]
 
   $ cd ..
 
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2544,6 +2544,10 @@
     if opts.get('print0'):
         sep = eol = '\0'
 
+    if not opts.get('rev'):
+        opts.get('rev').append("wdir()")
+        opts['allfiles'] = True
+
     getfile = util.lrucachefunc(repo.file)
 
     def matchlines(body):



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


More information about the Mercurial-devel mailing list