##// END OF EJS Templates
tests: use pyflakes as a tool, not a python module...
tests: use pyflakes as a tool, not a python module The usage of pyflakes as a Python module was introduced in e397c6d74652, to work around issue between Python 2 and Python 3. This issues are long behind us now and we can get beck to using pyflakes as a tool, giving us more flexibility about how we install it. The `hghave` requirements is modified to check that we have a tool available, instead of a python module.

File last commit:

r52257:c6560ee5 stable
r52956:43602c67 default
Show More
test-grep.t
1481 lines | 38.0 KiB | text/troff | Tads3Lexer
Martin Geisler
tests: remove redundant mkdir...
r13956 $ hg init t
Nicolas Dumazet
tests: unify test-grep
r11902 $ cd t
$ echo import > port
$ hg add port
$ hg commit -m 0 -u spam -d '0 0'
$ echo export >> port
$ hg commit -m 1 -u eggs -d '1 0'
$ echo export > port
$ echo vaportight >> port
$ echo 'import/export' >> port
$ hg commit -m 2 -u spam -d '2 0'
$ echo 'import/export' >> port
$ hg commit -m 3 -u eggs -d '3 0'
$ head -n 3 port > port1
$ mv port1 port
$ hg commit -m 4 -u spam -d '4 0'
pattern error
$ hg grep '**test**'
Augie Fackler
tests: allow more detailed error message from re.compile...
r39079 grep: invalid match pattern: nothing to repeat* (glob)
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-grep
r11902
Yuya Nishihara
revset: add diff(pattern) predicate for "grep --diff"...
r46317 invalid revset syntax
Yuya Nishihara
revset: rename diff(pattern) to diffcontains(pattern)...
r46342 $ hg log -r 'diffcontains()'
hg: parse error: diffcontains takes at least 1 argument
Martin von Zweigbergk
errors: use exit code 10 for parse errors...
r46507 [10]
Yuya Nishihara
revset: rename diff(pattern) to diffcontains(pattern)...
r46342 $ hg log -r 'diffcontains(:)'
hg: parse error: diffcontains requires a string pattern
Martin von Zweigbergk
errors: use exit code 10 for parse errors...
r46507 [10]
Yuya Nishihara
revset: rename diff(pattern) to diffcontains(pattern)...
r46342 $ hg log -r 'diffcontains("re:**test**")'
Yuya Nishihara
revset: add diff(pattern) predicate for "grep --diff"...
r46317 hg: parse error: invalid regular expression: nothing to repeat* (glob)
Martin von Zweigbergk
errors: use exit code 10 for parse errors...
r46507 [10]
Yuya Nishihara
revset: add diff(pattern) predicate for "grep --diff"...
r46317
Nicolas Dumazet
tests: unify test-grep
r11902 simple
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 '.*'
Idan Kamara
grep: don't search past the end of the searched string...
r17923 port:4:export
port:4:vaportight
port:4:import/export
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 port:3:export
port:3:vaportight
port:3:import/export
port:3:import/export
port:2:export
port:2:vaportight
port:2:import/export
port:1:import
port:1:export
port:0:import
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 port port
Nicolas Dumazet
tests: unify test-grep
r11902 port:4:export
port:4:vaportight
port:4:import/export
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 port:3:export
port:3:vaportight
port:3:import/export
port:3:import/export
port:2:export
port:2:vaportight
port:2:import/export
port:1:import
port:1:export
port:0:import
Nicolas Dumazet
tests: unify test-grep
r11902
Martin von Zweigbergk
grep: respect ui.relative-paths...
r41654 simple from subdirectory
$ mkdir dir
$ cd dir
$ hg grep -r tip:0 port
port:4:export
port:4:vaportight
port:4:import/export
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 port:3:export
port:3:vaportight
port:3:import/export
port:3:import/export
port:2:export
port:2:vaportight
port:2:import/export
port:1:import
port:1:export
port:0:import
Martin von Zweigbergk
grep: respect ui.relative-paths...
r41654 $ hg grep -r tip:0 port --config ui.relative-paths=yes
../port:4:export
../port:4:vaportight
../port:4:import/export
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 ../port:3:export
../port:3:vaportight
../port:3:import/export
../port:3:import/export
../port:2:export
../port:2:vaportight
../port:2:import/export
../port:1:import
../port:1:export
../port:0:import
Martin von Zweigbergk
grep: respect ui.relative-paths...
r41654 $ cd ..
Nicolas Dumazet
tests: unify test-grep
r11902 simple with color
$ hg --config extensions.color= grep --config color.mode=ansi \
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 > --color=always port port -r tip:0
Jordi GutiƩrrez Hermoso
color: change color of grep.rev label (BC)...
r41889 \x1b[0;35mport\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;34m4\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;34m4\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;34m4\x1b[0m\x1b[0;36m:\x1b[0mim\x1b[0;31;1mport\x1b[0m/ex\x1b[0;31;1mport\x1b[0m (esc)
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 \x1b[0;35mport\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;34m3\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;34m3\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;34m3\x1b[0m\x1b[0;36m:\x1b[0mim\x1b[0;31;1mport\x1b[0m/ex\x1b[0;31;1mport\x1b[0m (esc)
\x1b[0;35mport\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;34m3\x1b[0m\x1b[0;36m:\x1b[0mim\x1b[0;31;1mport\x1b[0m/ex\x1b[0;31;1mport\x1b[0m (esc)
\x1b[0;35mport\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;34m2\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;34m2\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;34m2\x1b[0m\x1b[0;36m:\x1b[0mim\x1b[0;31;1mport\x1b[0m/ex\x1b[0;31;1mport\x1b[0m (esc)
\x1b[0;35mport\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;34m1\x1b[0m\x1b[0;36m:\x1b[0mim\x1b[0;31;1mport\x1b[0m (esc)
\x1b[0;35mport\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;34m1\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;34m0\x1b[0m\x1b[0;36m:\x1b[0mim\x1b[0;31;1mport\x1b[0m (esc)
Nicolas Dumazet
tests: unify test-grep
r11902
Yuya Nishihara
grep: add formatter support...
r29858 simple templated
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep port -r tip:0 \
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 > -T '{path}:{rev}:{node|short}:{texts % "{if(matched, text|upper, text)}"}\n'
Yuya Nishihara
grep: add formatter support...
r29858 port:4:914fa752cdea:exPORT
port:4:914fa752cdea:vaPORTight
port:4:914fa752cdea:imPORT/exPORT
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 port:3:95040cfd017d:exPORT
port:3:95040cfd017d:vaPORTight
port:3:95040cfd017d:imPORT/exPORT
port:3:95040cfd017d:imPORT/exPORT
port:2:3b325e3481a1:exPORT
port:2:3b325e3481a1:vaPORTight
port:2:3b325e3481a1:imPORT/exPORT
port:1:8b20f75c1585:imPORT
port:1:8b20f75c1585:exPORT
port:0:f31323c92170:imPORT
Yuya Nishihara
grep: add formatter support...
r29858
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 $ hg grep port -r tip:0 -T '{path}:{rev}:{texts}\n'
Yuya Nishihara
formatter: make nested items somewhat readable in template output
r37518 port:4:export
port:4:vaportight
port:4:import/export
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 port:3:export
port:3:vaportight
port:3:import/export
port:3:import/export
port:2:export
port:2:vaportight
port:2:import/export
port:1:import
port:1:export
port:0:import
Yuya Nishihara
formatter: make nested items somewhat readable in template output
r37518
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 $ hg grep port -r tip:0 -T '{path}:{tags}:{texts}\n'
Yuya Nishihara
grep: add support for log-like template keywords and functions
r38558 port:tip:export
port:tip:vaportight
port:tip:import/export
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 port::export
port::vaportight
port::import/export
port::import/export
port::export
port::vaportight
port::import/export
port::import
port::export
port::import
Yuya Nishihara
grep: add support for log-like template keywords and functions
r38558
Yuya Nishihara
grep: add formatter support...
r29858 simple JSON (no "change" field)
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 -Tjson port
Yuya Nishihara
grep: add formatter support...
r29858 [
{
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [4, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 1,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 4,
"texts": [{"matched": false, "text": "ex"}, {"matched": true, "text": "port"}],
"user": "spam"
},
{
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [4, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 2,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 4,
"texts": [{"matched": false, "text": "va"}, {"matched": true, "text": "port"}, {"matched": false, "text": "ight"}],
"user": "spam"
},
{
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [4, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 3,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 4,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
"user": "spam"
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 },
{
"date": [3, 0],
"lineno": 1,
"node": "95040cfd017d658c536071c6290230a613c4c2a6",
"path": "port",
"rev": 3,
"texts": [{"matched": false, "text": "ex"}, {"matched": true, "text": "port"}],
"user": "eggs"
},
{
"date": [3, 0],
"lineno": 2,
"node": "95040cfd017d658c536071c6290230a613c4c2a6",
"path": "port",
"rev": 3,
"texts": [{"matched": false, "text": "va"}, {"matched": true, "text": "port"}, {"matched": false, "text": "ight"}],
"user": "eggs"
},
{
"date": [3, 0],
"lineno": 3,
"node": "95040cfd017d658c536071c6290230a613c4c2a6",
"path": "port",
"rev": 3,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
"user": "eggs"
},
{
"date": [3, 0],
"lineno": 4,
"node": "95040cfd017d658c536071c6290230a613c4c2a6",
"path": "port",
"rev": 3,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
"user": "eggs"
},
{
"date": [2, 0],
"lineno": 1,
"node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
"path": "port",
"rev": 2,
"texts": [{"matched": false, "text": "ex"}, {"matched": true, "text": "port"}],
"user": "spam"
},
{
"date": [2, 0],
"lineno": 2,
"node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
"path": "port",
"rev": 2,
"texts": [{"matched": false, "text": "va"}, {"matched": true, "text": "port"}, {"matched": false, "text": "ight"}],
"user": "spam"
},
{
"date": [2, 0],
"lineno": 3,
"node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
"path": "port",
"rev": 2,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
"user": "spam"
},
{
"date": [1, 0],
"lineno": 1,
"node": "8b20f75c158513ff5ac80bd0e5219bfb6f0eb587",
"path": "port",
"rev": 1,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}],
"user": "eggs"
},
{
"date": [1, 0],
"lineno": 2,
"node": "8b20f75c158513ff5ac80bd0e5219bfb6f0eb587",
"path": "port",
"rev": 1,
"texts": [{"matched": false, "text": "ex"}, {"matched": true, "text": "port"}],
"user": "eggs"
},
{
"date": [0, 0],
"lineno": 1,
"node": "f31323c9217050ba245ee8b537c713ec2e8ab226",
"path": "port",
"rev": 0,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}],
"user": "spam"
Yuya Nishihara
grep: add formatter support...
r29858 }
]
simple JSON without matching lines
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 -Tjson -l port
Yuya Nishihara
grep: add formatter support...
r29858 [
{
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [4, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 1,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 4,
"user": "spam"
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 },
{
"date": [3, 0],
"lineno": 1,
"node": "95040cfd017d658c536071c6290230a613c4c2a6",
"path": "port",
"rev": 3,
"user": "eggs"
},
{
"date": [2, 0],
"lineno": 1,
"node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
"path": "port",
"rev": 2,
"user": "spam"
},
{
"date": [1, 0],
"lineno": 1,
"node": "8b20f75c158513ff5ac80bd0e5219bfb6f0eb587",
"path": "port",
"rev": 1,
"user": "eggs"
},
{
"date": [0, 0],
"lineno": 1,
"node": "f31323c9217050ba245ee8b537c713ec2e8ab226",
"path": "port",
"rev": 0,
"user": "spam"
Yuya Nishihara
grep: add formatter support...
r29858 }
]
Yuya Nishihara
grep: fix hash(linestate) to not include linenum...
r45999 diff of each revision for reference
$ hg log -p -T'== rev: {rev} ==\n'
== rev: 4 ==
diff -r 95040cfd017d -r 914fa752cdea port
--- a/port Thu Jan 01 00:00:03 1970 +0000
+++ b/port Thu Jan 01 00:00:04 1970 +0000
@@ -1,4 +1,3 @@
export
vaportight
import/export
-import/export
== rev: 3 ==
diff -r 3b325e3481a1 -r 95040cfd017d port
--- a/port Thu Jan 01 00:00:02 1970 +0000
+++ b/port Thu Jan 01 00:00:03 1970 +0000
@@ -1,3 +1,4 @@
export
vaportight
import/export
+import/export
== rev: 2 ==
diff -r 8b20f75c1585 -r 3b325e3481a1 port
--- a/port Thu Jan 01 00:00:01 1970 +0000
+++ b/port Thu Jan 01 00:00:02 1970 +0000
@@ -1,2 +1,3 @@
-import
export
+vaportight
+import/export
== rev: 1 ==
diff -r f31323c92170 -r 8b20f75c1585 port
--- a/port Thu Jan 01 00:00:00 1970 +0000
+++ b/port Thu Jan 01 00:00:01 1970 +0000
@@ -1,1 +1,2 @@
import
+export
== rev: 0 ==
diff -r 000000000000 -r f31323c92170 port
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/port Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+import
Nicolas Dumazet
tests: unify test-grep
r11902 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:vaportight
port:2:3:+:spam:import/export
port:1:2:+:eggs:export
port:0:1:+:spam:import
Yuya Nishihara
grep: add formatter support...
r29858 all JSON
$ hg grep --all -Tjson port port
[
{
"change": "-",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [4, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 4,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "914fa752cdea87777ac1a8d5c858b0c736218f6c",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 4,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
"user": "spam"
},
{
"change": "+",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [3, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 4,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "95040cfd017d658c536071c6290230a613c4c2a6",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 3,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
"user": "eggs"
},
{
"change": "-",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [2, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 1,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 2,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}],
"user": "spam"
},
{
"change": "+",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [2, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 2,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 2,
"texts": [{"matched": false, "text": "va"}, {"matched": true, "text": "port"}, {"matched": false, "text": "ight"}],
"user": "spam"
},
{
"change": "+",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [2, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 3,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "3b325e3481a1f07435d81dfdbfa434d9a0245b47",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 2,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}, {"matched": false, "text": "/ex"}, {"matched": true, "text": "port"}],
"user": "spam"
},
{
"change": "+",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [1, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 2,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "8b20f75c158513ff5ac80bd0e5219bfb6f0eb587",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 1,
"texts": [{"matched": false, "text": "ex"}, {"matched": true, "text": "port"}],
"user": "eggs"
},
{
"change": "+",
Yuya Nishihara
formatter: convert timestamp to int...
r37788 "date": [0, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 1,
Yuya Nishihara
grep: add formatter support...
r29858 "node": "f31323c9217050ba245ee8b537c713ec2e8ab226",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "port",
Yuya Nishihara
grep: add formatter support...
r29858 "rev": 0,
"texts": [{"matched": false, "text": "im"}, {"matched": true, "text": "port"}],
"user": "spam"
}
]
Nicolas Dumazet
tests: unify test-grep
r11902 other
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 -l port port
Idan Kamara
test-grep: add a test for -l
r17805 port:4
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 port:3
port:2
port:1
port:0
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 import port
Nicolas Dumazet
tests: unify test-grep
r11902 port:4:import/export
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 port:3:import/export
port:3:import/export
port:2:import/export
port:1:import
port:0:import
Nicolas Dumazet
tests: unify test-grep
r11902
$ hg cp port port2
$ hg commit -m 4 -u spam -d '5 0'
follow
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 --traceback -f 'import\n\Z' port2
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 [1]
Nicolas Dumazet
tests: unify test-grep
r11902 $ 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:vaportight
port:2:3:+:spam:import/export
port:1:2:+:eggs:export
port:0:1:+:spam:import
Yuya Nishihara
log: fix --follow null parent not to include revision 0...
r24064 $ hg up -q null
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r 'reverse(:.)' -f port
port:0:import
Yuya Nishihara
log: fix --follow null parent not to include revision 0...
r24064
Yuya Nishihara
workingctx: build _manifest on filenode() or flags() request...
r37465 Test wdir
(at least, this shouldn't crash)
$ hg up -q
$ echo wport >> port2
$ hg stat
M port2
$ hg grep -r 'wdir()' port
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 port:2147483647:export
port:2147483647:vaportight
port:2147483647:import/export
Sangeet Kumar Mishra
grep: enable passing wdir as a revision...
r38217 port2:2147483647:export
port2:2147483647:vaportight
port2:2147483647:import/export
port2:2147483647:deport
port2:2147483647:wport
Yuya Nishihara
workingctx: build _manifest on filenode() or flags() request...
r37465
Jordi GutiƩrrez Hermoso
grep: restore usage of --include/--exclude options...
r52257 Testing include/exclude
$ hg cp port tort
$ hg grep port -X tort
port:export
port:vaportight
port:import/export
port2:export
port2:vaportight
port2:import/export
port2:deport
port2:wport
$ hg grep port -I tort
tort:export
tort:vaportight
tort:import/export
Nicolas Dumazet
tests: unify test-grep
r11902 $ cd ..
$ hg init t2
$ cd t2
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 foobar foo
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 foobar
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-grep
r11902 $ echo blue >> color
$ echo black >> color
$ hg add color
$ hg ci -m 0
$ echo orange >> color
$ hg ci -m 1
$ echo black > color
$ hg ci -m 2
$ echo orange >> color
$ echo blue >> color
$ hg ci -m 3
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 orange
Nicolas Dumazet
tests: unify test-grep
r11902 color:3:orange
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 color:1:orange
Nicolas Dumazet
tests: unify test-grep
r11902 $ hg grep --all orange
color:3:+:orange
color:2:-:orange
color:1:+:orange
Jordi GutiƩrrez Hermoso
grep: give different labels to + and - symbols...
r41886 $ hg grep --diff orange --color=debug
[grep.filename|color][grep.sep|:][grep.rev|3][grep.sep|:][grep.inserted grep.change|+][grep.sep|:][grep.match|orange]
[grep.filename|color][grep.sep|:][grep.rev|2][grep.sep|:][grep.deleted grep.change|-][grep.sep|:][grep.match|orange]
[grep.filename|color][grep.sep|:][grep.rev|1][grep.sep|:][grep.inserted grep.change|+][grep.sep|:][grep.match|orange]
Nicolas Dumazet
tests: unify test-grep
r11902
Jordi GutiƩrrez Hermoso
color: give colours to the grep.inserted and grep.deleted labels...
r41887 $ hg grep --diff orange --color=yes
Jordi GutiƩrrez Hermoso
color: change color of grep.rev label (BC)...
r41889 \x1b[0;35mcolor\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;34m3\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;32;1m+\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;31;1morange\x1b[0m (esc)
\x1b[0;35mcolor\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;34m2\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;31;1m-\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;31;1morange\x1b[0m (esc)
\x1b[0;35mcolor\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;34m1\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;32;1m+\x1b[0m\x1b[0;36m:\x1b[0m\x1b[0;31;1morange\x1b[0m (esc)
Jordi GutiƩrrez Hermoso
color: give colours to the grep.inserted and grep.deleted labels...
r41887
Sangeet Kumar Mishra
grep: add --diff flag...
r38440 $ hg grep --diff orange
color:3:+:orange
color:2:-:orange
color:1:+:orange
Yuya Nishihara
revset: add diff(pattern) predicate for "grep --diff"...
r46317 revset predicate for "grep --diff"
Yuya Nishihara
revset: rename diff(pattern) to diffcontains(pattern)...
r46342 $ hg log -qr 'diffcontains("re:^bl...$")'
Yuya Nishihara
revset: add diff(pattern) predicate for "grep --diff"...
r46317 0:203191eb5e21
Yuya Nishihara
revset: rename diff(pattern) to diffcontains(pattern)...
r46342 $ hg log -qr 'diffcontains("orange")'
Yuya Nishihara
revset: add diff(pattern) predicate for "grep --diff"...
r46317 1:7c585a21e0d1
2:11bd8bc8d653
3:e0116d3829f8
Yuya Nishihara
revset: rename diff(pattern) to diffcontains(pattern)...
r46342 $ hg log -qr '2:0 & diffcontains("orange")'
Yuya Nishihara
revset: add diff(pattern) predicate for "grep --diff"...
r46317 2:11bd8bc8d653
1:7c585a21e0d1
Yuya Nishihara
grep: refactor loop that yields matched text with label...
r29854 test substring match: '^' should only match at the beginning
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 '^.' --config extensions.color= --color debug
Yuya Nishihara
grep: refactor loop that yields matched text with label...
r29854 [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
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 [grep.filename|color][grep.sep|:][grep.rev|2][grep.sep|:][grep.match|b]lack
[grep.filename|color][grep.sep|:][grep.rev|1][grep.sep|:][grep.match|b]lue
[grep.filename|color][grep.sep|:][grep.rev|1][grep.sep|:][grep.match|b]lack
[grep.filename|color][grep.sep|:][grep.rev|1][grep.sep|:][grep.match|o]range
[grep.filename|color][grep.sep|:][grep.rev|0][grep.sep|:][grep.match|b]lue
[grep.filename|color][grep.sep|:][grep.rev|0][grep.sep|:][grep.match|b]lack
Nicolas Dumazet
tests: unify test-grep
r11902
match in last "line" without newline
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" -c 'fp = open("noeol", "wb"); fp.write(b"no infinite loop"); fp.close();'
Nicolas Dumazet
tests: unify test-grep
r11902 $ hg ci -Amnoeol
adding noeol
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 loop
Mads Kiilerich
grep: correct handling of matching lines without line ending (issue3050)...
r15293 noeol:4:no infinite loop
Nicolas Dumazet
tests: unify test-grep
r11902
$ cd ..
Mads Kiilerich
spelling: fixes from spell checker
r21024 Issue685: traceback in grep -r after rename
Martin Geisler
tests: added a short description to issue numbers...
r12399
Nicolas Dumazet
tests: unify test-grep
r11902 Got a traceback when using grep on a single
revision with renamed files.
$ hg init issue685
$ cd issue685
$ echo octarine > color
$ hg ci -Amcolor
adding color
$ hg rename color colour
$ hg ci -Am rename
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep -r tip:0 octarine
Nicolas Dumazet
tests: unify test-grep
r11902 colour:1:octarine
color:0:octarine
Used to crash here
$ hg grep -r 1 octarine
colour:1:octarine
$ cd ..
Issue337: test that grep follows parent-child relationships instead
of just using revision numbers.
$ hg init issue337
$ cd issue337
$ echo white > color
$ hg commit -A -m "0 white"
adding color
$ echo red > color
$ hg commit -A -m "1 red"
$ hg update 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo black > color
$ hg commit -A -m "2 black"
created new head
$ hg update --clean 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo blue > color
$ hg commit -A -m "3 blue"
$ hg grep --all red
color:3:-:red
color:1:+:red
Md. O. Shayan
grep: don't print data from binary files for matches (issue2614)
r13920
Sangeet Kumar Mishra
grep: add --diff flag...
r38440 $ hg grep --diff red
color:3:-:red
color:1:+:red
Sangeet Kumar Mishra
grep: fixes erroneous output of grep in forward order (issue3885)...
r37151 Issue3885: test that changing revision order does not alter the
revisions printed, just their order.
$ hg grep --all red -r "all()"
color:1:+:red
color:3:-:red
$ hg grep --all red -r "reverse(all())"
color:3:-:red
color:1:+:red
Sangeet Kumar Mishra
grep: add --diff flag...
r38440 $ hg grep --diff red -r "all()"
color:1:+:red
color:3:-:red
$ hg grep --diff red -r "reverse(all())"
color:3:-:red
color:1:+:red
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Md. O. Shayan
grep: don't print data from binary files for matches (issue2614)
r13920 $ hg init a
$ cd a
Thomas Arendsen Hein
tests: make tests work if directory contains special characters...
r16350 $ cp "$TESTDIR/binfile.bin" .
Md. O. Shayan
grep: don't print data from binary files for matches (issue2614)
r13920 $ hg add binfile.bin
$ hg ci -m 'add binfile.bin'
$ hg grep "MaCam" --all
binfile.bin:0:+: Binary file matches
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912
Sangeet Kumar Mishra
grep: add --diff flag...
r38440 $ hg grep "MaCam" --diff
binfile.bin:0:+: Binary file matches
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Sangeet Kumar Mishra
grep: enable passing wdir as a revision...
r38217
Yuya Nishihara
test-grep: document that trivially moved lines might not be detected...
r45998 Moved line may not be collected by "grep --diff" since it first filters
the contents to be diffed by the pattern. (i.e.
"diff <(grep pat a) <(grep pat b)", not "diff a b | grep pat".)
This is much faster than generating full diff per revision.
$ hg init moved-line
$ cd moved-line
$ cat <<'EOF' > a
> foo
> bar
> baz
> EOF
$ hg ci -Am initial
adding a
$ cat <<'EOF' > a
> bar
> baz
> foo
> EOF
$ hg ci -m reorder
$ hg diff -c 1
diff -r a593cc55e81b -r 69789a3b6e80 a
--- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +1,3 @@
-foo
bar
baz
+foo
can't find the move of "foo" at the revision 1:
$ hg grep --diff foo -r1
[1]
"bar" isn't moved at the revisoin 1:
$ hg grep --diff bar -r1
[1]
$ cd ..
Sangeet Kumar Mishra
grep: adds allfiles mode...
r38361 Test for showing working of allfiles flag
$ hg init sng
$ cd sng
$ echo "unmod" >> um
Valentin Gatien-Baron
grep: improve test coverage...
r45367 $ echo old > old
$ hg ci -q -A -m "adds unmod to um"
Sangeet Kumar Mishra
grep: adds allfiles mode...
r38361 $ echo "something else" >> new
$ hg ci -A -m "second commit"
adding new
$ hg grep -r "." "unmod"
um:1:unmod
Valentin Gatien-Baron
grep: improve test coverage...
r45367 Existing tracked files in the working directory are searched by default
Yuya Nishihara
grep: search working directory files by default if --all-files is specified...
r38672
$ echo modified >> new
Valentin Gatien-Baron
grep: improve test coverage...
r45367 $ echo 'added' > added; hg add added
$ echo 'added, missing' > added-missing; hg add added-missing; rm added-missing
$ echo 'untracked' > untracked
$ hg rm old
Valentin Gatien-Baron
grep: don't go in an infinite loop when given empty regex...
r45368 $ hg grep ''
Valentin Gatien-Baron
grep: improve test coverage...
r45367 added:added
new:something else
Yuya Nishihara
grep: hide cryptic revision number by default...
r38675 new:modified
um:unmod
Yuya Nishihara
grep: search working directory files by default if --all-files is specified...
r38672
Valentin Gatien-Baron
grep: add test coverage of behavior on symlinks...
r45390 #if symlink
Grepping a symlink greps its destination
$ rm -f added; ln -s symlink-added added
$ hg grep '' | grep added
added:symlink-added
Valentin Gatien-Baron
grep: test that paths get audited...
r45391
But we reject symlinks as directories components of a tracked file as
usual:
$ mkdir dir; touch dir/f; hg add dir/f
$ rm -rf dir; ln -s / dir
$ hg grep ''
abort: path 'dir/f' traverses symbolic link 'dir'
[255]
Valentin Gatien-Baron
grep: add test coverage of behavior on symlinks...
r45390 #endif
But we can search files from some other revision with -rREV
Yuya Nishihara
grep: search working directory files by default if --all-files is specified...
r38672
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 $ hg grep -r. mod
Yuya Nishihara
grep: search working directory files by default if --all-files is specified...
r38672 um:1:unmod
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 $ hg grep --diff mod
Yuya Nishihara
grep: add config knob to enable/disable the default wdir search...
r38673 um:0:+:unmod
Sangeet Kumar Mishra
grep: adds allfiles mode...
r38361 $ cd ..
Yuya Nishihara
grep: restore pre-9ef10437bb88 behavior, enable wdir search by tweakdefaults...
r38674 Change Default of grep by ui.tweakdefaults, that is, the files not in current
working directory should not be grepp-ed on
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg init ab
$ cd ab
Yuya Nishihara
grep: restore pre-9ef10437bb88 behavior, enable wdir search by tweakdefaults...
r38674 $ cat <<'EOF' >> .hg/hgrc
> [ui]
> tweakdefaults = True
> EOF
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ echo "some text">>file1
$ hg add file1
$ hg commit -m "adds file1"
$ hg mv file1 file2
Yuya Nishihara
grep: hide cryptic revision number by default...
r38675
wdir revision is hidden by default:
Sangeet Kumar Mishra
grep: change default behaviour to search working directory files (BC)...
r38650 $ hg grep "some"
Yuya Nishihara
grep: hide cryptic revision number by default...
r38675 file2:some text
but it should be available in template dict:
$ hg grep "some" -Tjson
[
{
"date": [0, 0],
Yuya Nishihara
grep: rename {line_number} to {lineno} as well (BC)
r39966 "lineno": 1,
Yuya Nishihara
grep: hide cryptic revision number by default...
r38675 "node": "ffffffffffffffffffffffffffffffffffffffff",
Yuya Nishihara
formatter: rename {abspath}/{file} to {path}, and drop relative {path} (BC)...
r39405 "path": "file2",
Yuya Nishihara
grep: hide cryptic revision number by default...
r38675 "rev": 2147483647,
"texts": [{"matched": true, "text": "some"}, {"matched": false, "text": " text"}],
"user": "test"
}
]
$ cd ..
Sangeet Kumar Mishra
grep: add MULTIREV support to --allfiles flag...
r38981
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 test -rMULTIREV
Sangeet Kumar Mishra
grep: add MULTIREV support to --allfiles flag...
r38981
$ cd sng
$ hg rm um
$ hg commit -m "deletes um"
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 $ hg grep -r "0:2" "unmod"
Sangeet Kumar Mishra
grep: add MULTIREV support to --allfiles flag...
r38981 um:0:unmod
um:1:unmod
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 $ hg grep -r "0:2" "unmod" um
Sangeet Kumar Mishra
grep: search all commits in allfiles mode...
r38996 um:0:unmod
um:1:unmod
Sushil khanchi
grep: enable all-files by default (BC)...
r43598 $ hg grep -r "0:2" "unmod" "glob:**/um" # Check that patterns also work
Jordi GutiƩrrez Hermoso
walkchangerevs: obey allfiles parameter when taking the slow path...
r41832 um:0:unmod
um:1:unmod
Sangeet Kumar Mishra
grep: add MULTIREV support to --allfiles flag...
r38981 $ cd ..
Sangeet Kumar Mishra
grep: search all commits in allfiles mode...
r38996
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 --follow with/without --diff and/or paths
-----------------------------------------
For each test case, we compare the history traversal of "hg log",
"hg grep --diff", and "hg grep" (--all-files).
"hg grep --diff" should traverse the log in the same way as "hg log".
"hg grep" (--all-files) is slightly different in that it includes
unmodified changes.
$ hg init follow
$ cd follow
$ cat <<'EOF' >> .hg/hgrc
Martin von Zweigbergk
config: add a new [command-templates] section for templates defined by hg...
r46350 > [command-templates]
> log = '{rev}: {join(files % "{status} {path}", ", ")}\n'
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 > EOF
$ for f in add0 add0-mod1 add0-rm1 add0-mod2 add0-rm2 add0-mod3 add0-mod4 add0-rm4; do
> echo data0 >> $f
> done
$ hg ci -qAm0
$ hg cp add0 add0-cp1
$ hg cp add0 add0-cp1-mod1
$ hg cp add0 add0-cp1-mod1-rm3
$ hg rm add0-rm1
$ for f in *mod1*; do
> echo data1 >> $f
> done
$ hg ci -qAm1
$ hg update -q 0
$ hg cp add0 add0-cp2
$ hg cp add0 add0-cp2-mod2
$ hg rm add0-rm2
$ for f in *mod2*; do
> echo data2 >> $f
> done
$ hg ci -qAm2
$ hg update -q 1
$ hg cp add0-cp1 add0-cp1-cp3
$ hg cp add0-cp1-mod1 add0-cp1-mod1-cp3-mod3
$ hg rm add0-cp1-mod1-rm3
$ for f in *mod3*; do
> echo data3 >> $f
> done
$ hg ci -qAm3
$ hg cp add0 add0-cp4
$ hg cp add0 add0-cp4-mod4
$ hg rm add0-rm4
$ for f in *mod4*; do
> echo data4 >> $f
> done
$ hg log -Gr':wdir()'
o 2147483647: A add0-cp4, A add0-cp4-mod4, M add0-mod4, R add0-rm4
|
@ 3: A add0-cp1-cp3, A add0-cp1-mod1-cp3-mod3, R add0-cp1-mod1-rm3, M add0-mod3
|
| o 2: A add0-cp2, A add0-cp2-mod2, M add0-mod2, R add0-rm2
| |
o | 1: A add0-cp1, A add0-cp1-mod1, A add0-cp1-mod1-rm3, M add0-mod1, R add0-rm1
|/
o 0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
follow revision history from wdir parent:
$ hg log -f
3: A add0-cp1-cp3, A add0-cp1-mod1-cp3-mod3, R add0-cp1-mod1-rm3, M add0-mod3
1: A add0-cp1, A add0-cp1-mod1, A add0-cp1-mod1-rm3, M add0-mod1, R add0-rm1
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -f data
add0-cp1-mod1-cp3-mod3:3:+:data3
add0-mod3:3:+:data3
add0-cp1-mod1:1:+:data1
add0-cp1-mod1-rm3:1:+:data1
add0-mod1:1:+:data1
add0:0:+:data0
add0-mod1:0:+:data0
add0-mod2:0:+:data0
add0-mod3:0:+:data0
add0-mod4:0:+:data0
add0-rm1:0:+:data0
add0-rm2:0:+:data0
add0-rm4:0:+:data0
$ hg grep -f data
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 add0:3:data0
add0-cp1:3:data0
add0-cp1-cp3:3:data0
add0-cp1-mod1:3:data0
add0-cp1-mod1:3:data1
add0-cp1-mod1-cp3-mod3:3:data0
add0-cp1-mod1-cp3-mod3:3:data1
add0-cp1-mod1-cp3-mod3:3:data3
add0-mod1:3:data0
add0-mod1:3:data1
add0-mod2:3:data0
add0-mod3:3:data0
add0-mod3:3:data3
add0-mod4:3:data0
add0-rm2:3:data0
add0-rm4:3:data0
add0:1:data0
add0-cp1:1:data0
add0-cp1-mod1:1:data0
add0-cp1-mod1:1:data1
add0-cp1-mod1-rm3:1:data0
add0-cp1-mod1-rm3:1:data1
add0-mod1:1:data0
add0-mod1:1:data1
add0-mod2:1:data0
add0-mod3:1:data0
add0-mod4:1:data0
add0-rm2:1:data0
add0-rm4:1:data0
add0:0:data0
add0-mod1:0:data0
add0-mod2:0:data0
add0-mod3:0:data0
add0-mod4:0:data0
add0-rm1:0:data0
add0-rm2:0:data0
add0-rm4:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow revision history from specified revision:
$ hg log -fr2
2: A add0-cp2, A add0-cp2-mod2, M add0-mod2, R add0-rm2
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr2 data
add0-cp2-mod2:2:+:data2
add0-mod2:2:+:data2
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0:0:+:data0
add0-mod1:0:+:data0
add0-mod2:0:+:data0
add0-mod3:0:+:data0
add0-mod4:0:+:data0
add0-rm1:0:+:data0
add0-rm2:0:+:data0
add0-rm4:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep -fr2 data
add0:2:data0
add0-cp2:2:data0
add0-cp2-mod2:2:data0
add0-cp2-mod2:2:data2
add0-mod1:2:data0
add0-mod2:2:data0
add0-mod2:2:data2
add0-mod3:2:data0
add0-mod4:2:data0
add0-rm1:2:data0
add0-rm4:2:data0
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0:0:data0
add0-mod1:0:data0
add0-mod2:0:data0
add0-mod3:0:data0
add0-mod4:0:data0
add0-rm1:0:data0
add0-rm2:0:data0
add0-rm4:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow revision history from wdir:
$ hg log -fr'wdir()'
2147483647: A add0-cp4, A add0-cp4-mod4, M add0-mod4, R add0-rm4
3: A add0-cp1-cp3, A add0-cp1-mod1-cp3-mod3, R add0-cp1-mod1-rm3, M add0-mod3
1: A add0-cp1, A add0-cp1-mod1, A add0-cp1-mod1-rm3, M add0-mod1, R add0-rm1
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
BROKEN: should not abort because of removed file
$ hg grep --diff -fr'wdir()' data
add0-cp4-mod4:2147483647:+:data4
add0-mod4:2147483647:+:data4
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 add0-rm4:2147483647:-:abort: add0-rm4@None: not found in manifest
Martin von Zweigbergk
errors: use detailed exit code 50 for StorageError...
r46732 [50]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep -fr'wdir()' data
add0:2147483647:data0
add0-cp1:2147483647:data0
add0-cp1-cp3:2147483647:data0
add0-cp1-mod1:2147483647:data0
add0-cp1-mod1:2147483647:data1
add0-cp1-mod1-cp3-mod3:2147483647:data0
add0-cp1-mod1-cp3-mod3:2147483647:data1
add0-cp1-mod1-cp3-mod3:2147483647:data3
add0-cp4:2147483647:data0
add0-cp4-mod4:2147483647:data0
add0-cp4-mod4:2147483647:data4
add0-mod1:2147483647:data0
add0-mod1:2147483647:data1
add0-mod2:2147483647:data0
add0-mod3:2147483647:data0
add0-mod3:2147483647:data3
add0-mod4:2147483647:data0
add0-mod4:2147483647:data4
add0-rm2:2147483647:data0
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0:3:data0
add0-cp1:3:data0
add0-cp1-cp3:3:data0
add0-cp1-mod1:3:data0
add0-cp1-mod1:3:data1
add0-cp1-mod1-cp3-mod3:3:data0
add0-cp1-mod1-cp3-mod3:3:data1
add0-cp1-mod1-cp3-mod3:3:data3
add0-mod1:3:data0
add0-mod1:3:data1
add0-mod2:3:data0
add0-mod3:3:data0
add0-mod3:3:data3
add0-mod4:3:data0
add0-rm2:3:data0
add0-rm4:3:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 add0:1:data0
add0-cp1:1:data0
add0-cp1-mod1:1:data0
add0-cp1-mod1:1:data1
add0-cp1-mod1-rm3:1:data0
add0-cp1-mod1-rm3:1:data1
add0-mod1:1:data0
add0-mod1:1:data1
add0-mod2:1:data0
add0-mod3:1:data0
add0-mod4:1:data0
add0-rm2:1:data0
add0-rm4:1:data0
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0:0:data0
add0-mod1:0:data0
add0-mod2:0:data0
add0-mod3:0:data0
add0-mod4:0:data0
add0-rm1:0:data0
add0-rm2:0:data0
add0-rm4:0:data0
follow revision history from multiple revisions:
$ hg log -fr'1+2'
2: A add0-cp2, A add0-cp2-mod2, M add0-mod2, R add0-rm2
1: A add0-cp1, A add0-cp1-mod1, A add0-cp1-mod1-rm3, M add0-mod1, R add0-rm1
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr'1+2' data
add0-cp2-mod2:2:+:data2
add0-mod2:2:+:data2
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0-cp1-mod1:1:+:data1
add0-cp1-mod1-rm3:1:+:data1
add0-mod1:1:+:data1
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0:0:+:data0
add0-mod1:0:+:data0
add0-mod2:0:+:data0
add0-mod3:0:+:data0
add0-mod4:0:+:data0
add0-rm1:0:+:data0
add0-rm2:0:+:data0
add0-rm4:0:+:data0
$ hg grep -fr'1+2' data
add0:2:data0
add0-cp2:2:data0
add0-cp2-mod2:2:data0
add0-cp2-mod2:2:data2
add0-mod1:2:data0
add0-mod2:2:data0
add0-mod2:2:data2
add0-mod3:2:data0
add0-mod4:2:data0
add0-rm1:2:data0
add0-rm4:2:data0
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0:1:data0
add0-cp1:1:data0
add0-cp1-mod1:1:data0
add0-cp1-mod1:1:data1
add0-cp1-mod1-rm3:1:data0
add0-cp1-mod1-rm3:1:data1
add0-mod1:1:data0
add0-mod1:1:data1
add0-mod2:1:data0
add0-mod3:1:data0
add0-mod4:1:data0
add0-rm2:1:data0
add0-rm4:1:data0
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0:0:data0
add0-mod1:0:data0
add0-mod2:0:data0
add0-mod3:0:data0
add0-mod4:0:data0
add0-rm1:0:data0
add0-rm2:0:data0
add0-rm4:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent, unmodified in wdir:
$ hg log -f add0-mod3
3: A add0-cp1-cp3, A add0-cp1-mod1-cp3-mod3, R add0-cp1-mod1-rm3, M add0-mod3
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -f data add0-mod3
add0-mod3:3:+:data3
add0-mod3:0:+:data0
$ hg grep -f data add0-mod3
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 add0-mod3:3:data0
add0-mod3:3:data3
add0-mod3:1:data0
add0-mod3:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent, modified in wdir:
$ hg log -f add0-mod4
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -f data add0-mod4
add0-mod4:0:+:data0
$ hg grep -f data add0-mod4
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 add0-mod4:3:data0
add0-mod4:1:data0
add0-mod4:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent, copied but unmodified:
$ hg log -f add0-cp1-cp3
3: A add0-cp1-cp3, A add0-cp1-mod1-cp3-mod3, R add0-cp1-mod1-rm3, M add0-mod3
1: A add0-cp1, A add0-cp1-mod1, A add0-cp1-mod1-rm3, M add0-mod1, R add0-rm1
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -f data add0-cp1-cp3
add0:0:+:data0
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 BROKEN: should follow history across renames
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 $ hg grep -f data add0-cp1-cp3
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 add0-cp1-cp3:3:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent, copied and modified:
$ hg log -f add0-cp1-mod1-cp3-mod3
3: A add0-cp1-cp3, A add0-cp1-mod1-cp3-mod3, R add0-cp1-mod1-rm3, M add0-mod3
1: A add0-cp1, A add0-cp1-mod1, A add0-cp1-mod1-rm3, M add0-mod1, R add0-rm1
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -f data add0-cp1-mod1-cp3-mod3
add0-cp1-mod1-cp3-mod3:3:+:data3
add0-cp1-mod1:1:+:data1
add0:0:+:data0
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 BROKEN: should follow history across renames
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 $ hg grep -f data add0-cp1-mod1-cp3-mod3
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 add0-cp1-mod1-cp3-mod3:3:data0
add0-cp1-mod1-cp3-mod3:3:data1
add0-cp1-mod1-cp3-mod3:3:data3
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent, copied in wdir:
$ hg log -f add0-cp4
abort: cannot follow nonexistent file: "add0-cp4"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep --diff -f data add0-cp4
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 abort: cannot follow nonexistent file: "add0-cp4"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 BROKEN: maybe better to abort
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 $ hg grep -f data add0-cp4
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 [1]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent, removed:
$ hg log -f add0-cp1-mod1-rm3
abort: cannot follow file not in parent revision: "add0-cp1-mod1-rm3"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep --diff -f data add0-cp1-mod1-rm3
abort: cannot follow file not in parent revision: "add0-cp1-mod1-rm3"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 BROKEN: maybe better to abort
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 $ hg grep -f data add0-cp1-mod1-rm3
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 add0-cp1-mod1-rm3:1:data0
add0-cp1-mod1-rm3:1:data1
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent (explicit), removed:
$ hg log -fr. add0-cp1-mod1-rm3
abort: cannot follow file not in any of the specified revisions: "add0-cp1-mod1-rm3"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep --diff -fr. data add0-cp1-mod1-rm3
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 abort: cannot follow file not in any of the specified revisions: "add0-cp1-mod1-rm3"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
BROKEN: should abort
$ hg grep -fr. data add0-cp1-mod1-rm3
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-cp1-mod1-rm3:1:data0
add0-cp1-mod1-rm3:1:data1
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent, removed in wdir:
$ hg log -f add0-rm4
abort: cannot follow file not in parent revision: "add0-rm4"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep --diff -f data add0-rm4
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 abort: cannot follow file not in parent revision: "add0-rm4"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 BROKEN: should abort
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 $ hg grep -f data add0-rm4
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 add0-rm4:3:data0
add0-rm4:1:data0
add0-rm4:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent (explicit), removed in wdir:
$ hg log -fr. add0-rm4
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr. data add0-rm4
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-rm4:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep -fr. data add0-rm4
add0-rm4:3:data0
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-rm4:1:data0
add0-rm4:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir parent, multiple files:
$ hg log -f add0-mod3 add0-cp1-mod1
3: A add0-cp1-cp3, A add0-cp1-mod1-cp3-mod3, R add0-cp1-mod1-rm3, M add0-mod3
1: A add0-cp1, A add0-cp1-mod1, A add0-cp1-mod1-rm3, M add0-mod1, R add0-rm1
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -f data add0-mod3 add0-cp1-mod1
add0-mod3:3:+:data3
add0-cp1-mod1:1:+:data1
add0:0:+:data0
add0-mod3:0:+:data0
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 BROKEN: should follow history across renames
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 $ hg grep -f data add0-mod3 add0-cp1-mod1
Yuya Nishihara
grep: fix --follow with no --diff nor --rev to not fall back to plain grep...
r46050 add0-cp1-mod1:3:data0
add0-cp1-mod1:3:data1
add0-mod3:3:data0
add0-mod3:3:data3
add0-cp1-mod1:1:data0
add0-cp1-mod1:1:data1
add0-mod3:1:data0
add0-mod3:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from specified revision, modified:
$ hg log -fr2 add0-mod2
2: A add0-cp2, A add0-cp2-mod2, M add0-mod2, R add0-rm2
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr2 data add0-mod2
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0-mod2:2:+:data2
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-mod2:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep -fr2 data add0-mod2
add0-mod2:2:data0
add0-mod2:2:data2
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-mod2:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from specified revision, copied but unmodified:
$ hg log -fr2 add0-cp2
2: A add0-cp2, A add0-cp2-mod2, M add0-mod2, R add0-rm2
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr2 data add0-cp2
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
BROKEN: should follow history across renames
$ hg grep -fr2 data add0-cp2
add0-cp2:2:data0
follow file history from specified revision, copied and modified:
$ hg log -fr2 add0-cp2-mod2
2: A add0-cp2, A add0-cp2-mod2, M add0-mod2, R add0-rm2
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr2 data add0-cp2-mod2
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0-cp2-mod2:2:+:data2
add0:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
BROKEN: should follow history across renames
$ hg grep -fr2 data add0-cp2-mod2
add0-cp2-mod2:2:data0
add0-cp2-mod2:2:data2
follow file history from specified revision, removed:
$ hg log -fr2 add0-rm2
abort: cannot follow file not in any of the specified revisions: "add0-rm2"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep --diff -fr2 data add0-rm2
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 abort: cannot follow file not in any of the specified revisions: "add0-rm2"
Martin von Zweigbergk
logcmdutil: raise `StateError` when file to follow doesn't exist...
r49402 [20]
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
BROKEN: should abort
$ hg grep -fr2 data add0-rm2
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-rm2:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from specified revision, multiple files:
$ hg log -fr2 add0-cp2 add0-mod2
2: A add0-cp2, A add0-cp2-mod2, M add0-mod2, R add0-rm2
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr2 data add0-cp2 add0-mod2
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0-mod2:2:+:data2
add0:0:+:data0
add0-mod2:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 BROKEN: should follow history across renames
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 $ hg grep -fr2 data add0-cp2 add0-mod2
add0-cp2:2:data0
add0-mod2:2:data0
add0-mod2:2:data2
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-mod2:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir, unmodified:
$ hg log -fr'wdir()' add0-mod3
2147483647: A add0-cp4, A add0-cp4-mod4, M add0-mod4, R add0-rm4
3: A add0-cp1-cp3, A add0-cp1-mod1-cp3-mod3, R add0-cp1-mod1-rm3, M add0-mod3
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr'wdir()' data add0-mod3
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-mod3:3:+:data3
add0-mod3:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep -fr'wdir()' data add0-mod3
add0-mod3:2147483647:data0
add0-mod3:2147483647:data3
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-mod3:3:data0
add0-mod3:3:data3
add0-mod3:1:data0
add0-mod3:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir, modified:
$ hg log -fr'wdir()' add0-mod4
2147483647: A add0-cp4, A add0-cp4-mod4, M add0-mod4, R add0-rm4
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr'wdir()' data add0-mod4
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0-mod4:2147483647:+:data4
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-mod4:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ hg grep -fr'wdir()' data add0-mod4
add0-mod4:2147483647:data0
add0-mod4:2147483647:data4
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-mod4:3:data0
add0-mod4:1:data0
add0-mod4:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
follow file history from wdir, copied but unmodified:
$ hg log -fr'wdir()' add0-cp4
2147483647: A add0-cp4, A add0-cp4-mod4, M add0-mod4, R add0-rm4
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr'wdir()' data add0-cp4
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
BROKEN: should follow history across renames
$ hg grep -fr'wdir()' data add0-cp4
add0-cp4:2147483647:data0
follow file history from wdir, copied and modified:
$ hg log -fr'wdir()' add0-cp4-mod4
2147483647: A add0-cp4, A add0-cp4-mod4, M add0-mod4, R add0-rm4
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr'wdir()' data add0-cp4-mod4
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0-cp4-mod4:2147483647:+:data4
add0:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
BROKEN: should follow history across renames
$ hg grep -fr'wdir()' data add0-cp4-mod4
add0-cp4-mod4:2147483647:data0
add0-cp4-mod4:2147483647:data4
follow file history from wdir, multiple files:
$ hg log -fr'wdir()' add0-cp4 add0-mod4 add0-mod3
2147483647: A add0-cp4, A add0-cp4-mod4, M add0-mod4, R add0-rm4
3: A add0-cp1-cp3, A add0-cp1-mod1-cp3-mod3, R add0-cp1-mod1-rm3, M add0-mod3
0: A add0, A add0-mod1, A add0-mod2, A add0-mod3, A add0-mod4, A add0-rm1, A add0-rm2, A add0-rm4
$ hg grep --diff -fr'wdir()' data add0-cp4 add0-mod4 add0-mod3
Yuya Nishihara
cmdutil: rewrite walkchangerevs() by using logcmdutil functions...
r46227 add0-mod4:2147483647:+:data4
add0-mod3:3:+:data3
add0:0:+:data0
add0-mod3:0:+:data0
add0-mod4:0:+:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 BROKEN: should follow history across renames
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049 $ hg grep -fr'wdir()' data add0-cp4 add0-mod4 add0-mod3
add0-cp4:2147483647:data0
add0-mod3:2147483647:data0
add0-mod3:2147483647:data3
add0-mod4:2147483647:data0
add0-mod4:2147483647:data4
Yuya Nishihara
grep: make -frREV follow history from the specified revision (BC)...
r46052 add0-mod3:3:data0
add0-mod3:3:data3
add0-mod4:3:data0
add0-mod3:1:data0
add0-mod4:1:data0
add0-mod3:0:data0
add0-mod4:0:data0
Yuya Nishihara
test-grep: add tests for --follow with/without --diff and/or paths...
r46049
$ cd ..