<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~runxiyu/furgit.git/repo.go, branch next</title>
<subtitle>Git library in pure Go</subtitle>
<id>https://cgit.space/~runxiyu/furgit.git/atom/repo.go?h=next</id>
<link rel='self' href='https://cgit.space/~runxiyu/furgit.git/atom/repo.go?h=next'/>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/'/>
<updated>2026-02-20T11:07:14Z</updated>
<entry>
<title>Delete everything, I'm redesigning this.</title>
<updated>2026-02-20T11:07:14Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-20T11:06:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=aa513c069c1418734aea894dc944e27c6a78a3bb'/>
<id>urn:sha1:aa513c069c1418734aea894dc944e27c6a78a3bb</id>
<content type='text'>
I'll stop using a flat package and make things much more modular.
And also experiment with streaming APIs so large blobs don't OOM us.
</content>
</entry>
<entry>
<title>Revert "commitgraph: Add basic commit-graph implementation"</title>
<updated>2026-02-20T04:57:31Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-02-20T04:41:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=0d20a16b88f85cf05e119a6ada6553c4085d6458'/>
<id>urn:sha1:0d20a16b88f85cf05e119a6ada6553c4085d6458</id>
<content type='text'>
This reverts commit 1ea061c92ca6ad435c00bea458b8f24a5e1a822a.
</content>
</entry>
<entry>
<title>commitgraph: Add basic commit-graph implementation</title>
<updated>2026-01-30T14:46:49Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-01-30T14:46:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=1ea061c92ca6ad435c00bea458b8f24a5e1a822a'/>
<id>urn:sha1:1ea061c92ca6ad435c00bea458b8f24a5e1a822a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hash: Use a hashAlgorithmDetails struct for single source of truth</title>
<updated>2026-01-27T18:09:10Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-01-27T18:05:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=6002485582541df9dff3e2c782a014564e22ed07'/>
<id>urn:sha1:6002485582541df9dff3e2c782a014564e22ed07</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>More changes from the import URL update</title>
<updated>2026-01-18T17:04:52Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-01-18T17:04:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=ec5fe2ab6baaf82be1952080bb5a14a8e58d61bb'/>
<id>urn:sha1:ec5fe2ab6baaf82be1952080bb5a14a8e58d61bb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>repo: Drop hashSize and use hashAlgo.size()</title>
<updated>2026-01-17T15:00:14Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-01-17T15:00:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=90b5f779080272d5c6ef39e0c93d8592840a53b7'/>
<id>urn:sha1:90b5f779080272d5c6ef39e0c93d8592840a53b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hash: Key by algorithm, not size</title>
<updated>2026-01-17T14:56:53Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2026-01-17T14:56:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=7a0ab5f77917a36a87945f6a88b036b9b6ba88ee'/>
<id>urn:sha1:7a0ab5f77917a36a87945f6a88b036b9b6ba88ee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Revert "Add initial support for multi pack indexes"</title>
<updated>2025-11-20T00:00:00Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2025-11-20T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=fc157e9c71a0c64ff27ff0428eb68ca5660dd495'/>
<id>urn:sha1:fc157e9c71a0c64ff27ff0428eb68ca5660dd495</id>
<content type='text'>
This reverts commit 6f8acbf1503d2fa1ef705d35a743fc6b279942e5.

Apparently my MIDX support is broken and it breaks some repos...
it'll be added back when ready.
</content>
</entry>
<entry>
<title>Disable per-object validation during reads</title>
<updated>2025-11-17T00:00:00Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2025-11-17T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=f24da2291e8fc5dd6e80047cb45f06ec69a9059c'/>
<id>urn:sha1:f24da2291e8fc5dd6e80047cb45f06ec69a9059c</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>pack: Use a Go map with a mutex instead of a sync.Map for packfiles</title>
<updated>2025-11-17T00:00:00Z</updated>
<author>
<name>Runxi Yu</name>
</author>
<published>2025-11-17T00:00:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~runxiyu/furgit.git/commit/?id=4789df803aba25340ebe0eaf472ad22bd92d7f96'/>
<id>urn:sha1:4789df803aba25340ebe0eaf472ad22bd92d7f96</id>
<content type='text'>
Very few writes, you don't typically see more than a dozen packfiles.
A ton of reads. Go maps are the obvious choice.
</content>
</entry>
</feed>
