Subject: Re: [BUG] git svn accepts to clone an empty SVN repo, but then fails to dcommit

From: Eric Wong <[email-masked]>
Date: Tue, 29 Apr 2008 00:15:52 -0700

Matthieu Moy <[email-masked]> wrote:
> Hi,
> 
> All is in the title ;-).
> 
> The command
> 
>   git svn clone (URL of an empty SVN repo here)
> 
> works, creates an empty git repository. I can perform the initial
> commit there, but then, "git svn dcommit" says :
> 
> Use of uninitialized value in concatenation (.) or string at /home/moy/local/usr/bin/git-svn line 414.
> Committing to  ...
> Unable to determine upstream SVN information from HEAD history
> 
> I guess a correct management of the initial commit in git-svn would be
> hard to implement, but at least, the error message can be improved.
> First step is something like the patch below, and better would be for
> "git svn clone" to warn that it won't be able to do much with the
> cloned repo.

Thanks Matthieu,

It shouldn't be *that* hard to implement being able to start an empty
SVN repository from scratch, actually.  Of course, there are about
a billion other things people have been asking for in git-svn that I
keep forgetting to implement.

Acked-by: Eric Wong <[email-masked]>

> diff --git a/git-svn.perl b/git-svn.perl
> index b864b54..9a70c1e 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -410,10 +410,12 @@ sub cmd_dcommit {
>         $head ||= 'HEAD';
>         my @refs;
>         my ($url, $rev, $uuid, $gs) = working_head_info($head, \@refs);
> -       print "Committing to $url ...\n";
> +       if ($url) {
> +               print "Committing to $url ...\n";
> +       }
>         unless ($gs) {
>                 die "Unable to determine upstream SVN information from ",
> -                   "$head history\n";
> +                   "$head history.\nPerhaps the repository is empty.";
>         }
>         my $last_rev;
>         my ($linear_refs, $parents) = linearize_history($gs, \@refs);
> 
-- 
Eric Wong