Re: Problem with environment of hook execution when git is run with --work-tree / --git-dir
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 27, 2017, 01:16 UTC
- Message-ID
- <xmqqtvxgfrlp.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <CAEDDsWdXQ1+UukvbfRoTPzY3Y9sOaxQ7nh+qL_Mcuy3=XKKh7w@mail.gmail.com>
Michael Sloan <mgsloan@gmail.com> writes:
Show 12 quoted lines
> So what's the problem with this choice of environment variables? > Well, the problem is that if PWD is changed during the execution of > the script, then GIT_WORK_TREE and GIT_DIR will no longer work > properly. For example, if the pre-commit hook is > > #!/bin/sh > cd some-dir > git status > > This will fail with > > Not a git repository: '.dotfiles-git'
That is to be expected. It's up to the script to make them absolute if it cannot cope with relative paths.
Show 5 quoted lines
> There is another detail here, which is that when --git-dir / > --work-tree is not specified, the no GIT_WORK_TREE / GIT_DIR > environment variable is set. This means that in this case, changing > PWD in the hook will work fine as long as the search for .git will > find the right one.
That also is working as designed.