##// END OF EJS Templates
bookmarks: cache reverse mapping (issue5868)...
bookmarks: cache reverse mapping (issue5868) I chose a simpler implementation. If the initial cost of building reverse mapping is significant, we'll have to move it under @propertycache. The nodemap could be a dict of sets, but I think keeping a sorted list is better since each node is likely to have zero/one bookmark. Micro-benchmark with 1001 bookmarks and 1001 revisions: $ for n in `seq 0 1000`; do touch $n; hg book book$n; hg ci -qAm$n; done $ hg bookmarks --time > /dev/null (orig) time: real 0.040 secs (user 0.050+0.000 sys 0.000+0.000) (new) time: real 0.040 secs (user 0.040+0.000 sys 0.010+0.000) $ hg log -T '{bookmarks}\n' --time > /dev/null (orig) time: real 0.160 secs (user 0.160+0.000 sys 0.000+0.000) (new) time: real 0.090 secs (user 0.100+0.000 sys 0.000+0.000)

File last commit:

r34662:eb586ed5 default
r37869:04ceb267 @26 default
Show More
test-merge10.t
54 lines | 1.4 KiB | text/troff | Tads3Lexer
Pradeepkumar Gayam
tests: unify test-merge10
r11983 Test for changeset 9fe267f77f56ff127cf7e65dc15dd9de71ce8ceb
(merge correctly when all the files in a directory are moved
but then local changes are added in the same directory)
$ hg init a
$ cd a
$ mkdir -p testdir
$ echo a > testdir/a
$ hg add testdir/a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m a
Pradeepkumar Gayam
tests: unify test-merge10
r11983 $ cd ..
$ hg clone a b
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd a
$ echo alpha > testdir/a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m remote-change
Pradeepkumar Gayam
tests: unify test-merge10
r11983 $ cd ..
$ cd b
$ mkdir testdir/subdir
$ hg mv testdir/a testdir/subdir/a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m move
Pradeepkumar Gayam
tests: unify test-merge10
r11983 $ mkdir newdir
$ echo beta > newdir/beta
$ hg add newdir/beta
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m local-addition
Pradeepkumar Gayam
tests: unify test-merge10
r11983 $ hg pull ../a
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets cc7000b01af9
Pradeepkumar Gayam
tests: unify test-merge10
r11983 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hg up -C 2
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge
merging testdir/subdir/a and testdir/a to testdir/subdir/a
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg stat
M testdir/subdir/a
$ hg diff --nodates
Martin Geisler
tests: remove unneeded -d flags...
r12156 diff -r bc21c9773bfa testdir/subdir/a
Pradeepkumar Gayam
tests: unify test-merge10
r11983 --- a/testdir/subdir/a
+++ b/testdir/subdir/a
@@ -1,1 +1,1 @@
-a
+alpha
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..