]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-gui: ensure own version of git-gui--askpass is used
authorCarlo Marcelo Arenas Belón <carenas@gmail.com>
Thu, 31 Jul 2025 08:06:28 +0000 (01:06 -0700)
committerJohannes Sixt <j6t@kdbg.org>
Mon, 4 Aug 2025 16:25:59 +0000 (18:25 +0200)
When finding a location for the askpass helper, git will be asked
for its exec path, but if that git is not the same that called
git-gui then we might mistakenly point to its helper instead.

Assume that git-gui and the helper are colocated to derive its
path instead.

This is specially useful in macOS where a broken version of that
helper is provided by the system git.

[j6t: move directory to variable to help in-flight topics]

Suggested-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
git-gui.sh

index 8bb121db4f5f8c12b780aa65c0f00a658ce9f924..f28a23f844cf96fc56c02cf36d67db33bbcb4160 100755 (executable)
@@ -1113,9 +1113,11 @@ citool {
 ## execution environment
 
 # Suggest our implementation of askpass, if none is set
+set argv0dir [file dirname [file normalize $::argv0]]
 if {![info exists env(SSH_ASKPASS)]} {
-       set env(SSH_ASKPASS) [file join [git --exec-path] git-gui--askpass]
+       set env(SSH_ASKPASS) [file join $argv0dir git-gui--askpass]
 }
+unset argv0dir
 
 ######################################################################
 ##