git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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.
Previous: Michael SloanNext: Michael Sloan
Message 2 of 3 in “Problem with environment of hook execution when git is run with --work-tree / --git-dir”
  1. Michael SloanNov 26, 2017
  2. Junio C HamanoNov 27, 2017
  3. Michael SloanNov 27, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.