Mercurial > hg
view tests/test-backout.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 | 708938509732 |
children | f0bfe42c7b1f |
line wrap: on
line source
# should complain abort: please specify a revision to backout abort: please specify just one revision # basic operation adding a reverting a changeset 2:2929462c3dff backs out changeset 1:a820f4f40a57 a # file that was removed is recreated adding a adding a changeset 2:de31bdc76c0d backs out changeset 1:76862dcce372 content # backout of backout is as if nothing happened removing a changeset 3:7f6d0f120113 backs out changeset 2:de31bdc76c0d cat: a: No such file or directory # across branch adding a adding b 0 files updated, 0 files merged, 1 files removed, 0 files unresolved abort: cannot backout change on a different branch adding c created new head abort: cannot backout change on a different branch # backout with merge adding a reverting a created new head changeset 3:26b8ccb9ad91 backs out changeset 1:5a50a024c182 merging with changeset 3:26b8ccb9ad91 merging a 0 files updated, 1 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) line 1 line 2 line 3 # backout should not back out subsequent changesets adding a adding b reverting a created new head changeset 3:3202beb76721 backs out changeset 1:22bca4c721e5 the backout changeset is a new head - do not forget to merge (use "backout --merge" if you want to auto-merge) b 1 files updated, 0 files merged, 1 files removed, 0 files unresolved adding a adding b adding c 0 files updated, 0 files merged, 1 files removed, 0 files unresolved adding d created new head 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) # backout of merge should fail abort: cannot backout a merge changeset without --parent # backout of merge with bad parent should fail abort: cb9a9f314b8b is not a parent of b2f3bb92043e # backout of non-merge with parent should fail abort: cannot use --parent on non-merge changeset # backout with valid parent should be ok removing d changeset 5:10e5328c8435 backs out changeset 4:b2f3bb92043e rolling back last transaction 1 files updated, 0 files merged, 0 files removed, 0 files unresolved removing c changeset 5:033590168430 backs out changeset 4:b2f3bb92043e # named branches adding default marked working directory as branch branch1 adding file1 marked working directory as branch branch2 adding file2 removing file1 created new head changeset 3:d4e8f6db59fb backs out changeset 1:bf1602f437f3 the backout changeset is a new head - do not forget to merge (use "backout --merge" if you want to auto-merge) % on branch2 with branch1 not merged, so file1 should still exist: 45bbcd363bf0 (branch2) C default C file1 C file2 % on branch2 with branch1 merged, so file1 should be gone: 0 files updated, 0 files merged, 1 files removed, 0 files unresolved (branch merge, don't forget to commit) 22149cdde76d (branch2) tip C default C file2 % on branch1, so no file1 and file2: 1 files updated, 0 files merged, 1 files removed, 0 files unresolved bf1602f437f3 (branch1) C default C file1