Bug: "git svn clone" does not honor svn.authorsfile setting

8 messages, 5 authors, 2016-06-15 · open the first message on its own page

Bug: "git svn clone" does not honor svn.authorsfile setting

From: Curt Sampson <hidden>
Date: 2016-06-15 22:47:42

[Note that I've set Reply-to to both myself and this list, as I am not
subscribed to the list. Broken list software and MUAs sometimes don't
honor this. Check to whom you're replying!]

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.

cjs
-- 
Curt Sampson       [off-list ref]        +81 90 7737 2974
           Functional programming in all senses of the word:
                   http://www.starling-software.com

Re: Bug: "git svn clone" does not honor svn.authorsfile setting

From: Sverre Rabbelier <hidden>
Date: 2016-06-15 22:47:42

Heya,

On Tue, Nov 10, 2009 at 14:09, Curt Sampson [off-list ref] wrote:
[Note that I've set Reply-to to both myself and this list, as I am not
subscribed to the list. Broken list software and MUAs sometimes don't
honor this. Check to whom you're replying!]
Please don't. It is custom on the git list to always keep those who
are involved in the conversation cc-ed, adding a Reply-to makes this
difficult.

-- 
Cheers,

Sverre Rabbelier

Re: Bug: "git svn clone" does not honor svn.authorsfile setting

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:47:42

Sverre Rabbelier [off-list ref] writes:
On Tue, Nov 10, 2009 at 14:09, Curt Sampson [off-list ref] wrote:
quoted
[Note that I've set Reply-to to both myself and this list, as I am not
subscribed to the list. Broken list software and MUAs sometimes don't
honor this. Check to whom you're replying!]
Please don't. It is custom on the git list to always keep those who
are involved in the conversation cc-ed, adding a Reply-to makes this
difficult.
I've seen people use Mail-Followup-To to cause grumbles, but Reply-To
seems worse in a sense.  If I wanted to respond _privately_ to Curt, and
said "Reply", the message would have been broadcast to the public, and I
am using a MUA that is *not* broken and honors this setting.

Not good.

Re: Bug: "git svn clone" does not honor svn.authorsfile setting

From: Sam Vilain <hidden>
Date: 2016-06-15 22:47:42

Curt Sampson wrote:
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.
  
Does moving the line:

command_oneline('config', 'svn.authorsfile', $_authors) if $_authors;

Immediately prior to the "fetch_all" line before it fix the problem? It
looks strange for it to set it afterwards...

Sam

Re: Bug: "git svn clone" does not honor svn.authorsfile setting

From: Curt Sampson <hidden>
Date: 2016-06-15 22:47:43

On 2009-11-10 14:24 +0100 (Tue), Sverre Rabbelier wrote:
Please don't. It is custom on the git list to always keep those who
are involved in the conversation cc-ed, adding a Reply-to makes this
difficult.
If you're running your list without munging Reply-to, congratulations
to you. I'll avoid it from now on on this list. However, it's the case
that for many, many lists out there, if I did not include myself in a
Reply-to, the list would set the Reply-to to the list, and most MUAs
would automatically exclude me from the reply.

cjs
-- 
Curt Sampson       [off-list ref]        +81 90 7737 2974
           Functional programming in all senses of the word:
                   http://www.starling-software.com

Re: Bug: "git svn clone" does not honor svn.authorsfile setting

From: Curt Sampson <hidden>
Date: 2016-06-15 22:47:43

On 2009-11-11 17:26 +1300 (Wed), Sam Vilain wrote:
Does moving the line:

command_oneline('config', 'svn.authorsfile', $_authors) if $_authors;

Immediately prior to the "fetch_all" line before it fix the problem? It
looks strange for it to set it afterwards...
That looks plausible to me, having had a quick look at the source, but
keep in mind I've already spent about 45 minutes debugging this problem
and figuring out how to file a bug report. I don't really have the time
at the moment to learn how to build and test new versions of git, unless
someone wants to walk me through it. I expect it would take rather less
time for someone in the know just to do the test.

cjs
-- 
Curt Sampson       [off-list ref]        +81 90 7737 2974
           Functional programming in all senses of the word:
                   http://www.starling-software.com

[PATCH] git svn: read global+system config for clone+init

From: Eric Wong <hidden>
Date: 2016-06-15 22:47:43

Curt Sampson [off-list ref] wrote:
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 <redacted>
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 <redacted>
---
 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

Re: [PATCH] git svn: read global+system config for clone+init

From: Eric Wong <hidden>
Date: 2016-06-15 22:47:43

Eric Wong [off-list ref] wrote:
Hi Curt,

Thanks for the bug report, the following patch should fix
the bug.  Also pullable from git://git.bogomips.org/git-svn
It took me a while (possibly due to low caffeine levels) to make a
failing (automated) test case, but I've also pushed this out as
well.
From e2f8617b266e320fd58ab584cae2ebe9906daaac Mon Sep 17 00:00:00 2001
From: Eric Wong <redacted>
Date: Sat, 14 Nov 2009 14:43:20 -0800
Subject: [PATCH] git svn: add authorsfile test case for ~/.gitconfig

The commit for:
    git svn: read global+system config for clone+init

Initially lacked a test case because the author was unable to
reproduce it under his test environment, this adds it.

Signed-off-by: Eric Wong <redacted>
---
 t/t9130-git-svn-authors-file.sh |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/t/t9130-git-svn-authors-file.sh b/t/t9130-git-svn-authors-file.sh
index f5abdb3..134411e 100755
--- a/t/t9130-git-svn-authors-file.sh
+++ b/t/t9130-git-svn-authors-file.sh
@@ -91,4 +91,27 @@ test_expect_success 'fetch continues after authors-file is fixed' '
 	)
 	'
 
+test_expect_success 'fresh clone with svn.authors-file in config' '
+	(
+		rm -r "$GIT_DIR" &&
+		test x = x"$(git config svn.authorsfile)" &&
+		HOME="`pwd`" &&
+		export HOME &&
+		test_config="$HOME"/.gitconfig &&
+		unset GIT_CONFIG_NOGLOBAL &&
+		unset GIT_DIR &&
+		unset GIT_CONFIG &&
+		git config --global \
+		  svn.authorsfile "$HOME"/svn-authors &&
+		test x"$HOME"/svn-authors = x"$(git config svn.authorsfile)" &&
+		git svn clone "$svnrepo" gitconfig.clone &&
+		cd gitconfig.clone &&
+		nr_ex=$(git log | grep "^Author:.*example.com" | wc -l) &&
+		nr_rev=$(git rev-list HEAD | wc -l) &&
+		test $nr_rev -eq $nr_ex
+	)
+'
+
+test_debug 'GIT_DIR=gitconfig.clone/.git git log'
+
 test_done
-- 
Eric Wong
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help