git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: "git -c web.browser=w3m help -w help" still kicks firefox

From
Jeff King <peff@peff.net>
Date
Aug 23, 2010, 18:38 UTC
Message-ID
<20100823183857.GA22386@coredump.intra.peff.net>
In-Reply-To
<7viq3119yn.fsf@alter.siamese.dyndns.org>
On Mon, Aug 23, 2010 at 11:05:04AM -0700, Junio C Hamano wrote:
Show 8 quoted lines
> A "trivial fix" would be to pass this info through the execv_git_cmd()
> interface by either exporting it via an environment variable or by
> modifying the command line options, but I am not sure about the possible
> fallouts from such a change.  For example, does "git -c var=value config ..."
> work sensibly when what "config" is told to do (say, remove a section)
> contradicts with having the named var with a given value?
> 
> I am wondering if this is worth fixing it in the first place.

IMHO, it needs to be fixed. This bug means "git -c foo=bar X" silently ignores the new value of "foo" if "X" is an external or a shell script. For something like "help" it is a minor inconvenience, but I can certainly see this causing data loss. Just in 30 seconds of grepping, I see that "git -c mergetool.keepbackup=true mergetool" would be silently ignored. Oops.

The environment is the only sensible way to pass this down, because we need to hit not just externals, but things like "git config" invocations from shell scripts. IOW, "git -c" really is about executing in a sub-environment that pretends that config is set. Obviously we would need to quote and unquote when using the environment as a transport (or do something horrible like making a temporary config file and pointing at it through the environment).

As for "git config", I would assume that "-c" parameters impact how config itself behaves, but have no bearing at all on actual configuration that it writes. I don't know if that is the case now, though.

-Peff
Previous: Junio C HamanoNext: Jeff King
Message 2 of 11 in “"git -c web.browser=w3m help -w help" still kicks firefox”
  1. Junio C HamanoAug 23, 2010
  2. Jeff KingAug 23, 2010
  3. Jeff KingAug 23, 2010
  4. 2/1 do not pass "git -c foo=bar" params to transport helpersJonathan Nieder, Aug 24, 2010
  5. Jeff KingAug 24, 2010
  6. Eric RaibleAug 24, 2010
  7. Junio C HamanoJul 1, 2024
  8. Alex RiesenAug 23, 2010
  9. Jeff KingAug 23, 2010
  10. Jonathan NiederAug 24, 2010
  11. Jeff KingAug 24, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.