Re: [PATCH 2/3] stripspace: respect repository config
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 22, 2016, 19:10 UTC
- Message-ID
- <xmqqzikrpbz2.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <xmqqshqjqw3z.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 5 quoted lines
> 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.