From: Junio C Hamano Date: Wed, 09 May 2012 19:43:33 GMT Subject: Re: [PATCH 08/19] completion: use $__git_dir instead of $(__gitdir) Message-ID: <7vaa1hrvh6.fsf@alter.siamese.dyndns.org> In-Reply-To: <1336524290-30023-9-git-send-email-szeder@ira.uka.de> SZEDER Gábor writes: > + __gitdir >/dev/null If this becomes the only call site of __gitdir helper function (and that was the way I read the log message), it would be sane to rename it to a more descriptive __setup_dash_dash_git_dir function and lose the need to redirect its output, no? > @@ -962,7 +967,8 @@ __git_aliases () > # __git_aliased_command requires 1 argument > __git_aliased_command () > { > - local word cmdline=$(git --git-dir="$(__gitdir)" \ > + __gitdir >/dev/null > + local word cmdline=$(git --git-dir="$__git_dir" \ > config --get "alias.$1") > for word in $cmdline; do > case "$word" in Now this worries me. The way I read 07/19 was that the local __git_dir="" declarations in __git_ps1 and __git were what protected this whole machinery to protect us against surprises from user doing "cd" between interactive commands, but you have the same __gitdir call to set up the global $__git_dir variable there, without the initialization to "". Having to have a call to __gitdir seems to indicate to me that you cannot assume that the other initialization sites may not have been called before we get to this point. Then why is 'local __git_dir=""' unneeded here?