view tests/test-convert-git.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 a0a541d6fed6
children b3af02b1f19f
line wrap: on
line source

rm 'd/b'
assuming destination git-repo-hg
initializing destination git-repo-hg repository
scanning source...
sorting...
converting...
5 t1
4 t2
3 t3
2 t4.1
1 t4.2
0 Merge branch other
changeset:   5:c78094926be2
tag:         tip
parent:      3:f5f5cb45432b
parent:      4:4e174f80c67c
user:        test <test@example.org>
date:        Mon Jan 01 00:00:15 2007 +0000
files:       a
description:
Merge branch other


% full conversion
@    9 "Discard change to foo" files: foo
|\
| o  8 "change foo" files: foo
| |
o |  7 "change bar" files: bar
|/
o    6 "(octopus merge fixup)" files:
|\
| o    5 "Octopus merge" files: baz
| |\
o | |  4 "add baz" files: baz
| | |
+---o  3 "add bar" files: bar
| |
o |  2 "add quux" files: quux
| |
| o  1 "change foo" files: foo
|/
o  0 "add foo" files: foo

245a3b8bc653999c2b22cdabd517ccb47aecafdf 644   bar
354ae8da6e890359ef49ade27b68bbc361f3ca88 644   baz
9277c9cc8dd4576fc01a17939b4351e5ada93466 644   foo
88dfeab657e8cf2cef3dec67b914f49791ae76b1 644   quux
% foo bar baz: octopus merge
@    8 "Discard change to foo" files: foo
|\
| o  7 "change foo" files: foo
| |
o |  6 "change bar" files: bar
|/
o    5 "(octopus merge fixup)" files:
|\
| o    4 "Octopus merge" files: baz
| |\
o | |  3 "add baz" files: baz
| | |
+---o  2 "add bar" files: bar
| |
| o  1 "change foo" files: foo
|/
o  0 "add foo" files: foo

245a3b8bc653999c2b22cdabd517ccb47aecafdf 644   bar
354ae8da6e890359ef49ade27b68bbc361f3ca88 644   baz
9277c9cc8dd4576fc01a17939b4351e5ada93466 644   foo
% foo baz quux: only some parents of an octopus merge; "discard" a head
@  6 "Discard change to foo" files: foo
|
o  5 "change foo" files: foo
|
o    4 "Octopus merge" files:
|\
| o  3 "add baz" files: baz
| |
| o  2 "add quux" files: quux
| |
o |  1 "change foo" files: foo
|/
o  0 "add foo" files: foo

354ae8da6e890359ef49ade27b68bbc361f3ca88 644   baz
9277c9cc8dd4576fc01a17939b4351e5ada93466 644   foo
88dfeab657e8cf2cef3dec67b914f49791ae76b1 644   quux

% test binary conversion (issue 1359)
% convert binary file
initializing destination git-repo3-hg repository
scanning source...
sorting...
converting...
0 addbinary
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4096

% test author vs committer
% convert author committer
initializing destination git-repo4-hg repository
scanning source...
sorting...
converting...
1 addfoo
0 addfoo2
changeset:   1:d63e967f93da
tag:         tip
user:        nottest <test@example.org>
date:        Mon Jan 01 00:00:21 2007 +0000
files:       foo
description:
addfoo2

committer: test <test@example.org>


changeset:   0:0735477b0224
user:        test <test@example.org>
date:        Mon Jan 01 00:00:20 2007 +0000
files:       foo
description:
addfoo


% --sourceorder should fail
initializing destination git-repo4-sourcesort-hg repository
abort: --sourcesort is not supported by this data source