Currently ref lookups require loading the entire packed-refs file into a hashmap in memory. For repos with large numbers of refs this can be painfully slow. This patch replaces the existing lookup code and instead mmap()'s the packed-refs file and performs a binary search to locate the ref entry. Git uses a similiar approach. The old hash table codepath is still used for unsorted packed-refs files. This patch also fixes a minor bug where the "peeled" trait is never parsed correctly from the packed-refs header.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
attr | Loading commit data... | |
attr_index | Loading commit data... | |
bad_tag.git | Loading commit data... | |
binaryunicode | Loading commit data... | |
blametest.git | Loading commit data... | |
certs | Loading commit data... | |
cherrypick | Loading commit data... | |
config | Loading commit data... | |
crlf | Loading commit data... | |
crlf.git | Loading commit data... | |
crlf_data | Loading commit data... | |
deprecated-mode.git | Loading commit data... | |
describe | Loading commit data... | |
diff | Loading commit data... | |
diff_format_email | Loading commit data... | |
duplicate.git | Loading commit data... | |
empty_bare.git | Loading commit data... | |
empty_standard_repo/.gitted | Loading commit data... | |
filemodes | Loading commit data... | |
icase | Loading commit data... | |
indexv4 | Loading commit data... | |
issue_1397 | Loading commit data... | |
issue_592 | Loading commit data... | |
issue_592b | Loading commit data... | |
mailmap | Loading commit data... | |
merge-recursive | Loading commit data... | |
merge-resolve | Loading commit data... | |
merge-whitespace | Loading commit data... | |
mergedrepo | Loading commit data... | |
nasty/.gitted | Loading commit data... | |
nsecs | Loading commit data... | |
partial-testrepo/.gitted | Loading commit data... | |
peeled.git | Loading commit data... | |
push_src | Loading commit data... | |
rebase | Loading commit data... | |
rebase-submodule | Loading commit data... | |
redundant.git | Loading commit data... | |
renames | Loading commit data... | |
revert | Loading commit data... | |
revert-rename.git | Loading commit data... | |
revwalk.git | Loading commit data... | |
sha1 | Loading commit data... | |
shallow.git | Loading commit data... | |
short_tag.git | Loading commit data... | |
splitindex/.gitted | Loading commit data... | |
status | Loading commit data... | |
sub.git | Loading commit data... | |
submod2 | Loading commit data... | |
submod2_target | Loading commit data... | |
submod3 | Loading commit data... | |
submodule_simple | Loading commit data... | |
submodule_with_path | Loading commit data... | |
submodules | Loading commit data... | |
submodules-worktree-child | Loading commit data... | |
submodules-worktree-parent | Loading commit data... | |
submodules.git | Loading commit data... | |
super | Loading commit data... | |
template | Loading commit data... | |
testrepo/.gitted | Loading commit data... | |
testrepo-worktree | Loading commit data... | |
testrepo.git | Loading commit data... | |
testrepo2 | Loading commit data... | |
twowaymerge.git | Loading commit data... | |
typechanges | Loading commit data... | |
unsymlinked.git | Loading commit data... | |
userdiff | Loading commit data... | |
win32-forbidden/.gitted | Loading commit data... | |
.gitattributes | Loading commit data... | |
.gitignore | Loading commit data... | |
bad.index | Loading commit data... | |
big.index | Loading commit data... | |
generate_crlf.sh | Loading commit data... | |
gitgit.index | Loading commit data... | |
push.sh | Loading commit data... | |
self-signed.pem | Loading commit data... |