##// END OF EJS Templates
revset: optimize "draft() & ::x" pattern...
revset: optimize "draft() & ::x" pattern The `draft() & ::x` type query could be common for selecting one or more draft feature branches being worked on. Before this patch, `::x` may travel through the changelog DAG for a long distance until it gets a smaller revision number than `min(draft())`. It could be very slow on long changelog with distant (in terms of revision numbers) drafts. This patch adds a fast path for this situation, and will stop traveling the changelog DAG once `::x` hits a non-draft revision. The fast path also works for `secret()` and `not public()`. To measure the performance difference, I used drawdag to create a repo that emulates distant drafts: DRAFT4 | DRAFT3 # draft / PUBLIC9999 # public | PUBLIC9998 | . DRAFT2 . | . DRAFT1 # draft | / PUBLIC0001 # public And measured the performance using the repo: (BEFORE) $ hg perfrevset 'draft() & ::(DRAFT2+DRAFT4)' ! wall 0.017132 comb 0.010000 user 0.010000 sys 0.000000 (best of 156) $ hg perfrevset 'draft() & ::(all())' ! wall 0.024221 comb 0.030000 user 0.030000 sys 0.000000 (best of 113) (AFTER) $ hg perfrevset 'draft() & ::(DRAFT2+DRAFT4)' ! wall 0.000243 comb 0.000000 user 0.000000 sys 0.000000 (best of 9303) $ hg perfrevset 'draft() & ::(all())' ! wall 0.004319 comb 0.000000 user 0.000000 sys 0.000000 (best of 655) Differential Revision: https://phab.mercurial-scm.org/D441

File last commit:

r32652:9929af2b merge default
r34067:c6c8a52e default
Show More
control
54 lines | 1.6 KiB | text/plain | DebianControlLexer
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 Source: mercurial
Augie Fackler
builddeb: new script for building a deb package...
r24971 Section: vcs
Priority: optional
av6
debian: update mailing list address
r30873 Maintainer: Mercurial Developers <mercurial-devel@mercurial-scm.org>
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 Build-Depends:
Sean Farley
debian: fix lintian warning about debhelper...
r29047 debhelper (>= 9),
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 dh-python,
Rodrigo Damazio Bovendorp
debian: add less as a build dependency...
r32480 less,
Sean Farley
debian: add missing netbase dependency...
r28985 netbase,
Sean Farley
debian: add missing python-all-dev dependency
r28982 python-all,
Sean Farley
debian: add missing python-docutils dependency
r28983 python-all-dev,
Sean Farley
debian: add missing zip/unzip dependencies
r28984 python-docutils,
Sean Farley
debian: alphabetize build deps
r29048 unzip,
zip
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 Standards-Version: 3.9.4
Gregory Szorc
setup: drop support for Python 2.6 (BC)...
r32228 X-Python-Version: >= 2.7
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148
Package: mercurial
Depends:
python,
${shlibs:Depends},
${misc:Depends},
${python:Depends},
mercurial-common (= ${source:Version})
Architecture: any
Description: fast, easy to use, distributed revision control tool.
Mercurial is a fast, lightweight Source Control Management system designed
for efficient handling of very large distributed projects.
.
Its features include:
* O(1) delta-compressed file storage and retrieval scheme
* Complete cross-indexing of files and changesets for efficient exploration
of project history
* Robust SHA1-based integrity checking and append-only storage model
* Decentralized development model with arbitrary merging between trees
* Easy-to-use command-line interface
* Integrated stand-alone web interface
* Small Python codebase
Package: mercurial-common
Augie Fackler
builddeb: new script for building a deb package...
r24971 Architecture: all
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 Depends:
${misc:Depends},
${python:Depends},
Recommends: mercurial (= ${source:Version}), ca-certificates
Sean Farley
debian: add wish to suggests...
r29091 Suggests: wish
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 Breaks: mercurial (<< ${source:Version})
Replaces: mercurial (<< 2.6.3)
Description: easy-to-use, scalable distributed version control system (common files)
Mercurial is a fast, lightweight Source Control Management system designed
for efficient handling of very large distributed projects.
.
This package contains the architecture independent components of Mercurial,
and is generally useless without the mercurial package.