threads / discuss / 43504

Re: Problems with git-svn authors file

Subject: Re: Problems with git-svn authors file

## tl;dr

4 messages between Dec 10, 2006 and Dec 12, 2006.

replies: 3people: 3as markdown or json

Nicolas Vilz· Dec 10, 2006, 17:26 UTC · lore

Problems with git-svn authors file

hello,

i tried to use git-svn with author-files and got stuck with following error message:

Use of uninitialized value in hash element at /usr/bin/git-svn line
2952.
Use of uninitialized value in concatenation (.) or string at
/usr/bin/git-svn line 2953.
Author:  not defined in .git/info/svn-authors file
512 at /usr/bin/git-svn line 457
        main::fetch_lib() called at /usr/bin/git-svn line 328
        main::fetch() called at /usr/bin/git-svn line 187

my svn-authors file looks like this: ---->8----------------- username = Real Name <email@address> ---->8----------------- It is placed in .git/info/svn-authors and is configured via svn.authorsfile. I tried to dig in the code and it says at line 2952 if there is an $_author variable defined and no $users{$author}, then die with that message...

above function load_authors i have found
# '<svn username> = real-name <email address>' mapping based on git-svnimport:

now i am a bit confused, because the manual says, the svn-authors file looks like my file above and here it sounds like

<svn username> = real-name <email address>
is the real syntax for that file...

If i ommit the -A or --authors-file= parameter (or unset the svn.authorsfile config-parameter) while git-svn fetch, afterwards in gitk --all, there is only the svn-username and the revision-uuid.

Am i doing something wrong?
Sincerly
Andy Parkins· Dec 11, 2006, 09:04 UTC · re: Nicolas Vilz · lore
On Sunday 2006 December 10 17:26, Nicolas Vilz wrote:
Show 8 quoted lines
> Use of uninitialized value in hash element at /usr/bin/git-svn line
> 2952.
> Use of uninitialized value in concatenation (.) or string at
> /usr/bin/git-svn line 2953.
> Author:  not defined in .git/info/svn-authors file
> 512 at /usr/bin/git-svn line 457
>         main::fetch_lib() called at /usr/bin/git-svn line 328
>         main::fetch() called at /usr/bin/git-svn line 187

I've had errors like this. For certain repositories (possibly very old ones) there is an unusual, empty, revision 0. I got around the problem by telling git-svn to start at revision 1. Everything seemed fine after that.

$ git-svn fetch -r1
I don't know if that will be your fix, but it's worth a try.
Andy
-- 
Dr Andy Parkins, M Eng (hons), MIEE
Nicolas Vilz· Dec 11, 2006, 11:44 UTC · re: Andy Parkins · lore
On Mon, Dec 11, 2006 at 09:04:52AM +0000, Andy Parkins wrote:
Show 15 quoted lines
> On Sunday 2006 December 10 17:26, Nicolas Vilz wrote:
> 
> > Use of uninitialized value in hash element at /usr/bin/git-svn line
> > 2952.
> > Use of uninitialized value in concatenation (.) or string at
> > /usr/bin/git-svn line 2953.
> > Author:  not defined in .git/info/svn-authors file
> > 512 at /usr/bin/git-svn line 457
> >         main::fetch_lib() called at /usr/bin/git-svn line 328
> >         main::fetch() called at /usr/bin/git-svn line 187
> 
> I've had errors like this.  For certain repositories (possibly very old ones) 
> there is an unusual, empty, revision 0.  I got around the problem by telling 
> git-svn to start at revision 1.  Everything seemed fine after that.
> 

Well it is a fresh repository. And you are right, there is an empty revision 0. I didn't recognize that is was the revision 0 I got stuck with. But it is obvious now :)

> $ git-svn fetch -r1
> 
> I don't know if that will be your fix, but it's worth a try.
That fixed it, thx.
Eric Wong· Dec 12, 2006, 04:25 UTC · re: Nicolas Vilz · lore
Nicolas Vilz <niv@iaglans.de> wrote:
Show 13 quoted lines
> hello,
> 
> i tried to use git-svn with author-files and got stuck with following
> error message:
> 
> Use of uninitialized value in hash element at /usr/bin/git-svn line
> 2952.
> Use of uninitialized value in concatenation (.) or string at
> /usr/bin/git-svn line 2953.
> Author:  not defined in .git/info/svn-authors file
> 512 at /usr/bin/git-svn line 457
>         main::fetch_lib() called at /usr/bin/git-svn line 328
>         main::fetch() called at /usr/bin/git-svn line 187
> Am i doing something wrong?
No, this is just a bug in git-svn.

After the following patch, you should be able to use -------------------------------------------- (no author) = real-name <email address> -------------------------------------------- in your authors file.

-- 
Eric Wong

From b40e14605809b0b1501002a333fbd680913f127f Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Mon, 11 Dec 2006 20:22:29 -0800
Subject: [PATCH] git-svn: correctly handle "(no author)" when using an authors file

The low-level parts of the SVN library return NULL/undef for
author-less revisions, whereas "(no author)" is a (svn) client
convention.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
 git-svn.perl |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 1f8a3b0..17ebb77 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -2948,7 +2948,8 @@ sub libsvn_log_entry {
 	my ($Y,$m,$d,$H,$M,$S) = ($date =~ /^(\d{4})\-(\d\d)\-(\d\d)T
 					 (\d\d)\:(\d\d)\:(\d\d).\d+Z$/x)
 				or die "Unable to parse date: $date\n";
-	if (defined $_authors && ! defined $users{$author}) {
+	if (defined $author && length $author > 0 &&
+	    defined $_authors && ! defined $users{$author}) {
 		die "Author: $author not defined in $_authors file\n";
 	}
 	$msg = '' if ($rev == 0 && !defined $msg);
-- 

← back to recent threads