From 9c18398f8b75f34c2251224c9443b4e1271ff9ff Mon Sep 17 00:00:00 2001 From: Andreas Heiduk Date: Sun, 4 Mar 2018 12:22:36 +0100 Subject: [PATCH] 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 Signed-off-by: Eric Wong --- Documentation/git-svn.txt | 5 +++++ git-svn.perl | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt index 636e09048e..b858374649 100644 --- a/Documentation/git-svn.txt +++ b/Documentation/git-svn.txt @@ -657,6 +657,11 @@ config key: svn.authorsfile expected to return a single line of the form "Name ", 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 diff --git a/git-svn.perl b/git-svn.perl index a6b6c3e40c..050f2a36f4 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -374,7 +374,8 @@ sub term_init { 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)$/) {