Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-remove.out @ 2577:fa76c5d609c9
bdiff: improve worst case behavior by 100x.
on 5.8MB (244.000 lines) text file with similar lines, hash before
this change made diff against empty file take 75 seconds. this change
improves performance to 0.6 seconds. result is that clone of smallish
repo (137MB) with some files like this takes 1 minute instead of 10
minutes.
common case of diff is 10% slower now, probably because of worse cache
locality. but diff does not affect overall performance in common case
(less than 1% of runtime is in diff when it is working ok), so this
tradeoff looks good.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Fri, 07 Jul 2006 15:02:55 -0700 |
parents | b2f37c7026ca |
children | 096f1c73cdc3 |
line wrap: on
line source
not removing foo: file is not managed abort: no files specified undeleting foo removing foo # HG changeset patch # User test # Date 1000000 0 # Node ID 8ba83d44753d6259db5ce6524974dd1174e90f47 # Parent 0000000000000000000000000000000000000000 1 diff -r 000000000000 -r 8ba83d44753d foo --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/foo Mon Jan 12 13:46:40 1970 +0000 @@ -0,0 +1,1 @@ +a # HG changeset patch # User test # Date 1000000 0 # Node ID a1fce69c50d97881c5c014ab23f580f720c78678 # Parent 8ba83d44753d6259db5ce6524974dd1174e90f47 2 diff -r 8ba83d44753d -r a1fce69c50d9 foo --- a/foo Mon Jan 12 13:46:40 1970 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -a changeset: 0:8ba83d44753d user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: 1 diff -r 000000000000 -r 8ba83d44753d foo --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/foo Mon Jan 12 13:46:40 1970 +0000 @@ -0,0 +1,1 @@ +a changeset: 1:a1fce69c50d9 tag: tip user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: 2 diff -r 8ba83d44753d -r a1fce69c50d9 foo --- a/foo Mon Jan 12 13:46:40 1970 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -a not removing a: file has been marked for add (use -f to force removal) adding a adding b not removing b: file is modified (use -f to force removal) 2 files updated, 0 files merged, 0 files removed, 0 files unresolved