From: Johannes Sixt Date: Fri, 22 May 2026 08:25:28 GMT Subject: Re: [PATCH v2 03/11] git-gui: use --absolute-git-dir Message-ID: In-Reply-To: <20260520202411.108764-4-mlevedahl@gmail.com> Am 20.05.26 um 22:24 schrieb Mark Levedahl: > git-gui uses git rev-parse --git-dir to get the pathname of the > discovered git repository. The returned value can be relative, and is > '.' if the current directory is the top of the repository directory > itself. git-gui has code to change '.' to [pwd] in this case so that > subsequent logic runs. > > But, git rev-parse supports --absolute-git-dir from fac60b8925 > ("rev-parse: add option for absolute or relative path formatting", > 2020-12-13), and included in git 2.31. git-gui requires git >= 2.36, so > this more useful form is always available. Use --absolute-git-dir to > always get an absolute path, avoiding the need for other checks, and > delete the now unneeded code to fix a relative _gitdir. Very good! > > Signed-off-by: Mark Levedahl > --- > git-gui.sh | 11 ++--------- > 1 file changed, 2 insertions(+), 9 deletions(-) > > diff --git a/git-gui.sh b/git-gui.sh > index 4a736190a9..233c975786 100755 > --- a/git-gui.sh > +++ b/git-gui.sh > @@ -1146,7 +1146,7 @@ if {[catch { > && [catch { > # beware that from the .git dir this sets _gitdir to . > # and _prefix to the empty string Note that the comment above needs some adjustment as well. > - set _gitdir [git rev-parse --git-dir] > + set _gitdir [git rev-parse --absolute-git-dir] > set _prefix [git rev-parse --show-prefix] > } err]} { > load_config 1 > @@ -1155,7 +1155,7 @@ if {[catch { > exit 1 > } > if {[catch { > - set _gitdir [git rev-parse --git-dir] > + set _gitdir [git rev-parse --absolute-git-dir] > } err]} { > catch {wm withdraw .} > error_popup [strcat [mc "Unusable repo/worktree:"] " [pwd] "\n\n$err"] > @@ -1175,13 +1175,6 @@ if {$hashalgorithm eq "sha1"} { > exit 1 > } > > -# we expand the _gitdir when it's just a single dot (i.e. when we're being > -# run from the .git dir itself) lest the routines to find the worktree > -# get confused > -if {$_gitdir eq "."} { > - set _gitdir [pwd] > -} > - > if {![file isdirectory $_gitdir]} { > catch {wm withdraw .} > error_popup [strcat [mc "Git directory not found:"] "\n\n$_gitdir"] -- Hannes