mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 16:31:02 +03:00
0c065c08fa
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.
51 lines
1.1 KiB
Plaintext
51 lines
1.1 KiB
Plaintext
% pattern error
|
|
grep: invalid match pattern: nothing to repeat
|
|
% simple
|
|
port:4:export
|
|
port:4:vaportight
|
|
port:4:import/export
|
|
% all
|
|
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
|
|
% other
|
|
port:4:import/export
|
|
% follow
|
|
port:0:import
|
|
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
|
|
color:3:orange
|
|
color:3:+:orange
|
|
color:2:-:orange
|
|
color:1:+:orange
|
|
% match in last line without newline
|
|
adding noeol
|
|
% last character omitted in output to avoid infinite loop
|
|
noeol:4:no infinite loo
|
|
% issue 685
|
|
adding color
|
|
colour:1:octarine
|
|
color:0:octarine
|
|
colour:1:octarine
|
|
% issue 337
|
|
adding color
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
created new head
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
color:3:-:red
|
|
color:1:+:red
|