[PATCH] git-svn: clone: Fail on missing url argument

Subsystems: the rest

STALE3697d

3 messages, 2 authors, 2016-07-03 · open the first message on its own page

[PATCH] git-svn: clone: Fail on missing url argument

From: Christopher Layne <hidden>
Date: 2016-07-03 05:46:44

* cmd_clone should detect a missing $url arg before using it otherwise
  an uninitialized value error is emitted in even the simplest case of
  'git svn clone' without arguments.

Signed-off-by: Christopher Layne <redacted>
---
 git-svn.perl | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/git-svn.perl b/git-svn.perl
index 05eced0..f609e54 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -507,7 +507,10 @@ sub init_subdir {
 
 sub cmd_clone {
 	my ($url, $path) = @_;
-	if (!defined $path &&
+	if (!$url) {
+		die "SVN repository location required ",
+		    "as a command-line argument\n";
+	} elsif (!defined $path &&
 	    (defined $_trunk || @_branches || @_tags ||
 	     defined $_stdlayout) &&
 	    $url !~ m#^[a-z\+]+://#) {
-- 
2.7.3

Re: [PATCH] git-svn: clone: Fail on missing url argument

From: Eric Wong <hidden>
Date: 2016-07-03 06:17:36

Christopher Layne [off-list ref] wrote:
* cmd_clone should detect a missing $url arg before using it otherwise
  an uninitialized value error is emitted in even the simplest case of
  'git svn clone' without arguments.
Thanks, this patch looks obviously correct.

I've eliminated the '* ' and space prefix from the version I've
applied since it's not the convention around here.
Signed-off-by: Christopher Layne <redacted>
Signed-off-by: Eric Wong <redacted>

And pushed to "master" of git://bogomips.org/git-svn
(I'll request for Junio to pull within a few days while
 other changes pile up).
 sub cmd_clone {
 	my ($url, $path) = @_;
-	if (!defined $path &&
+	if (!$url) {
+		die "SVN repository location required ",
+		    "as a command-line argument\n";
"as a command-line argument" seems like an unnecessary phrase,
but I see we use it elsewhere; so it's fine here.

I might be tempted to queue up a separate patch
to eliminate this extra statement from the rest of git-svn,
though.  Not sure if others feel the same way.

Re: [PATCH] git-svn: clone: Fail on missing url argument

From: Christopher Layne <hidden>
Date: 2016-07-03 06:56:42

On Jul 2, 2016, at 2315 PT, Eric Wong [off-list ref] wrote:
quoted
sub cmd_clone {
	my ($url, $path) = @_;
-	if (!defined $path &&
+	if (!$url) {
+		die "SVN repository location required ",
+		    "as a command-line argument\n";
"as a command-line argument" seems like an unnecessary phrase,
but I see we use it elsewhere; so it's fine here.

I might be tempted to queue up a separate patch
to eliminate this extra statement from the rest of git-svn,
though.  Not sure if others feel the same way.
I basically went with the same logic/error message that cmd_init()
was using a couple of lines down in an attempt to stay consistent:

 527 sub cmd_init {
 528         if (defined $_stdlayout) {
 529                 $_trunk = 'trunk' if (!defined $_trunk);
 530                 @_tags = 'tags' if (! @_tags);
 531                 @_branches = 'branches' if (! @_branches);
 532         }
 533         if (defined $_trunk || @_branches || @_tags) {
 534                 return cmd_multi_init(@_);
 535         }
 536         my $url = shift or die "SVN repository location required ",
 537                                "as a command-line argument\n";
 538         $url = canonicalize_url($url);
 539         init_subdir(@_);
 540         do_git_init_db();
 541 
 542         if ($Git::SVN::_minimize_url eq 'unset') {
 543                 $Git::SVN::_minimize_url = 0;
 544         }
 545 
 546         Git::SVN->init($url);
 547 }

-cl
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help