On Fri, Dec 04, 2015 at 10:55:32AM -0800, Junio C Hamano wrote:
> >> + int ignore_sighup = 0;
> >> + git_config_get_bool("credentialcache.ignoresighup", &ignore_sighup);
> >> +
> >
> > Style-wise, I think the declaration should go above the options-list.
>
> I was about to merge this to 'master', following your last issue of
> "What's cooking" report.
>
> I was puzzled that git_config_get_bool() is used here without even
> checking if we are inside any Git repository and wondered if it was
> correct. I'd imagine this is not a problem, as this process is
> spawned by "credential-cache" that was spawned by somebody (either
> push or fetch) who has read $GIT_DIR/config for credential.helper to
> determine that credential-cache needs to be used.
That does not have to be the case; I imagine most people would put
credential.helper in their ~/.gitconfig.
But I'm not sure I understand how that is relevant. The config subsystem
should work just fine whether we are in a repository or not (and if not,
return results only from system and user-wide config).
This probably _does_ trigger setup_git_env() when it was not otherwise
called, and it will back to looking at ".git/config" for the repo-level
config. That may fail to find the file if we are in a bare repository,
or a subdirectory of the working tree. IOW, I suspect this:
git init --bare foo.git
cd foo.git
git config credential.helper cache
git config credentialcache.ignoreSIGHUP true ;# goes into local config
git fetch https://example.com/foo.git
may fail to respect the ignoreSIGHUP option.
I guess the solution would be to setup_git_director_gently() in the
daemon process.
-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html