[PATCH] git svn: read global+system config for clone+init
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Nov 14, 2009, 22:39 UTC
- Message-ID
- <20091114223930.GA10176@dcvr.yhbt.net>
- In-Reply-To
- <20091110130913.GR19475@poetic.cynic.net>
Curt Sampson <cjs@cynic.net> wrote:
Show 8 quoted lines
> When using "git svn fetch" or "git svn clone", the --authors-file > command line parameter does what it claims in the docs. Additionally, > for "git svn fetch", an svn.authorsfile configuration parameter in > ~/.gitconfig is used, if no command line argument is specified. However, > svn.authorsfile is ignored by "git svn clone", though the documentation > claims that clone "runs init and fetch." > > I have confirmed this bug is present in git versions 1.6.0.4 and 1.6.5.1.
Hi Curt,
Thanks for the bug report, the following patch should fix the bug. Also pullable from git://git.bogomips.org/git-svn
>From 1a30582b43e137e16b3486d83bb86b0eb090e13d Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net> Date: Sat, 14 Nov 2009 14:25:11 -0800 Subject: [PATCH] git svn: read global+system config for clone+init
Since $GIT_DIR does not exist when initializing new repositories, we can follow back to the global and system config files for git.
The logic for this was originally introduced when $GIT_DIR/config was the only config file git could read (back when "git config" was "git repo-config"), so the function is renamed to "read_git_config" instead of "read_repo_config".
Signed-off-by: Eric Wong <normalperson@yhbt.net> --- git-svn.perl | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl index 27fbe30..ea922ac 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -274,7 +274,7 @@ unless ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) { my %opts = %{$cmd{$cmd}->[2]} if (defined $cmd); -read_repo_config(\%opts); +read_git_config(\%opts); if ($cmd && ($cmd eq 'log' || $cmd eq 'blame')) { Getopt::Long::Configure('pass_through'); } @@ -1390,8 +1390,7 @@ sub load_authors { } # convert GetOpt::Long specs for use by git-config -sub read_repo_config { - return unless -d $ENV{GIT_DIR}; +sub read_git_config { my $opts = shift; my @config_only; foreach my $o (keys %$opts) {
-- Eric Wong