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... |