On 2/21/23 21:00, Junio C Hamano wrote:
> Idriss Fekir <mcsm224@gmail.com> writes:
>
>> From: idriss fekir <mcsm224@gmail.com>
>>
>> trace_repo_setup() of trace.c is called with the argument 'prefix' from
>> only one location, run_builtin of git.c, which sets 'prefix' to the
return
>> value of setup_git_directory() or setup_git_directory_gently() (a
wrapper
>> of the former).
>
> The former is the wrapper of the latter, though ;-)
Oh sorry about that, that's what i meant but wrote it in reverse.
>
>> Now that "prefix" is in startup_info there is no need for the parameter
>> of trace_repo_setup() because setup_git_directory() sets
"startup_info->prefix"
>> to the same value it returns. It would be less confusing to use "prefix"
>> from startup_info instead of passing it as an argument.
>
> ... but for commands with neither RUN_SETUP|RUN_SETUP_GENTLY bits
> requested, the prefix is set it to NULL by run_builtin(), and
> setup_git_directory. What value does startup_info->prefix get in
> that case? If we know it will always NULL (and I suspect that is
> the case, but I haven't followed the codepaths myself to find it out
> lately, so you should without taking my word blindly), saying that
> at the same place you mentioned the return value of setup_git_*()
> functions in the first paragraph would make the reasoning perfect.
>
> Otherwise, very nicely done.
>
> Thanks.
>
I did check if startup_info->prefix is *always* set, that doesn't seem
to be the case, but for trace_repo_setup() this doesn't matter as it will
never be called if neither RUN_SETUP nor RUN_SETUP_GENTLY are set
("if (run_setup &&..."). I also think there is a typo in the comment after
that if-statement, it should be "/* set_git_dir().." instead of
"/* get_git_dir()...". I have a question, why isn't startup_info initialized
with default values in setup.c?Thanks a lot for your valuable feedback.
PS: I'm so sorry if this email has been sent multiple times, i thought it wasn't at first.
Kind regards.