Subject: Re: [PATCH v2] replay: drop commits that become empty

From: Phillip Wood <[email-masked]>
Date: Wed, 17 Dec 2025 14:45:54 +0000

On 15/12/2025 23:50, Junio C Hamano wrote:
> Phillip Wood <[email-masked]> writes:
>> diff --git a/t/t3650-replay-basics.sh b/t/t3650-replay-basics.sh
>> index cf3aacf3551..9d4b0dd1a77 100755
>> --- a/t/t3650-replay-basics.sh
>> +++ b/t/t3650-replay-basics.sh
>> @@ -25,6 +25,8 @@ test_expect_success 'setup' '
>>   	git switch -c topic3 &&
>>   	test_commit G &&
>>   	test_commit H &&
>> +	git switch -c empty &&
>> +	git commit --allow-empty --only -m empty &&
> 
> The use of "--only" here is a bit curious.  As there is no change
> between the index and the commit our "empty" branch points at,
> wouldn't it be unnecessary?  The option, together with --allow-empty,
> would only matter if you did
> 
> 	git switch -c empty &&
> 	modify blah &&
> 	git add blah &&
> 	git commit --allow-empty --only -m empty
> 
> because without --only, the changes to blah will be taken.

I've got into the habit of always adding "--only" when I want to create 
an empty commit in case there are staged changes. I don't really like 
"--allow-empty" as I've never wanted to create commit that might or 
might not be empty - either I want to create an empty commit in which 
case I don't want to commit any staged changes, or I want the commit to 
fail if there are no staged changes). I can remove it if you want.

Thanks

Phillip