Junio C Hamano <[email protected]> writes:
> I think we want to audit the ones without RUN_SETUP* in the command
> table in order to hunt for regression aka "a fix revealed a bug that
> was covered by .git/config accidentally getting read when run from
> the top-level of the working tree", though. We may find unreported
> breakages that we may have to fix.
So I took a brief look at the "PROGRAM_OBJS += ..." in the Makefile
for non-builtin commands, and commands[] array in git.c for builtin
commands to see how bad it looks.
Archive & Upload-archive:
"cd Documentation && git archive --remote=origin" immediately hits
"BUG: setup_git_env called without repository" if your Git is built
with b1ef400eec ("setup_git_env: avoid blind fall-back to ".git"",
2016-10-20), which will not be part of the upcoming release. And
'origin' will probably not be understood from the local config.
I think we can do the "gently" thing there, as we may be retrieving
a remote archive outside a local repository. We'd need to tweak
"output" with prefix to compensate for the case in which the command
is run from a subdirectory, and probably we need to futz with the
setup_prefix parameter to write_archive(), as a local caller now
will know if we are in nongit situation.
On the upload-archive side that serves "--remote" request, there is
enter_repo() so we should be covered OK.
Mailinfo:
We may want a "gently" thing there to pick up local configuration.
i18n.commitencoding and mailinfo.scissors in local repository would
be ignored otherwise.
Splitspace:
Dscho fixed this one.
Verify-pack:
This calls git_config() but these days farms out its operation to
"index-pack", so we should be OK. We may even want to lose the call
to git_config() which does not affect anything.