summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Andreas Heiduk <asheiduk@gmail.com>2018-03-04 12:22:36 +0100
committerLibravatar Eric Wong <e@80x24.org>2018-04-05 06:55:02 +0000
commit9c18398f8b75f34c2251224c9443b4e1271ff9ff (patch)
treea5d33fce1eecaee036de5a0299d1927b0d350e92
parentGit 2.17 (diff)
downloadtgif-9c18398f8b75f34c2251224c9443b4e1271ff9ff.tar.xz
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>
-rw-r--r--Documentation/git-svn.txt5
-rwxr-xr-xgit-svn.perl3
2 files changed, 7 insertions, 1 deletions
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 <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
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 @@ 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)$/) {