On 2/21/23 21:00, Junio C Hamano wrote: > Idriss Fekir <mcsm224@xxxxxxxxx> writes: > >> From: idriss fekir <mcsm224@xxxxxxxxx> >> >> 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.