git-svn: search --authors-prog in PATH too

In 36db1eddf9 ("git-svn: add --authors-prog option", 2009-05-14) the path
to authors-prog was made absolute because git-svn changes the current
directory in some situations. This makes sense if the program is part of
the repository but prevents searching via $PATH.

The old behaviour is still retained, but if the file does not exists, then
authors-prog is searched for in $PATH as any other command.

Signed-off-by: Andreas Heiduk <asheiduk@gmail.com>
Signed-off-by: Eric Wong <e@80x24.org>
This commit is contained in:
Andreas Heiduk 2018-03-04 12:22:36 +01:00 коммит произвёл Eric Wong
Родитель 468165c1d8
Коммит 9c18398f8b
2 изменённых файлов: 7 добавлений и 1 удалений

Просмотреть файл

@ -657,6 +657,11 @@ config key: svn.authorsfile
expected to return a single line of the form "Name <email>",
which will be treated as if included in the authors file.
+
Due to historical reasons a relative 'filename' is first searched
relative to the current directory for 'init' and 'clone' and relative
to the root of the working tree for 'fetch'. If 'filename' is
not found, it is searched like any other command in '$PATH'.
+
[verse]
config key: svn.authorsProg

Просмотреть файл

@ -374,7 +374,8 @@ version() if $_version;
usage(1) unless defined $cmd;
load_authors() if $_authors;
if (defined $_authors_prog) {
$_authors_prog = "'" . File::Spec->rel2abs($_authors_prog) . "'";
my $abs_file = File::Spec->rel2abs($_authors_prog);
$_authors_prog = "'" . $abs_file . "'" if -x $abs_file;
}
unless ($cmd =~ /^(?:clone|init|multi-init|commit-diff)$/) {