On 03/07, Johannes Schindelin wrote: > const char *setup_git_directory_gently(int *nongit_ok) > { > + struct strbuf cwd = STRBUF_INIT, dir = STRBUF_INIT, gitdir = STRBUF_INIT; I couldn't see any strbuf_release() calls for these strbufs so there may be some memory leaking here. > const char *prefix; > > - prefix = setup_git_directory_gently_1(nongit_ok); > + /* > + * We may have read an incomplete configuration before > + * setting-up the git directory. If so, clear the cache so > + * that the next queries to the configuration reload complete > + * configuration (including the per-repo config file that we > + * ignored previously). > + */ > + git_config_clear(); > + > + /* > + * Let's assume that we are in a git repository. > + * If it turns out later that we are somewhere else, the value will be > + * updated accordingly. > + */ > + if (nongit_ok) > + *nongit_ok = 0; > + > + if (strbuf_getcwd(&cwd)) > + die_errno(_("Unable to read current working directory")); > + strbuf_addbuf(&dir, &cwd); > + > + switch (setup_git_directory_gently_1(&dir, &gitdir)) { > + case GIT_DIR_NONE: > + prefix = NULL; > + break; > + case GIT_DIR_EXPLICIT: > + prefix = setup_explicit_git_dir(gitdir.buf, &cwd, nongit_ok); > + break; > + case GIT_DIR_DISCOVERED: > + if (dir.len < cwd.len && chdir(dir.buf)) > + die(_("Cannot change to '%s'"), dir.buf); > + prefix = setup_discovered_git_dir(gitdir.buf, &cwd, dir.len, > + nongit_ok); > + break; > + case GIT_DIR_BARE: > + if (dir.len < cwd.len && chdir(dir.buf)) > + die(_("Cannot change to '%s'"), dir.buf); > + prefix = setup_bare_git_dir(&cwd, dir.len, nongit_ok); > + break; > + case GIT_DIR_HIT_CEILING: > + prefix = setup_nongit(cwd.buf, nongit_ok); > + break; > + case GIT_DIR_HIT_MOUNT_POINT: > + if (nongit_ok) { > + *nongit_ok = 1; > + return NULL; > + } > + die(_("Not a git repository (or any parent up to mount point %s)\n" > + "Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."), > + dir.buf); > + default: > + die("BUG: unhandled setup_git_directory_1() result"); > + } > + > if (prefix) > setenv(GIT_PREFIX_ENVIRONMENT, prefix, 1); > else > -- > 2.12.0.windows.1.7.g94dafc3b124 > > -- Brandon Williams