Subject: Re: [PATCH] setup.c: set workdir when gitdir is not default

From: Max Kirillov <[email-masked]>
Date: Thu, 4 Sep 2014 17:20:15 +0300

On Thu, Sep 04, 2014 at 05:53:34PM +0700, Duy Nguyen wrote:
> On Thu, Sep 4, 2014 at 5:42 AM, Max Kirillov <[email-masked]> wrote:
>>         /* #0, #1, #5, #8, #9, #12, #13 */
>>         set_git_work_tree(".");
> 
> I wonder if we should setenv(GIT_WORK_TREE_) from inside this function
> instead. A quick glance over 'git grep set_git_work_tree' gives me the
> impression that it's safe to do so, and could cover future bugs
> similar to this.

Actually, I've been thinking about just the oppozite: remove
the setenv(GIT_DIR) from the discovery code at all. Because
backend performs the same discovery, and it would find the
same git directory itself. And leave environment variables to
be only set by user.

Currently environment variables are used for both purposes:
user can use them for hacky stuff, and git itself use them
for passing internal information. But, as we can see,
setting the variables can have bigger effect than expected.
When they are set by user, it's ok, let him try, fail and
set some else variable to adapt for his needs. But for git
code there is the discovery routines, lets just use them
always, it will cause a couple of extra (very few) IO calls
but should always give same (correct) result

-- 
Max