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

[PATCH v2 1/1] respect core.hooksPath, falling back to .git/hooks

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Sep 30, 2019, 09:45 UTC
Message-ID
<c101422936d03e26833a82ebeb9ff6f7a199753b.1569836703.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.361.v2.git.gitgitgadget@gmail.com>
From: Johannes Schindelin <Johannes.Schindelin@gmx.de>

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@gortan.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 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
Previous: Johannes Schindelin via GitGitGadgetNext: Johannes Schindelin via GitGitGadget
Message 12 of 24 in “git-gui: respect core.hooksPath, falling back to .git/hooks”
  1. 0/1 git-gui: respect core.hooksPath, falling back to .git/hooksJohannes Schindelin via GitGitGadget, Sep 26, 2019
  2. 1/1 respect core.hooksPath, falling back to .git/hooksJohannes Schindelin via GitGitGadget, Sep 26, 2019
  3. Pratyush YadavSep 26, 2019
  4. Bert WesargSep 27, 2019
  5. Pratyush YadavSep 27, 2019
  6. Johannes SchindelinSep 30, 2019
  7. Pratyush YadavOct 1, 2019
  8. Johannes SchindelinOct 1, 2019
  9. Pratyush YadavOct 4, 2019
  10. Johannes SchindelinOct 4, 2019
  11. 0/1 git-gui: respect core.hooksPath, falling back to .git/hooksJohannes Schindelin via GitGitGadget, Sep 30, 2019
  12. 1/1 respect core.hooksPath, falling back to .git/hooksJohannes Schindelin via GitGitGadget, Sep 30, 2019
  13. 0/1 git-gui: respect core.hooksPath, falling back to .git/hooksJohannes Schindelin via GitGitGadget, Oct 4, 2019
  14. 1/1 Fix gitdir e.g. to respect core.hooksPathJohannes Schindelin via GitGitGadget, Oct 4, 2019
  15. Pratyush YadavOct 8, 2019
  16. Johannes SchindelinOct 8, 2019
  17. 0/1 git-gui: respect core.hooksPath, falling back to .git/hooksJohannes Schindelin via GitGitGadget, Oct 8, 2019
  18. 1/1 Make gitdir work with worktrees, respect core.hooksPath, etcJohannes Schindelin via GitGitGadget, Oct 8, 2019
  19. Pratyush YadavOct 11, 2019
  20. Johannes SchindelinOct 12, 2019
  21. Pratyush YadavOct 13, 2019
  22. Johannes SchindelinOct 13, 2019
  23. Pratyush YadavOct 17, 2019
  24. Johannes SchindelinOct 14, 2019

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.