From: Gabriel Nützi Date: Fri, 20 Sep 2024 10:42:13 GMT Subject: Re: Bug: `git init` with hook `reference-transaction` running `git rev-parse --git-dir` fails Message-ID: <6102c928cb2f2e9afbc93e89737556c9d66b68eb.camel@gmail.com> In-Reply-To: <0084cc18b6d90ba14849a7f788939f4a1d0d61c9.camel@gmail.com> The same happens with `git rev-parse --git-comon-dir` and `git config a.a "hello"` (which might be ok, since the config file is not yet setup at this point...) On Fri, 2024-09-20 at 12:07 +0200, Gabriel Nützi wrote: > Thank you for filling out a Git bug report! > Please answer the following questions to help us understand your issue. > > What did you do before the bug happened? (Steps to reproduce your > issue) > > I set `git config --global core.hooksPath ~/myhooks` and placed a > `reference-transaction` hook in `~/myhooks/reference-transaction` > with the content: > > ```shell > #!/usr/bin/env bash > > set -e > echo "$GIT_DIR" > git rev-parse --absolute-git-dir > ``` > > then I ran > > ```shell > mkdir ~/test && cd test > git init > ``` > > What did you expect to happen? (Expected behavior) > > The Git repo `~/test` should have been initialized (and the hook > `reference-transaction` would have passed successfully.) > > > What happened instead? (Actual behavior) > > The hook `reference-transaction` crashes since `git rev-parse -- > absolute-git-dir` with > ``` > failed: not a git repository: ... > ``` > > What's different between what you expected and what actually happened? > > The documentation says that `git rev-parse --absolute-git-dir` inside > the `reference-transaction` hooks read "$GIT_DIR" if defined (which is > defined!) so the `reference-transaction` should have passed. I assume > that hooks should be executed on properly initialized repositories, > right? Therefore I do not understand why `git rev-parse --absolute-git- > dir` fails -> Bug? > > Anything else you want to add: > > This came up with `Githooks` hooks manager > [https://github.com/gabyx/Githooks](https://github.com/gabyx/Githooks) where we use this command > to locate the current Git dir... > > Please review the rest of the bug report below. > You can delete any lines you don't wish to share. > > > [System Info] > git version: > git version 2.46.0 > cpu: x86_64 > no commit associated with this build > sizeof-long: 8 > sizeof-size_t: 8 > shell-path: /nix/store/izpf49b74i15pcr9708s3xdwyqs4jxwl-bash- > 5.2p32/bin/bash > libcurl: 8.9.1 > OpenSSL: OpenSSL 3.0.14 4 Jun 2024 > zlib: 1.3.1 > uname: Linux 6.6.45 #1-NixOS SMP PREEMPT_DYNAMIC Sun Aug 11 10:47:28 > UTC 2024 x86_64 > compiler info: gnuc: 13.3 > libc info: glibc: 2.39 > $SHELL (typically, interactive shell): /run/current-system/sw/bin/zsh >