##// 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:

r24455:16961d43 default
r37869:04ceb267 @26 default
Show More
test-diff-subdir.t
67 lines | 943 B | text/troff | Tads3Lexer
$ hg init
$ mkdir alpha
$ touch alpha/one
$ mkdir beta
$ touch beta/two
$ hg add alpha/one beta/two
$ hg ci -m "start"
$ echo 1 > alpha/one
$ echo 2 > beta/two
everything
$ hg diff --nodates
diff -r 7d5ef1aea329 alpha/one
--- a/alpha/one
+++ b/alpha/one
@@ -0,0 +1,1 @@
+1
diff -r 7d5ef1aea329 beta/two
--- a/beta/two
+++ b/beta/two
@@ -0,0 +1,1 @@
+2
beta only
$ hg diff --nodates beta
diff -r 7d5ef1aea329 beta/two
--- a/beta/two
+++ b/beta/two
@@ -0,0 +1,1 @@
+2
inside beta
$ cd beta
$ hg diff --nodates .
diff -r 7d5ef1aea329 beta/two
--- a/beta/two
+++ b/beta/two
@@ -0,0 +1,1 @@
+2
relative to beta
$ cd ..
$ hg diff --nodates --root beta
diff -r 7d5ef1aea329 two
--- a/two
+++ b/two
@@ -0,0 +1,1 @@
+2
inside beta
$ cd beta
$ hg diff --nodates --root .
diff -r 7d5ef1aea329 two
--- a/two
+++ b/two
@@ -0,0 +1,1 @@
+2
$ cd ..