aboutsummaryrefslogtreecommitdiff
path: root/pack_pack.go
Commit message (Expand)AuthorAgeFilesLines
* hash: Use a hashAlgorithmDetails struct for single source of truth•••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. v0.1.2Gravatar Runxi Yu2026-01-271-2/+2
* 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 verifyTypedObject•••It's not supposed to be used there anyway Gravatar Runxi Yu2026-01-151-4/+0
* pack: Do not madvise•••Apparently although it's not fully sequential, the general pattern is sort-of increasing in offsets as trees are being traversed. Gravatar Runxi Yu2025-11-241-11/+0
* bufpool: Return bytes.Buffer, rather than a pointer to it•••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. Gravatar Runxi Yu2025-11-231-32/+32
* 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"•••This reverts commit 6f8acbf1503d2fa1ef705d35a743fc6b279942e5. Apparently my MIDX support is broken and it breaks some repos... it'll be added back when ready. Gravatar Runxi Yu2025-11-201-13/+0
* 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 overhead•••io.Reader actually has massive overhead... Gravatar Runxi Yu2025-11-191-25/+30
* madviseGravatar Runxi Yu2025-11-181-0/+12
* Fix import orderGravatar Runxi Yu2025-11-181-1/+2
* Use a pooled zlib implementation•••It's trivially forked from the standard library and improves git ls-tree -r --long speed by approximately 25%. Gravatar Runxi Yu2025-11-181-1/+1
* Disable per-object validation during reads•••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. Gravatar Runxi Yu2025-11-171-4/+4
* pack: Use a Go map with a mutex instead of a sync.Map for packfiles•••Very few writes, you don't typically see more than a dozen packfiles. A ton of reads. Go maps are the obvious choice. Gravatar Runxi Yu2025-11-171-0/+24
* Revert "Compute checksum when reading packfiles"•••This reverts commit 1dcb92427c23d0a8b23c0154b892243c749afa5a. Yeah this should be part of the network protocol rather than being done on *every read*. Gravatar Runxi Yu2025-11-171-22/+2
* 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"•••This reverts commit 94bfb1fa147f80e6ec39009d41fc2f853925e0a5. Generics actually kinda suck for these purposes... once you look at it from the user's perspective. Gravatar Runxi Yu2025-11-161-16/+16
* 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