diff options
author | Daniel Colascione <dancol@dancol.org> | 2016-02-08 10:52:54 -0800 |
---|---|---|
committer | Daniel Colascione <dancol@dancol.org> | 2016-02-08 10:52:54 -0800 |
commit | de76a167dc09dc695a5acebabb7ab354a6bf556e (patch) | |
tree | 7a01b94d12d60528904924f64aeaaff47a42be9d /lisp/emacs-lisp | |
parent | 4c629d8a8d640354690ce207dff09c7fda070d2a (diff) | |
download | emacs-de76a167dc09dc695a5acebabb7ab354a6bf556e.tar.gz emacs-de76a167dc09dc695a5acebabb7ab354a6bf556e.tar.bz2 emacs-de76a167dc09dc695a5acebabb7ab354a6bf556e.zip |
Performance improvements for vc-hg
Teach vc-hg how to read some Mercurial internal data structures,
allowing us to avoid the need to run hg status -A, which is very slow
for large repositories. Fall back to running hg if anything looks
funny. vc-hg now puts the _working directory_ revision in the
modeline instead of the file revision, which greatly improves
performance and which allows us to again skip running hg in the case
that we have an active bookmark.
* lisp/vc/vc-hg.el (vc-hg-state): Try calling `vc-hg-statefast'
(vc-hg-symbolic-revision-styles)
(vc-hg-use-file-version-for-mode-line-version)
(vc-hg-parse-hg-data-structures): New user preferences
(vc-hg--active-bookmark-internal, vc-hg--run-log)
(vc-hg--symbolic-revision, vc-hg-mode-line-string)
(vc-hg--read-u8, vc-hg--read-u32-be)
(vc-hg--raw-dirstate-search, vc-hg--cached-dirstate-search)
(vc-hg--parts-to-string, vc-hg--pcre-to-elisp-re)
(vc-hg--glob-to-pcre, vc-hg--hgignore-add-pcre)
(vc-hg--hgignore-add-glob, vc-hg--hgignore-add-path)
(vc-hg--slurp-hgignore-1, vc-hg--slurp-hgignore)
(vc-hg--ignore-patterns-valid-p)
(vc-hg--ignore-patterns-ignored-p, vc-hg--time-to-fixnum)
(vc-hg--file-ignored-p, vc-hg--read-repo-requirements)
(vc-hg--requirements-understood-p, vc-hg--dirstate-scan-cache)
(vc-hg-state-fast): New functions.
(vc-hg--hgignore-patterns, vc-hg--hgignore-filenames)
(vc-hg--cached-ignore-patterns, vc-hg--dirstate-scan-cache)
(vc-hg--dirstate-scan-cache): New internal variables.
* lisp/vc/vc-hooks.el (vc-refresh-state): Invoke vc find-file-hook
before updating modeline.
Diffstat (limited to 'lisp/emacs-lisp')
0 files changed, 0 insertions, 0 deletions