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