<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git/src/libgit2/commit_graph.c, branch ethomson/objectformat</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/'/>
<entry>
<title>commit_graph: use uint64_t for arithmetic</title>
<updated>2022-11-10T13:50:41+00:00</updated>
<author>
<name>Derrick Stolee</name>
<email>derrickstolee@github.com</email>
</author>
<published>2022-11-10T13:50:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=6de3221debf785c328842667eb04c07c747c73a0'/>
<id>6de3221debf785c328842667eb04c07c747c73a0</id>
<content type='text'>
This should resolve some issues with UBSan builds by using unsigned
64-bit integers for all arithmetic until we finally convert to an offset
or size value.

Signed-off-by: Derrick Stolee &lt;derrickstolee@github.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should resolve some issues with UBSan builds by using unsigned
64-bit integers for all arithmetic until we finally convert to an offset
or size value.

Signed-off-by: Derrick Stolee &lt;derrickstolee@github.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>commit-graph: only verify csum on git_commit_graph_open().</title>
<updated>2022-11-03T16:09:18+00:00</updated>
<author>
<name>Colin Stolley</name>
<email>ccstolley@github.com</email>
</author>
<published>2022-06-16T21:50:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=2c4eb83ee14bca44c2442727bacd82312cbedfc5'/>
<id>2c4eb83ee14bca44c2442727bacd82312cbedfc5</id>
<content type='text'>
It is expensive to compute the sha1 of the entire commit-graph file each
time we open it. Git only does this if it is re-writing the file.

This patch will only verify the checksum when calling the external API
git_commit_graph_open(), which explicitly says it opens and verifies
the commit graph in the documentation.

For internal library calls, we call git_commit_graph_get_file(), which
mmaps the commit-graph file in read-only mode. Therefore it is safe to
skip the validation check there.

Tests were added to check that the validation works in the happy path,
and prevents us from opening the file when validation fails.

(Note from Derrick Stolee: This patch was applied internally at GitHub
after we recognized the performance impact it had during an upgrade of
libgit2. The original author left the company before we remembered to
send it upstream.)

Signed-off-by: Derrick Stolee &lt;derrickstolee@github.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is expensive to compute the sha1 of the entire commit-graph file each
time we open it. Git only does this if it is re-writing the file.

This patch will only verify the checksum when calling the external API
git_commit_graph_open(), which explicitly says it opens and verifies
the commit graph in the documentation.

For internal library calls, we call git_commit_graph_get_file(), which
mmaps the commit-graph file in read-only mode. Therefore it is safe to
skip the validation check there.

Tests were added to check that the validation works in the happy path,
and prevents us from opening the file when validation fails.

(Note from Derrick Stolee: This patch was applied internally at GitHub
after we recognized the performance impact it had during an upgrade of
libgit2. The original author left the company before we remembered to
send it upstream.)

Signed-off-by: Derrick Stolee &lt;derrickstolee@github.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sha256: indirection for experimental functions</title>
<updated>2022-07-14T02:50:33+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2022-07-14T02:25:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=b43567d655b6fbc562a165095a6980d19c4ae278'/>
<id>b43567d655b6fbc562a165095a6980d19c4ae278</id>
<content type='text'>
The experimental function signature is only available when
`GIT_EXPERIMENTAL_SHA256` is enabled.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The experimental function signature is only available when
`GIT_EXPERIMENTAL_SHA256` is enabled.
</pre>
</div>
</content>
</entry>
<entry>
<title>oid: give oids a type</title>
<updated>2022-06-20T21:05:29+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2022-01-23T14:47:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=3fbf580c91935ccdea25a135204419991f503b63'/>
<id>3fbf580c91935ccdea25a135204419991f503b63</id>
<content type='text'>
`git_oid`s now have a type, and we require the oid type when creating
the object id from creation functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`git_oid`s now have a type, and we require the oid type when creating
the object id from creation functions.
</pre>
</div>
</content>
</entry>
<entry>
<title>oid: `GIT_OID_*SZ` is now `GIT_OID_SHA1_*SIZE`</title>
<updated>2022-06-15T02:29:57+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2022-01-23T04:10:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=dbc4ac1c76827e954e0aa27afe8bb7e0b8993a93'/>
<id>dbc4ac1c76827e954e0aa27afe8bb7e0b8993a93</id>
<content type='text'>
In preparation for SHA256 support, `GIT_OID_RAWSZ` and `GIT_OID_HEXSZ`
need to indicate that they're the size of _SHA1_ OIDs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In preparation for SHA256 support, `GIT_OID_RAWSZ` and `GIT_OID_HEXSZ`
need to indicate that they're the size of _SHA1_ OIDs.
</pre>
</div>
</content>
</entry>
<entry>
<title>commit_graph: use raw oid data</title>
<updated>2022-04-10T19:56:57+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2022-01-22T00:38:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=c2b3b0d87da30efd0df495ea2c99cce2f0b7d6c5'/>
<id>c2b3b0d87da30efd0df495ea2c99cce2f0b7d6c5</id>
<content type='text'>
The commit graph contains arrays of raw oid data, use a byte array to
index into them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The commit graph contains arrays of raw oid data, use a byte array to
index into them.
</pre>
</div>
</content>
</entry>
<entry>
<title>oid: `hashcmp` is now `raw_cmp`</title>
<updated>2022-04-10T19:56:57+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2022-01-22T00:17:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=526e8869bf5f3d111b427d58d79d849f9f3df211'/>
<id>526e8869bf5f3d111b427d58d79d849f9f3df211</id>
<content type='text'>
We will talk about "raw" oids as untyped blobs of data; use a name for
the comparison function that is in keeping with that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We will talk about "raw" oids as untyped blobs of data; use a name for
the comparison function that is in keeping with that.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: `src` is now `src/libgit2`</title>
<updated>2022-02-23T03:07:44+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2021-11-14T13:47:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=ef4ab2988320005cbcb3db920e6b41f10b3c60cf'/>
<id>ef4ab2988320005cbcb3db920e6b41f10b3c60cf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
