diff options
-rw-r--r-- | lib/PublicInbox/Admin.pm | 4 | ||||
-rw-r--r-- | lib/PublicInbox/Config.pm | 2 | ||||
-rwxr-xr-x | script/public-inbox-convert | 2 |
3 files changed, 5 insertions, 3 deletions
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); diff --git a/script/public-inbox-convert b/script/public-inbox-convert index 42955a48..5f4f2020 100755 --- a/script/public-inbox-convert +++ b/script/public-inbox-convert @@ -75,7 +75,7 @@ if ($opt->{'index'}) { } local %ENV = (%$env, %ENV) if $env; my $new = { %$old }; -$new->{inboxdir} = $cfg->rel2abs_collapsed($new_dir); +$new->{inboxdir} = PublicInbox::Config::rel2abs_collapsed($new_dir); $new->{version} = 2; $new = PublicInbox::InboxWritable->new($new, { nproc => $opt->{jobs} }); $new->{-no_fsync} = 1 if !$opt->{fsync}; |