threads / discuss / 15041

Problem with --work-tree

Subject: Problem with --work-tree

## tl;dr

3 messages between Aug 16, 2008 and Aug 18, 2008.

replies: 2people: 3as markdown or json

Сергей Шарыбин· Aug 16, 2008, 21:14 UTC · lore
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?
-- 
With best regards, Sergey I. Sharybin
Nguyen Thai Ngoc Duy· Aug 17, 2008, 05:24 UTC · re: Сергей Шарыбин · lore

Re: Problem with --work-tree

On 8/17/08, Сергей Шарыбин <nazgul@school9.perm.ru> wrote:
Show 14 quoted lines
> 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 think it's a bug. For now use "git status" instead.
-- 
Duy
Michael J Gruber· Aug 18, 2008, 09:32 UTC · re: Сергей Шарыбин · lore

Re: Problem with --work-tree

Сергей Шарыбин venit, vidit, dixit 16.08.2008 23:14:
Show 18 quoted lines
> 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

← back to recent threads