view tests/test-verify.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 baaa832fd253
children b33d70849a20
line wrap: on
line source

% prepare repo
adding FOO.txt
adding QUICK.txt
adding bar.txt

% verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
3 files, 1 changesets, 3 total revisions

% introduce some bugs in repo

% verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
 data/FOO.txt.i@0: missing revlog!
 0: empty or missing FOO.txt
 FOO.txt@0: f62022d3d590 in manifests not found
 data/QUICK.txt.i@0: missing revlog!
 0: empty or missing QUICK.txt
 QUICK.txt@0: 88b857db8eba in manifests not found
 data/bar.txt.i@0: missing revlog!
 0: empty or missing bar.txt
 bar.txt@0: 256559129457 in manifests not found
3 files, 1 changesets, 0 total revisions
9 integrity errors encountered!
(first damaged changeset appears to be 0)
% test revlog corruption

% verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
 a@0: broken revlog! (index data/a.i is corrupted)
warning: orphan revlog 'data/a.i'
1 files, 1 changesets, 0 total revisions
1 warnings encountered!
1 integrity errors encountered!
(first damaged changeset appears to be 0)