Subject: Re: [PATCH v4] git-send-pack: fix --all option when used with directory

From: Junio C Hamano <[email-masked]>
Date: Thu, 31 Mar 2016 15:02:43 -0700

Junio C Hamano <[email-masked]> writes:

> [email-masked] writes:
>
>> From: Stanislav Kolotinskiy <[email-masked]>
>>
>> When using git send-pack with --all option
>> and a target repository specification ([<host>:]<directory>),
>> usage message is being displayed instead of performing
>> the actual transmission.
>>
>> The reason for this issue is that destination and refspecs are being set
>> in the same conditional and are populated from argv. When a target
>> repository is passed, refspecs is being populated as well with its value.
>> This makes the check for refspecs not being NULL to always return true,
>> which, in conjunction with the check for --all or --mirror options,
>> is always true as well and returns usage message instead of proceeding.
>>
>> This ensures that send-pack will stop execution only when --all
>> or --mirror switch is used in conjunction with any refspecs passed.
>>
>> Signed-off-by: Stanislav Kolotinskiy <[email-masked]>
>> ---
>
> Thanks, will queue.

By the way, for some reason it was unusually painful to find the
exact breakage by bisecting between maint-2.4 and maint-2.6.  It
somehow ended up on fingering random places like v2.6.0 itself.

The true culprit is 068c77a5 (builtin/send-pack.c: use parse_options
API, 2015-08-19).  I didn't dug deep enough to tell if we recently
broke "git bisect" or if there are something wrong in the shape of
my history.