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 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
Attachment:
signature.asc
Description: This is a digitally signed message part