<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~runxiyu/furgit.git/objectstore, branch v0.1.41</title>
<subtitle>Git library in pure Go</subtitle>
<id>https://cgit.space/~runxiyu/furgit.git/atom/objectstore?h=v0.1.41</id>
<link rel='self' href='https://cgit.space/~runxiyu/furgit.git/atom/objectstore?h=v0.1.41'/>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/'/>
<updated>2026-03-03T10:31:11Z</updated>
<entry>
<title>objectstore/packed: Check pack/idx checksums here.</title>
<updated>2026-03-03T10:31:11Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-03-03T10:26:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=bd9519b464f919f2ca174a45c3c19c9a8a1fe3d1'/>
<id>urn:sha1:bd9519b464f919f2ca174a45c3c19c9a8a1fe3d1</id>
<content type='text'>
We previously had helpers in format/pack/checksum that checks
.pack/.idx-related checksums with []byte-based APIs. But it only really
makes sense to use those []byte-based APIs on mmap's (otherwise it'd be
horribly inefficient).

Since the packed object-store only needs to check that the .pack and
.idx trailer match, we move the relevant part into objectstore/packed.
The rest are deleted for now; we'll definitely need a streaming version
for the pack verification (when ingesting packfiles from the network)
(though we might just make it a streaming API (writer? reader? not
decided yet) that *produces* a hash, then verify it in the caller; this
way we could reuse the function in the pack-producing routines). The
others might get the []byte-based APIs back, or perhaps they too get
streaming APIs.

Remember that "reading objects from a packed object store",
"creating/writing packfiles", and "ingesting an incoming pack (which
usually involves creating an .idx for it)", are all very different
tasks.
</content>
</entry>
<entry>
<title>*: Fix the broken comments for overescaping that python script</title>
<updated>2026-02-22T06:01:18Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-22T06:01:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=fabf75c8123756db8b2a6013375396e0b8847bac'/>
<id>urn:sha1:fabf75c8123756db8b2a6013375396e0b8847bac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>internal/lru: Rename from internal/cache/lru</title>
<updated>2026-02-22T04:30:20Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-22T04:30:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=2a7a1e8c95025da4fbd6c398a5e51672fb1a8bd2'/>
<id>urn:sha1:2a7a1e8c95025da4fbd6c398a5e51672fb1a8bd2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>objectstore/chain: Fix lints</title>
<updated>2026-02-22T03:30:17Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-22T03:30:17Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=e0ce3837ee2ea643a4cd7eb5e7b068aae0b3910d'/>
<id>urn:sha1:e0ce3837ee2ea643a4cd7eb5e7b068aae0b3910d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>objectstore/chain: MRU especially to reduce loose object syscall cost</title>
<updated>2026-02-22T03:28:10Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-22T03:28:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=1cd58d8ec3f0f4e5ac84ba6c021d0ce098802f31'/>
<id>urn:sha1:1cd58d8ec3f0f4e5ac84ba6c021d0ce098802f31</id>
<content type='text'>
</content>
</entry>
<entry>
<title>format/delta/apply, etc.: ReadHeaderSizes should use ByteReader</title>
<updated>2026-02-22T02:28:29Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-22T02:28:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=918a17362c8a07221a65d4d60af0667ee7f0dd61'/>
<id>urn:sha1:918a17362c8a07221a65d4d60af0667ee7f0dd61</id>
<content type='text'>
</content>
</entry>
<entry>
<title>objectstore/packed: Pre-allocate instead of ReadAll</title>
<updated>2026-02-22T01:59:27Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-22T01:59:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=6e28d6a7ec210349b8c336249ba130422310fecb'/>
<id>urn:sha1:6e28d6a7ec210349b8c336249ba130422310fecb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>objectstore/*, repository: Add ReadSize</title>
<updated>2026-02-21T14:55:15Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-21T14:55:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=777db8470909b16411cb54a6c0bbf927be778952'/>
<id>urn:sha1:777db8470909b16411cb54a6c0bbf927be778952</id>
<content type='text'>
For cases where knowing the type is unnecessary and incurs extra
overhead.
</content>
</entry>
<entry>
<title>objectstore/packed: Don't use full delta reconstruction just to read headers</title>
<updated>2026-02-21T12:40:05Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-21T12:40:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=fd55beb6188350974afd93dfffcef973ebdad6e8'/>
<id>urn:sha1:fd55beb6188350974afd93dfffcef973ebdad6e8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>objectstore/packed: Improve delta base caching</title>
<updated>2026-02-21T12:21:55Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-21T12:21:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=b480c5c4dfaddb9b137f50b1a7651e3bce2ecb98'/>
<id>urn:sha1:b480c5c4dfaddb9b137f50b1a7651e3bce2ecb98</id>
<content type='text'>
</content>
</entry>
</feed>
