aboutsummaryrefslogtreecommitdiff
path: root/pack_pack.go
Commit message (Collapse)AuthorAgeFilesLines
* pack: Add _read to filenamesGravatar Runxi Yu2026-01-281-578/+0
|
* hash: Use a hashAlgorithmDetails struct for single source of truth v0.1.2Gravatar Runxi Yu2026-01-271-2/+2
| | | | | | hashAlgorithm's are assumed to be valid; methods on invalid hashAlgorithms will panic from out-of-bounds read when it's not found in hashAlgorithmTable and that's expected and intended.
* More changes from the import URL updateGravatar Runxi Yu2026-01-191-2/+2
|
* repo: Drop hashSize and use hashAlgo.size()Gravatar Runxi Yu2026-01-171-2/+2
|
* hash: Key by algorithm, not sizeGravatar Runxi Yu2026-01-171-2/+2
|
* loose/pack: Remove commented-out verifyTypedObjectGravatar Runxi Yu2026-01-151-4/+0
| | | | It's not supposed to be used there anyway
* pack: Do not madviseGravatar Runxi Yu2025-11-241-11/+0
| | | | | Apparently although it's not fully sequential, the general pattern is sort-of increasing in offsets as trees are being traversed.
* bufpool: Return bytes.Buffer, rather than a pointer to itGravatar Runxi Yu2025-11-231-32/+32
| | | | | | It's silly to allocate a bytes.Buffer struct, however small it is, every time Borrow is called, since the entire purpose is to reduce allocations.
* obj: call parseObjectBody in ReadObject instead of loose/pack readersGravatar Runxi Yu2025-11-221-10/+7
|
* pack: Allocate the header on the stack insteadGravatar Runxi Yu2025-11-221-1/+2
|
* bufpool: Return *BufferGravatar Runxi Yu2025-11-221-27/+27
|
* bufpool: Improve perf by using buckets of different size classesGravatar Runxi Yu2025-11-221-1/+1
|
* pack: Don't use bytes.Reader cursor, use mmaped slice directlyGravatar Runxi Yu2025-11-221-74/+66
|
* Revert "Add initial support for multi pack indexes"Gravatar Runxi Yu2025-11-201-13/+0
| | | | | | | This reverts commit 6f8acbf1503d2fa1ef705d35a743fc6b279942e5. Apparently my MIDX support is broken and it breaks some repos... it'll be added back when ready.
* Probably should name the custom packages speciallyGravatar Runxi Yu2025-11-191-3/+2
|
* Remove some redundant codeGravatar Runxi Yu2025-11-191-54/+13
|
* pack: Iterative instead of recursive resolverGravatar Runxi Yu2025-11-191-116/+160
|
* Initial attempt to make a compressor with less overheadGravatar Runxi Yu2025-11-191-25/+30
| | | | io.Reader actually has massive overhead...
* madviseGravatar Runxi Yu2025-11-181-0/+12
|
* Fix import orderGravatar Runxi Yu2025-11-181-1/+2
|
* Use a pooled zlib implementationGravatar Runxi Yu2025-11-181-1/+1
| | | | | It's trivially forked from the standard library and improves git ls-tree -r --long speed by approximately 25%.
* Disable per-object validation during readsGravatar Runxi Yu2025-11-171-4/+4
| | | | | | | In general, git inflates the packed objects and recomputes the object hash before accepting them into hte object database during remote operations. But when simply inflating/parsing the objects for read from the local object store, it does not recompute the hash.
* pack: Use a Go map with a mutex instead of a sync.Map for packfilesGravatar Runxi Yu2025-11-171-0/+24
| | | | | Very few writes, you don't typically see more than a dozen packfiles. A ton of reads. Go maps are the obvious choice.
* Revert "Compute checksum when reading packfiles"Gravatar Runxi Yu2025-11-171-22/+2
| | | | | | | This reverts commit 1dcb92427c23d0a8b23c0154b892243c749afa5a. Yeah this should be part of the network protocol rather than being done on *every read*.
* Compute checksum when reading packfilesGravatar Runxi Yu2025-11-171-2/+22
|
* Fix some docs and API typesGravatar Runxi Yu2025-11-161-2/+2
|
* Documentation overhaulGravatar Runxi Yu2025-11-161-1/+0
|
* Extract bufpool into its own packageGravatar Runxi Yu2025-11-161-45/+47
|
* Rename ObjType enumGravatar Runxi Yu2025-11-161-39/+39
|
* Unexport Repository.HashSizeGravatar Runxi Yu2025-11-161-4/+4
|
* Rename ObjType -> ObjectTypeGravatar Runxi Yu2025-11-161-9/+9
|
* hash: Make fewer helper functions need explicit hash length fieldsGravatar Runxi Yu2025-11-161-4/+6
|
* Revert "hash: Generic hash-algorithm API"Gravatar Runxi Yu2025-11-161-16/+16
| | | | | | | This reverts commit 94bfb1fa147f80e6ec39009d41fc2f853925e0a5. Generics actually kinda suck for these purposes... once you look at it from the user's perspective.
* hash: Generic hash-algorithm APIGravatar Runxi Yu2025-11-161-16/+16
|
* Support multiple hash sizes in one buildGravatar Runxi Yu2025-11-161-2/+2
|
* Add initial support for multi pack indexesGravatar Runxi Yu2025-11-151-0/+13
|
* Unexport PackLocationGravatar Runxi Yu2025-11-141-9/+9
|
* Read types and sizes without inflating entire objectGravatar Runxi Yu2025-11-141-0/+83
|
* Initial commitGravatar Runxi Yu2025-11-131-0/+473