Glen Choo <chooglen@xxxxxxxxxx> writes: >> - A change like this should make existing config_set() that only >> works on the_repository into a thin wrapper, e.g. >> >> void git_config_set(const char *keyu, const char **value) >> { >> repo_config_set(the_repository, key, value); >> } >> >> But that is not happening here. What prevents us from doing so? > > I think it is _possible_, as long as we plumb struct repository through > the call chain all the way to git_config_set_multivar_in_file_gently(). > > [...] > > I will attempt this plumbing, which will allow us to make > git_config_set() a thin wrapper. However, if this turns out to be too > difficult, I will implement branch --recurse-submodules with child > processes and leave this for a future clean up (as hinted at in the > cover letter). I believe that this plumbing is already doable but it would take an extensive overhaul of config.c as well as some cleanup of path.c. This is more work than I am willing to take on right now, but I'll revisit this at some point.