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