Mercurial > hg
view tests/test-convert-cvs-builtincvsps.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 | 6019e6517f95 |
children |
line wrap: on
line source
% create cvs repository % create source directory % import source directory N src/a N src/b/c No conflicts created by this import % checkout source directory U src/a U src/b/c % commit a new revision changing b/c checking in src/b/c,v % convert fresh repo initializing destination src-hg repository connecting to cvsrepo scanning source... using builtin cvsps collecting CVS rlog 5 log entries creating changesets 3 changeset entries sorting... converting... 2 Initial revision 1 import 0 ci0 updating tags a c c % convert fresh repo with --filemap initializing destination src-filemap repository connecting to cvsrepo scanning source... using builtin cvsps collecting CVS rlog 5 log entries creating changesets 3 changeset entries sorting... converting... 2 Initial revision 1 import filtering out empty revision rolling back last transaction 0 ci0 updating tags c c 2 update tags files: .hgtags 1 ci0 files: b/c 0 Initial revision files: b/c % commit new file revisions checking in src/a,v checking in src/b/c,v % convert again connecting to cvsrepo scanning source... using builtin cvsps collecting CVS rlog 7 log entries creating changesets 4 changeset entries sorting... converting... 0 ci1 a a c c c % convert again with --filemap connecting to cvsrepo scanning source... using builtin cvsps collecting CVS rlog 7 log entries creating changesets 4 changeset entries sorting... converting... 0 ci1 c c c 3 ci1 files: b/c 2 update tags files: .hgtags 1 ci0 files: b/c 0 Initial revision files: b/c % commit branch U b/c T a T b/c checking in src/b/c,v % convert again connecting to cvsrepo scanning source... using builtin cvsps collecting CVS rlog 8 log entries creating changesets 5 changeset entries sorting... converting... 0 ci2 c d % convert again with --filemap connecting to cvsrepo scanning source... using builtin cvsps collecting CVS rlog 8 log entries creating changesets 5 changeset entries sorting... converting... 0 ci2 c d 4 ci2 files: b/c 3 ci1 files: b/c 2 update tags files: .hgtags 1 ci0 files: b/c 0 Initial revision files: b/c % commit a new revision with funny log message checking in src/a,v % convert again connecting to cvsrepo scanning source... using builtin cvsps collecting CVS rlog 9 log entries creating changesets 6 changeset entries sorting... converting... 0 funny o 6 (branch) funny | ---------------------------- | log message files: a o 5 (branch) ci2 files: b/c o 4 () ci1 files: a b/c | o 3 () update tags files: .hgtags | o 2 () ci0 files: b/c | | o 1 (INITIAL) import files: |/ o 0 () Initial revision files: a b/c % testing debugcvsps collecting CVS rlog 9 log entries creating changesets 8 changeset entries --------------------- PatchSet 1 Date: Author: Branch: HEAD Tag: (none) Branchpoints: INITIAL Log: Initial revision Members: a:INITIAL->1.1 --------------------- PatchSet 2 Date: Author: Branch: HEAD Tag: (none) Branchpoints: INITIAL, branch Log: Initial revision Members: b/c:INITIAL->1.1 --------------------- PatchSet 3 Date: Author: Branch: INITIAL Tag: start Log: import Members: a:1.1->1.1.1.1 b/c:1.1->1.1.1.1 --------------------- PatchSet 4 Date: Author: Branch: HEAD Tag: (none) Log: ci0 Members: b/c:1.1->1.2 --------------------- PatchSet 5 Date: Author: Branch: HEAD Tag: (none) Branchpoints: branch Log: ci1 Members: a:1.1->1.2 --------------------- PatchSet 6 Date: Author: Branch: HEAD Tag: (none) Log: ci1 Members: b/c:1.2->1.3 --------------------- PatchSet 7 Date: Author: Branch: branch Tag: (none) Log: ci2 Members: b/c:1.1->1.1.2.1 --------------------- PatchSet 8 Date: Author: Branch: branch Tag: (none) Log: funny ---------------------------- log message Members: a:1.2->1.2.2.1