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

Re: [PATCH 3/3] tests: scrub environment of GIT_* variables

From
Jeff King <peff@peff.net>
Date
Mar 15, 2011, 07:37 UTC
Message-ID
<20110315073718.GB11754@sigill.intra.peff.net>
In-Reply-To
<20110315070445.GC29530@elie>
On Tue, Mar 15, 2011 at 02:04:45AM -0500, Jonathan Nieder wrote:
Show 8 quoted lines
> Variables from the inherited environment that are meaningful to git
> can break tests in undesirable ways.  For example,
> 
>  GIT_PAGER=more sh t5400-send-pack.sh -v -i
> 
> hangs.  So unset them in test-lib.
> 
> The variables to unset were found with 'git grep -F -e '"GIT_'.

Thanks. I fixed a few of these in a1231de recently, but was too lazy to do an exhaustive search. Your list and your method look sane to me.

Show 5 quoted lines
> Exception: leave the GIT_USE_LOOKUP variable from v1.5.6-rc0~134^2~1
> (sha1-lookup: more memory efficient search in sorted list of SHA-1,
> 2007-12-29) alone, since it is about trying an alternate
> implementation strategy rather than changing semantics and it can be
> useful to compare performance with and without it set.
Makes sense to me.
Show 5 quoted lines
> Longer term, it would be nice to just unset all GIT_* variables (with
> exceptions like GIT_TRACE and GIT_USE_LOOKUP) with some magic using
> the "env" command.  That is less straightforward than one might hope
> because the values of environment variables can contain embedded
> newlines and equal signs and "env -0" is not portable.

According to posix, just running "set" provides an unambiguous, parseable output. The problem is that it's actual shell, so it's a little tricky to parse (it's single-quoted, and you have to follow values across embedded newlines). So it's probably not worth the headache.

Having a big list of "clear these variables" is probably not the end of the world. If it breaks somebody's test run, they'll probably report it and we'll fix it. We don't add variables like this all that often.

-Peff
Previous: Jonathan NiederNext: Jonathan Nieder
Message 10 of 15 in “tests: unsetting variables that influence the outcome”
  1. 0/3 tests: unsetting variables that influence the outcomeJonathan Nieder, Mar 15, 2011
  2. 1/3 tests: protect against GIT_ATTR_NOGLOBAL from environmentJonathan Nieder, Mar 15, 2011
  3. 2/3 tests: suppress global and system gitattributesJonathan Nieder, Mar 15, 2011
  4. Jeff KingMar 15, 2011
  5. 2/3 Re: tests: suppress global and system gitattributesJonathan Nieder, Mar 15, 2011
  6. 1/3 gitattributes: drop support for GIT_ATTR_NOGLOBALJonathan Nieder, Mar 15, 2011
  7. 2/3 config: drop support for GIT_CONFIG_NOGLOBALJonathan Nieder, Mar 15, 2011
  8. 3/3 tests: suppress system gitattributesJonathan Nieder, Mar 15, 2011
  9. 3/3 tests: scrub environment of GIT_* variablesJonathan Nieder, Mar 15, 2011
  10. Jeff KingMar 15, 2011
  11. 0/2 tests: stop hard-coding the list of GIT_* vars to scrubJonathan Nieder, Mar 15, 2011
  12. 1/2 tests: stop worrying about obsolete environment variablesJonathan Nieder, Mar 15, 2011
  13. 2/2 tests: scrub environment of GIT_* variablesJonathan Nieder, Mar 15, 2011
  14. Junio C HamanoMar 15, 2011
  15. Jeff KingMar 15, 2011

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.