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 |
|---|---|---|
| .. | ||
| branches | Loading commit data... | |
| reflog | Loading commit data... | |
| tags | Loading commit data... | |
| basic.c | Loading commit data... | |
| crashes.c | Loading commit data... | |
| create.c | Loading commit data... | |
| delete.c | Loading commit data... | |
| dup.c | Loading commit data... | |
| foreachglob.c | Loading commit data... | |
| isvalidname.c | Loading commit data... | |
| iterator.c | Loading commit data... | |
| list.c | Loading commit data... | |
| listall.c | Loading commit data... | |
| lookup.c | Loading commit data... | |
| namespaces.c | Loading commit data... | |
| normalize.c | Loading commit data... | |
| overwrite.c | Loading commit data... | |
| pack.c | Loading commit data... | |
| peel.c | Loading commit data... | |
| races.c | Loading commit data... | |
| read.c | Loading commit data... | |
| ref_helpers.c | Loading commit data... | |
| ref_helpers.h | Loading commit data... | |
| rename.c | Loading commit data... | |
| revparse.c | Loading commit data... | |
| setter.c | Loading commit data... | |
| shorthand.c | Loading commit data... | |
| transactions.c | Loading commit data... | |
| unicode.c | Loading commit data... | |
| update.c | Loading commit data... |