view tests/test-mq-eol.out @ 8849:80cc4b1a62d0

compare grep result between target and its parent I found that typical case is that grep target is added at (*) revision in the tree shown below. +--- 1(*) --- 3 0 +--- 2 ------ 4 Now, I expect 'hg grep --all' to show only rev:1 which is first appearance of target line. But 'hg grep --all' will tell: target line dis-appeared at 3 => 4 target line appeared at 2 => 3 target line dis-appeared at 1 => 2 target line appeared at 0 => 1 because current 'hg grep' implementation compares not between target revision and its parent, but between neighbor revisions in walkthrough order. I checked performance of this patch by "hg grep --follow --all walkchangerevs" on whole Mercurial repo, and patched version could complete as fast as un-patched one.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Tue, 19 May 2009 16:49:54 +0900
parents 8b35b08724eb
children 561ff8d9e4f0
line wrap: on
line source

adding .hgignore
adding a
adding eol.diff to series file
% should fail in strict mode
applying eol.diff
patching file a
Hunk #1 FAILED at 0
1 out of 1 hunks FAILED -- saving rejects to file a.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh eol.diff
patch queue now empty
% invalid eol
applying eol.diff
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh eol.diff
patch queue now empty
% force LF
applying eol.diff
now at: eol.diff
test message<LF>
<LF>
diff --git a/a b/a<LF>
--- a/a<LF>
+++ b/a<LF>
@@ -1,5 +1,5 @@<LF>
-a<LF>
-b<LF>
-c<LF>
-d<LF>
-e<LF>
\ No newline at end of file<LF>
+a<CR><LF>
+y<CR><LF>
+c<CR><LF>
+d<CR><LF>
+z<LF>
\ No newline at end of file<LF>
a<CR><LF>
y<CR><LF>
c<CR><LF>
d<CR><LF>
z
patch queue now empty
% push again forcing LF and compare revisions
applying eol.diff
now at: eol.diff
a<CR><LF>
y<CR><LF>
c<CR><LF>
d<CR><LF>
z
patch queue now empty
% push again without LF and compare revisions
applying eol.diff
now at: eol.diff
a<CR><LF>
y<CR><LF>
c<CR><LF>
d<CR><LF>
z
patch queue now empty