Mercurial > hg
view mercurial/templates/map-cmdline.compact @ 44802:e0414fcd35e0
rust-filepatterns: match exact `rootglob`s with a `HashSet`, not in the regex
This optimization yields some very interesting results in `rootglob`-heavy
repositories.
I build a test repository of the following structure:
```
root
/<uuid>/build/empty_file
... repeat for 4000 entries
```
and a `.hgignore` containing the corresponding 4000 `rootglob` entries pointing
to all `build/` folders.
Rust+c `hg status` goes from 350ms down to 110ms.
Differential Revision: https://phab.mercurial-scm.org/D8491
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 06 May 2020 11:17:27 +0200 |
parents | f4aeb952ab77 |
children |
line wrap: on
line source
[templates] ldate = '{label("log.date", "{date|isodate}")}' ldesc = '{label('ui.note log.description', '{desc|strip}')}' ldescfirst = '{label('ui.note log.description', '{desc|firstline|strip}')}' changeset = '{lrev}{tags}{bookmarks}{parents} {lnode} {ldate} {luser}\n {ldescfirst}\n\n' changeset_quiet = '{lrev}:{lnode}\n' changeset_verbose = '{lrev}{tags}{parents} {lnode} {ldate} {lauthor}\n {ldesc}\n\n' lrev = '{label("log.changeset changeset.{phase}", "{rev}")}' lnode = '{label("log.node", "{node|short}")}' lauthor = '{label("log.user", "{author}")}' luser = '{label("log.user", "{author|user}")}' start_tags = '[' tag = '{label("log.tag", "{tag},")}' last_tag = '{tag}]' start_parents = ':' parent = '{lrev},' last_parent = '{lrev}' start_bookmarks = '[' bookmark = '{label("log.bookmark", "{bookmark},")}' last_bookmark = '{bookmark}]'