Subject: Re: [PATCH 3/3] setup: always honor GIT_WORK_TREE and core.worktree

From: Maaartin <[email-masked]>
Date: Wed, 19 Jan 2011 21:35:16 +0100

On 11-01-19 20:24, Junio C Hamano wrote:
> Maaartin <[email-masked]> writes:
> 
>> On 11-01-19 13:42, Jonathan Nieder wrote:
>>> Unfortunately the existence of GIT_WORK_TREE makes it tempting to
>>> use without setting GIT_DIR.
>>
>> Maybe I'm asking nonsense, but why should I always use both? On the
>> command line, I either cd to my (alternate) working tree and use GIT_DIR
>> only or the other way round.
> 
> As long as you were at the root level of these two sets of "working trees",
> you don't need GIT_WORK_TREE at all.

Actually I did mostly something like

git --work-tree /tmp/somewhere checkout somebranch -- .
  && winmerge . /tmp/somewhere

at root of my normal work tree as a poor man's replacement for

git difftool somebranch

This is probably no good idea as it mixes up the index. Sorry for
misusing this thread, but a side question: Should I specify
GIT_INDEX_FILE or is there a better way?

Btw., I see that GIT_INDEX_FILE is relative to the work tree instead of
to the git dir. I find it strange as it's normally a part of the git dir.

> We originally had only GIT_DIR and people who wanted to use a working tree
> without an embedded .git (hence having to use GIT_DIR) complained that
> they cannot work from subdirectories while cd'ing around, because you
> declare that you are at the root of your working tree by using GIT_DIR
> (naturally, there is no discovery of .git so we won't know where the root
> is).  GIT_WORK_TREE was added to augment the mechanism to allow them to
> specify where their root is, so that they can set both and then chdir
> around inside their working tree.

That's nice.