<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~runxiyu/furgit.git/objectstore/packed/store.go, branch v0.1.90</title>
<subtitle>Git library in pure Go</subtitle>
<id>https://cgit.space/~runxiyu/furgit.git/atom/objectstore/packed/store.go?h=v0.1.90</id>
<link rel='self' href='https://cgit.space/~runxiyu/furgit.git/atom/objectstore/packed/store.go?h=v0.1.90'/>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/'/>
<updated>2026-03-22T23:47:55Z</updated>
<entry>
<title>objectstore/packed: Document refresh semantics</title>
<updated>2026-03-22T23:47:55Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-03-22T23:47:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=0f67e6f5f29d765105a1c48017de37df12755417'/>
<id>urn:sha1:0f67e6f5f29d765105a1c48017de37df12755417</id>
<content type='text'>
</content>
</entry>
<entry>
<title>objectstore/*, repository, receivepack/service: don't take ownership of root</title>
<updated>2026-03-22T18:02:10Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-03-22T18:00:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=4e43d7207bf91ee759c770de1bcc8562a71b4aca'/>
<id>urn:sha1:4e43d7207bf91ee759c770de1bcc8562a71b4aca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>objectstore{,/packed}: Document lifetime and integrity behavior</title>
<updated>2026-03-22T17:33:27Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-03-22T17:33:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=d314d1f7e933ca83081eec289aa0cb6e75a7eeac'/>
<id>urn:sha1:d314d1f7e933ca83081eec289aa0cb6e75a7eeac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>objectstore: Refresh</title>
<updated>2026-03-08T07:44:32Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-03-08T07:33:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=dd027e1e5379019bfeffc48ff1274b5e05581ff3'/>
<id>urn:sha1:dd027e1e5379019bfeffc48ff1274b5e05581ff3</id>
<content type='text'>
* Add manual Refresh for various objectstore's
* RefreshPolicy option
* Refreshable MRU and atomic snapshotting
</content>
</entry>
<entry>
<title>objectstore/packed: Split files</title>
<updated>2026-03-06T03:30:56Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-03-06T03:26:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=75c7147c6afcb64a7c8bfedb08f1613c5011ff71'/>
<id>urn:sha1:75c7147c6afcb64a7c8bfedb08f1613c5011ff71</id>
<content type='text'>
</content>
</entry>
<entry>
<title>*: Fix lints</title>
<updated>2026-03-04T06:21:30Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-03-04T06:21:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=78a035210ad34488d6feca45c3ce00825ee1d2c5'/>
<id>urn:sha1:78a035210ad34488d6feca45c3ce00825ee1d2c5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>objectstore/packed: Split</title>
<updated>2026-03-04T01:55:44Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-03-04T01:55:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=f31ad11ed0665bfaed90c67890a5fa951301d3f3'/>
<id>urn:sha1:f31ad11ed0665bfaed90c67890a5fa951301d3f3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>*: Lint</title>
<updated>2026-03-04T00:59:53Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-03-04T00:26:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=ab7501be34032fb9e5c48726a68ae90a917af9eb'/>
<id>urn:sha1:ab7501be34032fb9e5c48726a68ae90a917af9eb</id>
<content type='text'>
</content>
</entry>
<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>objectstore/packed: Optimize pack candidate lookup and locking</title>
<updated>2026-02-21T11:51:40Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-21T11:51:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=8600b32050fa21d63baf4b21e75f8fc71fcfc610'/>
<id>urn:sha1:8600b32050fa21d63baf4b21e75f8fc71fcfc610</id>
<content type='text'>
</content>
</entry>
</feed>
