pass "git -c foo=bar" params through environment
authorJeff King <peff@peff.net>
Mon, 23 Aug 2010 19:16:00 +0000 (15:16 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 24 Aug 2010 16:53:46 +0000 (09:53 -0700)
commit2b64fc894dada0916558fd0bfd19c50631f978cb
treea3b09386105dc2f853b14a18a9112ddc7962a138
parent64fdc08dac6694d1e754580e7acb82dfa4988bb9
pass "git -c foo=bar" params through environment

Git uses the "-c foo=bar" parameters to set a config
variable for a single git invocation. We currently do this
by making a list in the current process and consulting that
list in git_config.

This works fine for built-ins, but the config changes are
silently ignored by subprocesses, including dashed externals
and invocations to "git config" from shell scripts.

This patch instead puts them in an environment variable
which we consult when looking at config (both internally and
via calls "git config").

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h
config.c
git.c