Git/SVN: die when there is no commit metadata

When passing a bad --trunk option to `git svn clone`, like for example the same URL that we are cloning: C:\Windows\system32>git svn clone https://mycompany.svn.beanstalkapp.com/myproject --no-metadata -A c:\temp\svn_to_git_users.txt --trunk=https://mycompany.svn.beanstalkapp.com/myproject --tags=https://mycompany.svn.beanstalkapp.com/myproject/tags --branches=https://mycompany.svn.beanstalkapp.com/myproject/branches c:\code\Git_myproject One gets an "Use of uninitialized value $u in substitution (s///)" error: [...] W: +empty_dir: branches/20080918_DBDEPLOY/vendor/src/csharp/MS WCSF Contrib/src/Services W: +empty_dir: branches/20080918_DBDEPLOY/vendor/src/csharp/RealWorldControls/References r530 = c276e3b039d8e38759c6fb17443349732552d7a2 (refs/remotes/origin/trunk) Found possible branch point: https://mycompany.svn.beanstalkapp.com/myproject/trunk => https://mycompany.svn.beanstalkapp.com/myproject/branches/20080918_DBDEPLOY, 529 Use of uninitialized value $u in substitution (s///) at /mingw32/share/perl5/site_perl/Git/SVN.pm line 101. Use of uninitialized value $u in concatenation (.) or string at /mingw32/share/perl5/site_perl/Git/SVN.pm line 101. refs/remotes/origin/trunk: 'https://mycompany.svn.beanstalkapp.com/myproject' not found in '' C:\Windows\system32> Let's fix that by just die()ing when we have an uninitialized value because we cannot get commit metadata from a ref. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Eric Wong <e@80x24.org>

Christian Couder committed May 7, 2016 at 08:58 UTC 523a33ca17c76bee007d7394fb3930266c577c02
1 file changed +2 -1
perl/Git/SVN.pm
+2 -1
@@ -97,7 +97,8 @@ sub resolve_local_globs {
97 "existing: $existing\n",
98 " globbed: $refname\n";
99 }
100 - my $u = (::cmt_metadata("$refname"))[0];
100 + my $u = (::cmt_metadata("$refname"))[0] or die
101 + "$refname: no associated commit metadata\n";
102 $u =~ s!^\Q$url\E(/|$)!! or die
103 "$refname: '$url' not found in '$u'\n";
104 if ($pathname ne $u) {