From 4f7ee209e1e840d8ae3af24eab886d42edb55d91 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 21 Mar 2023 23:07:19 +0000 Subject: admin: ensure resolved GIT_DIR is absolute We'll also support the $base arg of File::Spec->rel2abs since it should make codesearch indexing easier. --- lib/PublicInbox/Admin.pm | 4 +++- lib/PublicInbox/Config.pm | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/Admin.pm b/lib/PublicInbox/Admin.pm index b34f2256..abfcbb9c 100644 --- a/lib/PublicInbox/Admin.pm +++ b/lib/PublicInbox/Admin.pm @@ -82,7 +82,9 @@ sub resolve_git_dir { my $dir = do { local $/; <$fh> }; close $fh or die "error in @$cmd (cwd:${\($cd // '.')}): $?\n"; chomp $dir; - rel2abs_collapsed($dir eq '.' ? ($cd // $dir) : $dir); + # --absolute-git-dir requires git v2.13.0+ + $dir = rel2abs_collapsed($dir, $cd) if $dir !~ m!\A/!; + $dir; } # for unconfigured inboxes diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm index 4065b256..e095ecd1 100644 --- a/lib/PublicInbox/Config.pm +++ b/lib/PublicInbox/Config.pm @@ -371,7 +371,7 @@ sub git_bool { # is sufficient and doesn't leave "/.." or "/../" sub rel2abs_collapsed { require File::Spec; - my $p = File::Spec->rel2abs($_[-1]); + my $p = File::Spec->rel2abs(@_); return $p if substr($p, -3, 3) ne '/..' && index($p, '/../') < 0; require Cwd; Cwd::abs_path($p); -- cgit v1.2.3-24-ge0c7