git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC] Metadata vs Generation Data Chunk

From
Derrick Stolee <stolee@gmail.com>
Date
Jun 26, 2020, 14:40 UTC
Message-ID
<3bdbf490-a7ae-2351-9c82-6b19a577b641@gmail.com>
In-Reply-To
<20200626134422.GA17537@Abhishek-Arch>
On 6/26/2020 9:44 AM, Abhishek Kumar wrote:
Show 25 quoted lines
> On 22.06.2020 at 13:40, Jakub Narębski wrote:
>> On 22.06.2020 at 11:34, Abhishek Kumar wrote:
>>
>>> One of the remaining pre-requisites for implementing generation number
>>> v2 was distinguishing between corrected commit dates with monotonically
>>> increasing offsets and topological level without incrementing generation
>>> number version.
>>>
>>> Two approaches were proposed [1]:
>>> 1. New chunk for commit data (generation data chunk, "GDAT")
>>> 2. Metadata/versioning chunk
>>
>> Actually in [1] there was also proposed another distinct approach,
>> namely to 'rename' the "CDAT" chunk to something else, like "CDA2"
>> (or proposed here "GDAT").
>>
>> If I read the code correctly, with old Git if one of required chunks
>> is missing then Git would continue work as if commit-graph was not
>> present -- as opposed to current handling of unknown commit-graph
>> file format version number, where Git would stop working with an
>> error message.
>>
> 
> Actually, v2.21.0 (and possibly others) segfault when they encounter a
> commit-graph without CDAT chunk.

Yes, the CDAT chunk is absolutely necessary. It also includes data such as the commit-date, root tree id, and parent information.

> With this, I presume "CDAT Chunk Replaced With Another Chunk" is no
> longer feasible?

"Replace" was never on the table (in my mind). Instead, we can consider _adding_ a new chunk that contains the generation number v2 data.

Thanks, -Stolee

Previous: Abhishek Kumar
Message 2 of 2 in “Re: [RFC] Metadata vs Generation Data Chunk”
  1. Abhishek KumarJun 26, 2020
  2. Derrick StoleeJun 26, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.