Thread (3 messages) 3 messages, 3 authors, 2016-06-15

Re: [PATCH] Fix wrong failures in config test

flat view

From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:50:21

Possibly related (same subject, not in this thread)

Ingo Brückl wrote:
As Jonathan and Junio stated,
quoted
 envvar=value git command
quoted
 GIT_CONFIG=other-config git config anwohner.park ausweis
shouldn't affect the environment of the tests.

Unfortunately, I had a shell alias function named git that interfered. In
fact it passes to the git program (command git "$@") but sadly does not know
about the newly set PATH and (still inexplicably to me) makes the variable
set.
For what it's worth, here's what POSIX[1] has to say:

	When a given simple command is required to be executed [...] the
	following expansions, assignments, and redirections shall all be
	performed from the beginning of the command text to the end:
[...]
	If no command name results, variable assignments shall affect
	the current execution environment. Otherwise, the variable
	assignments shall be exported for the execution environment of
	the command and shall not affect the current execution
	environment (except for special built-ins). 

I am guessing the expansion of your 'git' alias starts with a special
builtin.  For the future, it is probably best to guard settings for
interactive use with

	if test "${PS1+set}"
	then
		CDPATH=something
		alias foo=bar
		alias baz=qux
		...
	fi

or even better,

	case $- in
	*i*)
		CDPATH=something
		...
	esac

Thanks for explaining.
Jonathan

[1] http://unix.org/2008edition/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help