]> git.eshelyaron.com Git - emacs.git/commit
project--vc-list-files: Use '--sparse' with 'git ls-files'
authorSean Allred <allred.sean@gmail.com>
Sun, 29 Sep 2024 01:00:32 +0000 (04:00 +0300)
committerEshel Yaron <me@eshelyaron.com>
Mon, 30 Sep 2024 19:41:17 +0000 (21:41 +0200)
commitdeb86a578d89e7ed52f1a6823a46d5f1f4184d23
tree319ec1aad0f182f368afcf64cb60100377d3cee1
parent026fc7ed6d11b062035d4aa1e87f9cfd2a11a9c7
project--vc-list-files: Use '--sparse' with 'git ls-files'

When dealing with exceptionally large Git repositories, the
performance of `project-find-file` can suffer dramatically as
the list of files is collected for completion.  This adds insult
to injury when you consider cases where the developer has
configured the repository to use a sparse checkout where the
vast majority of these files are not even present on disk and
are not valid candidates for completion.

* lisp/progmodes/project.el (project--vc-list-files):
Pass 'sparse' to 'git ls-files' when Git is recent enough.
Filter out file names that end with '/' (bug#73320).

(cherry picked from commit 8d9a4647fbc6c57e82045ecd2b3f157ece399e9e)
lisp/progmodes/project.el