view tests/test-rename-dir-merge.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 af5f099d932b
children ba5e508b5e92
line wrap: on
line source

adding a/a
adding a/b
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
moving a/a to b/a
moving a/b to b/b
2 files updated, 0 files merged, 2 files removed, 0 files unresolved
created new head
  searching for copies back to rev 1
  unmatched files in local:
   a/c
   a/d
  unmatched files in other:
   b/a
   b/b
  all copies found (* = to merge, ! = divergent):
   b/a -> a/a 
   b/b -> a/b 
  checking for directory renames
  dir a/ -> b/
  file a/c -> b/c
  file a/d -> b/d
resolving manifests
 overwrite None partial False
 ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 55119e611c80
 a/d: remote renamed directory to b/d -> d
 a/c: remote renamed directory to b/c -> d
 a/b: other deleted -> r
 a/a: other deleted -> r
 b/a: remote created -> g
 b/b: remote created -> g
removing a/a
removing a/b
moving a/c to b/c
moving a/d to b/d
getting b/a
getting b/b
4 files updated, 0 files merged, 2 files removed, 0 files unresolved
(branch merge, don't forget to commit)
a/* b/a b/b b/c b/d
M b/a
M b/b
A b/c
  a/c
R a/a
R a/b
R a/c
? b/d
b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  searching for copies back to rev 1
  unmatched files in local:
   b/a
   b/b
   b/d
  unmatched files in other:
   a/c
  all copies found (* = to merge, ! = divergent):
   b/a -> a/a 
   b/b -> a/b 
  checking for directory renames
  dir a/ -> b/
  file a/c -> b/c
resolving manifests
 overwrite None partial False
 ancestor f9b20c0d4c51 local 55119e611c80+ remote ce36d17b18fb
 None: local renamed directory to b/c -> d
getting a/c to b/c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
a/* b/a b/b b/c b/d
A b/c
  a/c
? b/d
created new head
b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88