diff options
author | Christian Couder <christian.couder@gmail.com> | 2016-05-07 08:58:43 +0200 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-05-08 00:50:19 +0000 |
commit | 523a33ca17c76bee007d7394fb3930266c577c02 (patch) | |
tree | 8ac057a7f2da06af633771c1bc972d8faba61235 /perl/Git | |
parent | Sync with maint (diff) | |
download | tgif-523a33ca17c76bee007d7394fb3930266c577c02.tar.xz |
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>
Diffstat (limited to 'perl/Git')
-rw-r--r-- | perl/Git/SVN.pm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm index b2c14e2ff5..d94d01cfdc 100644 --- a/perl/Git/SVN.pm +++ b/perl/Git/SVN.pm @@ -97,7 +97,8 @@ sub resolve_local_globs { "existing: $existing\n", " globbed: $refname\n"; } - my $u = (::cmt_metadata("$refname"))[0]; + my $u = (::cmt_metadata("$refname"))[0] or die + "$refname: no associated commit metadata\n"; $u =~ s!^\Q$url\E(/|$)!! or die "$refname: '$url' not found in '$u'\n"; if ($pathname ne $u) { |