Historically the environment variables that affect the behaviour of Git have been the least well designed part of the system, as they were haphazardly added as the authors of new features find a need to "tweak" and use of getenv() the simplest way to implement. Although many use git_env_bool() to implement the parsing of a Boolean value, some use handcrafted "ask atoi() to see if it yields 0", some use "mere existence is sufficient to signal true". Here is a result of my quick audit of environment variables mentioned in "git help git". * GIT_SSL_NO_VERIFY was mentioned in description of http.sslVerify but there was no description. * Many that used git_env_bool() explained acceptable "true" randomly as '1' or 'yes'. Introduce and explain the concept of "Boolean environment variable" and mark them as such. * GIT_FLUSH is an oddball that used atoi() and not git_env_bool(); leave a NEEDSWORK: comment to fix it later. The last two are "I found them questionable while I was reviewing the description" and are not about Boolean variables. Junio C Hamano (5): environ: document GIT_SSL_NO_VERIFY environ: explain Boolean environment variables environ: GIT_FLUSH should be made a usual Boolean environ: simplify description of GIT_INDEX_FILE environ: GIT_INDEX_VERSION affects not just a new repository Documentation/git.txt | 43 +++++++++++++++++++++++++++---------------- write-or-die.c | 1 + 2 files changed, 28 insertions(+), 16 deletions(-) -- 2.37.3-780-gd940517dcb