tags -rX..Y is O(history * #tags) instead of O(history) at worst
Bug #857335 reported by
Vincent Ladeuil
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
High
|
Vincent Ladeuil | ||
2.4 |
Fix Released
|
High
|
Vincent Ladeuil |
Bug Description
In bzr.dev:
time bzr tags >/dev/null
real 0m0.869s
user 0m0.830s
sys 0m0.030s
time bzr tags -r1.. >/dev/null
real 0m23.459s
user 0m23.300s
sys 0m0.120s
I have a crude patch fixing that:
time ./bzr tags -r1.. >/dev/null
real 0m0.894s
user 0m0.850s
sys 0m0.040s
Related branches
lp://staging/~vila/bzr/857335-tags-revs-slow
- Jelmer Vernooij (community): Approve
-
Diff: 83 lines (+34/-8)2 files modifiedbzrlib/builtins.py (+31/-8)
doc/en/release-notes/bzr-2.5.txt (+3/-0)
Changed in bzr: | |
status: | Confirmed → In Progress |
Changed in bzr: | |
milestone: | none → 2.5b2 |
status: | In Progress → Fix Released |
To post a comment you must log in.
With emacs trunk @ revno 105885 (117328 revisions with merged revisions),
1136 tags with two of them on revisions not present in the branch ancestry
(i.e. 'bzr tags' display them with ??? 'bzr tags -r1..' filter them out):
time bzr tags -d ~/src/emacs/trunk >/dev/null
real 0m9.668s
user 0m9.500s
sys 0m0.110s
time bzr tags -d ~/src/emacs/trunk -r1.. >/dev/null
real 19m40.957s
user 19m35.990s
sys 0m2.070s
time ./bzr tags -d ~/src/emacs/trunk -r1.. >/dev/null
real 0m10.056s
user 0m9.970s
sys 0m0.060s
With gcc trunk @ revno 100609 (102370 revisions with merged revisions), 2663
tags, only 27 present in the branch history:
time bzr tags -d /caviar3/ vila-tests/ gcc/trunk >/dev/null
real 0m5.812s
user 0m5.680s
sys 0m0.120s
time bzr tags -r1.. -d /caviar3/ vila-tests/ gcc/trunk >/dev/null
real 74m37.331s
user 74m22.950s
sys 0m7.670s
time ./bzr tags -r1.. -d /caviar3/ vila-tests/ gcc/trunk >/dev/null
real 0m5.758s
user 0m5.660s
sys 0m0.080s