Subject: Re: What's cooking in git.git (Mar 2019, #04; Wed, 20)

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Thu, 21 Mar 2019 10:13:14 +0100

On Thu, Mar 21 2019, Junio C Hamano wrote:

> Junio C Hamano <[email-masked]> writes:
>
>> Ævar Arnfjörð Bjarmason <[email-masked]> writes:
>>
>>> On Wed, Mar 20 2019, Junio C Hamano wrote:
>>>
>>>> Here are the topics that have been cooking.  Commits prefixed with
>>>> '-' are only in 'pu' (proposed updates) while commits prefixed with
>>>> '+' are in 'next'.  The ones marked with '.' do not appear in any of
>>>> the integration branches, but I am still holding onto them.
>>>
>>> I have re-rolls & re-submissions of some of my stuff as a WIP, but one
>>> thing that's fallen between the cracks & should be ready for queuing is
>>> my commit-graph segfault bugfix series:
>>>
>>> https://public-inbox.org/git/[email-masked]/
>>
>> Thanks.  I quickly looked at the difference between the updated one
>> and the old one; will take a deeper look later.
>
> It does not seem to play well in 'pu', unfortunately.  In my local
> tests, 'pu' without this topic passes, but what I pushed out to
> public has this topic on top and t5318 does not pass for me.

It works for me when I apply the series on "pu". There's a conflict with
Stolee's ds/commit-graph-format-v2.

There's a single merge conflict with it around the "commit-graph
version" error message that needs to be resolved. Here's how I did that:
https://github.com/avar/git/commit/1d69f4ea62973de977466a2e29d116716692a05d

I.e. this conflict:

    	graph_version = *(unsigned char*)(data + 4);
    <<<<<<< HEAD
    	if (!graph_version || graph_version > 2) {
    		error(_("unsupported graph version %X"),
    		      graph_version);
    =======
    	if (graph_version != GRAPH_VERSION) {
    		error(_("commit-graph version %X does not match version %X"),
    		      graph_version, GRAPH_VERSION);
    		return NULL;
    	}

    	hash_version = *(unsigned char*)(data + 5);
    	if (hash_version != oid_version()) {
    		error(_("commit-graph hash version %X does not match version %X"),
    		      hash_version, oid_version());
    >>>>>>> commit-graph-fix-segfault-and-exit-3
    		return NULL;
    	}

Needs to be resolved as:

	graph_version = *(unsigned char*)(data + 4);
	if (!graph_version || graph_version > 2) {
		error(_("commit-graph the graph version %X is unsupported"),
		      graph_version);
		return NULL;
	}

I.e. there's a test that greps out "graph version".

I can also submit a re-roll on top of his series, but figured describing
the merge might be easier...