From: Johannes Schindelin <Johannes.Schindelin@xxxxxx> Since v2.9.0, Git knows about the config variable core.hookspath that allows overriding the path to the directory containing the Git hooks. Since v2.10.0, the `--git-path` option respects that config variable, too, so we may just as well use that command. For Git versions older than v2.5.0 (which was the first version to support the `--git-path` option for the `rev-parse` command), we simply fall back to the previous code. An original patch handled only the hooksPath setting (as the title of this commit message suggests), however, during the code submission it was deemed better to fix all call to the `gitdir` function. With this change, we spawn `git rev-parse --git-path [...]` 13 times during Git GUI's startup. This fixes https://github.com/git-for-windows/git/issues/1755 Initial-patch-by: Philipp Gortan <philipp@xxxxxxxxxx> Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- git-gui.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/git-gui.sh b/git-gui.sh index fd476b6999..b2f0e78077 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -202,7 +202,11 @@ proc gitdir {args} { if {$args eq {}} { return $_gitdir } - return [eval [list file join $_gitdir] $args] + if {[package vcompare $::_git_version 2.5.0] >= 0} { + return [git rev-parse --git-path [eval [list file join] $args]] + } else { + return [eval [list file join $_gitdir] $args] + } } proc gitexec {args} { -- gitgitgadget