Re: [PATCH v2 21/25] fetch: define shallow boundary with --shallow-exclude
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Feb 15, 2016, 05:56 UTC
- Message-ID
- <CAPig+cSL--T7f5OdR2+b7t-AHof8TGb9=P8XKa2t3K3y2yu0MQ@mail.gmail.com>
- In-Reply-To
- <CAPig+cR01WCgyJQuDcq-j5Z6u3S-LO5kUVuT+g-jdu-hoH-5yw@mail.gmail.com>
On Mon, Feb 15, 2016 at 12:52 AM, Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 35 quoted lines
> On Sun, Feb 14, 2016 at 10:53 PM, Duy Nguyen <pclouds@gmail.com> wrote:
>> On Fri, Feb 5, 2016 at 12:26 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
>>> Hmm, can't this be simplified to:
>>>
>>> if (skip_prefix(arg, "--shallow-exclude=", &value)) {
>>> if (!args.deepen_not) {
>>> args.deepen_not = xmalloc(sizeof(*args.deepen_not));
>>> string_list_init(args.deepen_not, 1);
>>> }
>>> string_list_append(args.deepen_not, value);
>>> continue;
>>> }
>>
>> args.deepen_not is const, so no, the compiler will complain at
>> string_list_init and string_list_append. Dropping "const" is one
>> option, if you prefer.
>
> Yes, dropping 'const' was implied. I didn't examine it too deeply, but
> it did not appear as if there would be any major fallout from dropping
> 'const'. It feels a bit cleaner to keep it all self-contained than to
> have that somewhat oddball static string_list*, but it's not such a
> big deal that I'd insist upon a rewrite.
>
>>> Or, perhaps even better, declare it as plain 'struct string_list
>>> deepen_not' in struct fetch_pack_args, rather than as a pointer, and
>>> then in cmd_fetch_pack():
>>>
>>> memset(&args, 0, sizeof(args));
>>> args.uploadpack = "git-upload-pack";
>>> string_list_init(&args.deepen_not, 1);
>>
>> There's another place fetch_pack_args variable is declared, in
>> fetch_refs_via_pack(), and we would need to string_list_copy() from
>> transport->data->options.deepen_not and then free it afterward. So I
>> think it's not really worth it.Upon re-reading, I suppose this also is an argument for keeping the static string_list* rather than dropping the 'const'...(?)