Subject: Re: [GSoC] [PATCH v4 4/8] dir: libify and export helper functions from clone.c

From: Atharva Raykar <[email-masked]>
Date: Mon, 09 Aug 2021 13:32:26 +0530

Kaartic Sivaraam <[email-masked]> writes:

> On 07/08/21 12:46 pm, Atharva Raykar wrote:
>>> [ ... ]
>>
>> diff --git a/dir.h b/dir.h
>> index b3e1a54a97..a4a6fd7371 100644
>> --- a/dir.h
>> +++ b/dir.h
>> @@ -453,6 +453,16 @@ static inline int is_dot_or_dotdot(const char *name)
>>     int is_empty_dir(const char *dir);
>>   +/*
>> + * Retrieve the "humanish" basename of the given Git URL.
>> + *
>> + * For example:
>> + * 	/path/to/repo.git => "repo"
>> + * 	host.xz.foo/.git => "foo"
>> + */
>
> Are you sure about the examples here? I just tried and ...
>
>   - '/path/to/repo.git' gave me 'repo' like you said
>
> .. but ..
>
>   - 'host.xz.foo/.git' gives me 'host.xz.foo' instead of 'foo'.
>     I think you meant to have 'host.xz/foo.git' in the example.

Yikes! I meant 'host.xz:foo/.git'. That should give us 'foo'. Thanks for
the correction.

> Also, here's another example that might be useful to mention in the docstring:
>
>   - 'http://example.com/user/bar.baz' => 'bar.baz'

Yeah, especially since that's probably the most familiar example for
most end users.

>> +char *git_url_basename(const char *repo, int is_bundle, int is_bare);
>> +void strip_dir_trailing_slashes(char *dir);
>> +
>>   void setup_standard_excludes(struct dir_struct *dir);
>>     char *get_sparse_checkout_filename(void);
>>