Subject: Re: Problem with --work-tree

From: Michael J Gruber <[email-masked]>
Date: Mon, 18 Aug 2008 11:32:28 +0200

Сергей Шарыбин venit, vidit, dixit 16.08.2008 23:14:
> Hi,
> 
> I've got the following problem. I've got a GIT repo at 
> /home/nazgul/src/test-work-tree and I've got some changed files in this 
> repo. I want to see this changes when a `git` runs outside this 
> directory. I tried to run `git 
> --git-dir=/home/nazgul/src/test-work-tree/.git 
> --work-tree=/home/nazgul/src/test-work-tree diff-index --name-status 
> HEAD` from my home directory. In such way diff-index tells me that all 
> files from my repo has been deleted. I think it is because this command 
> does not understand a --work-tree parameter. And I saw the same problem 
> with a git diff command (something like that: git 
> --git-dir=/home/nazgul/src/test-work-tree/.git 
> --work-tree=/home/nazgul/src/test-work-tree diff).
> 
> I use git version debian.1.5.6.3.1
> 
> Is it my mistake or it is bugs in a GIT?

Working from a path outside the work tree is broken (read: not meeting
the obvious/naive meaning of the --work-tree option and core.worktree
setting) in many places, unfortunately. Some commands work with
--git-dir and the like, but some just don't. I use a shell alias which
cds into the work tree first. This works with everything except for some
stubborn tcl/tk scripts doing their own thing (gui...) in case git-dir
and work-tree are not in the standard places (.git, .).

Michael