-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
diff-index: integrate with the sparse index #1777
Conversation
4cd3e6a
to
54ea098
Compare
The sparse index allows focusing the index data structure on the files present in the sparse-checkout, leaving only tree entries for directories not within the sparse-checkout. Each builtin needs a repository setting to indicate that it has been tested with the sparse index before Git will allow the index to be loaded into memory in its sparse form. This is a safety precaution. There are still some builtins that haven't been integrated due to the complexity of the integration and the lack of significant use. However, 'git diff-index' was neglected only because of initial data showing low usage. The diff machinery was already integrated and there is no more work to be done there but add some tests to be sure 'git diff-index' behaves as expected. For this purpose, we can follow the testing pattern used in 51ba65b (diff: enable and test the sparse index, 2021-12-06). One difference here is that we only verify that the sparse index case agrees with the full index case, but do not generate the expected output. The 'git diff' tests use the '--name-status' option to ease the creation of the expected output, but that's not an option for 'diff-index'. Since the underlying diff machinery is the same, a simple comparison is sufficient to give some coverage. Signed-off-by: Derrick Stolee <[email protected]>
54ea098
to
ae5e5d8
Compare
/submit |
Submitted as [email protected] To fetch this version into
To fetch this version to local tag
|
This patch series was integrated into seen via git@d0a0702. |
This branch is now known as |
This patch series was integrated into seen via git@1ea2c8d. |
This patch series was integrated into next via git@d33f670. |
There was a status update in the "New Topics" section about the branch The underlying machinery for "git diff-index" has long been made to expand the sparse index as needed, but the command fully expanded the sparse index upfront, which now has been taught not to do. Will merge to 'master'. source: <[email protected]> |
This patch series was integrated into seen via git@3a8187c. |
This patch series was integrated into seen via git@ee7db35. |
This patch series was integrated into seen via git@0a59cd7. |
There was a status update in the "Cooking" section about the branch The underlying machinery for "git diff-index" has long been made to expand the sparse index as needed, but the command fully expanded the sparse index upfront, which now has been taught not to do. Will merge to 'master'. source: <[email protected]> |
This patch series was integrated into seen via git@a37a4dc. |
This patch series was integrated into seen via git@11fd53a. |
This patch series was integrated into master via git@11fd53a. |
This patch series was integrated into next via git@11fd53a. |
Closed via 11fd53a. |
This integration is motivated by an internal GUI tool using the 'git diff-index' builtin. It is hitting the index expansion during every execution, contributing significant performance issues. This was missed in previous estimates of Git builtin usages because the numbers changed as users started using this tool.
Thanks, - Stolee
cc: [email protected]
cc: [email protected]