mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
40b5838e3e
`head()` has visible overhead if there are too many heads (ex. 10k+). Usually when we only care about draft heads, `heads(draft())` is better since `draft()` are usually pre-calculated and the revset gets calculated as `draft() - parents(draft())`, unrelated to the number of total heads. Note that `head() & draft()` and `heads(draft())` are not strictly equivalent (ex, a head with a secret phase) so it's changing the behavior a bit. The new behavior is probably more desirable - in both smartlog and backup case, people do want to see/backup the draft head, regardless of whether it has secret descendants or not. This makes `smartlogrevset` take 50ms less: Before: 148 | smartlogrevset smartlog.py:438 117 \ revs (3 times) localrepo.py:783 116 | mfunc (3 times) revset.py:2202 116 | getset (3 times) revset.py:92 116 | andset (2 times) revset.py:165 116 | getset (4 times) revset.py:92 62 \ andset (2 times) revset.py:165 62 | getset (4 times) revset.py:92 78 \ func (3 times) revset.py:235 49 \ head (2 times) revset.py:1117 49 \ branchmap (4 times) localrepo.py:953 46 \ <genexpr> (16348 times) revset.py:1126 38 | rev (16344 times) changelog.py:353 <<<< too many heads 67 \ branch (2 times) revset.py:465 42 \ wrapper (2 times) localrepo.py:141 42 | revbranchcache (2 times) localrepo.py:959 40 | __init__ branchmap.py:354 12 | read (2 times) vfs.py:78 25 \ branchmap (2 times) localrepo.py:953 25 \ andset revset.py:165 30 \ func (2 times) revset.py:235 30 | notbackedup backupcommands.py:302 52 | _backupheads (2 times) backupcommands.py:389 28 \ _masterrev smartlog.py:426 After: 99 | smartlogrevset smartlog.py:438 69 \ revs (3 times) localrepo.py:783 68 | mfunc (3 times) revset.py:2202 68 | getset (3 times) revset.py:92 68 | andset (2 times) revset.py:165 68 | getset (4 times) revset.py:92 13 | andset revset.py:165 13 | getset (2 times) revset.py:92 27 \ _masterrev smartlog.py:426 Differential Revision: https://phab.mercurial-scm.org/D1448 |
||
---|---|---|
.. | ||
__init__.py | ||
backupcommands.py | ||
bundleparts.py | ||
common.py | ||
fileindexapi.py | ||
indexapi.py | ||
infinitepushcommands.py | ||
README | ||
schema.sql | ||
sqlindexapi.py | ||
store.py |
## What is it? This extension adds ability to save certain pushes to a remote blob store as bundles and to serve commits from remote blob store. The revisions are stored on disk or in everstore. The metadata are stored in sql or on disk. ## Config options infinitepush.branchpattern: pattern to detect a scratchbranch, example 're:scratch/.+' infinitepush.indextype: disk or sql for the metadata infinitepush.reponame: only relevant for sql metadata backend, reponame to put in sql infinitepush.indexpath: only relevant for ondisk metadata backend, the path to store the index on disk. If not set will be under .hg in a folder named filebundlestore infinitepush.storepath: only relevant for ondisk metadata backend, the path to store the bundles. If not set, it will be .hg/filebundlestore