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

From: Junio C Hamano <[email-masked]>
Date: Fri, 06 Aug 2021 09:36:27 -0700

Atharva Raykar <[email-masked]> writes:

> Naming things is hard...

Absolutely.

> Maybe the right phrase would be 'target directory'? We are creating a
> target directory name by looking at the "humanish" part of the Git URL.
>
> I think the intention of all callers of this function is to get a
> "default" directory name which will be used as the target of some
> operation in the absence of the user providing one.
>
> So maybe the name could be: 'guess_target_dir_from_git_url()'

I have no immediate objection to the name.  

Just to see how people (including you) may react to a name from a
completely different line of thinking, let me throw this, though.

How does git_url_basename() sound?  

Instead of saying what we'd use it for (i.e. as the name for the
directory getting created), we say what we compute.  We take a
URL-looking thing that is used by Git, and we compute something like
basename() but that is tailored for Git (e.g. unlike "basename
a/b/c.git" that yields "c.git", we give "c" for "a/b/c.git".
Likewise "<scheme>://a/b/c/.git" won't yield ".git", we compute
"c").

Having said that, I think guess_target_dir_from_git_url() is clear
enough.

> This would make sense for any operation now or in the future that wants
> to reuse this functionality.

That is mostly for you to decide.   I can help you sanity check the
proposed name(s) with existing callers, but you'd be a better judge
for callers you'll be adding ;-)