threads / patch / 38330

patchGit::SVN: handle missing ref_id case correctly

Subject: [PATCH] Git::SVN: handle missing ref_id case correctly

## tl;dr

5 messages between Jan 10, 2015 and Jan 10, 2015. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Ramkumar Ramachandra· Jan 10, 2015, 14:35 UTC · lore

$ENV{GIT_SVN_ID} will return a string, so check it with defined. Also, ref_id should not match "refs/remotes/".

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
 perl/Git/SVN.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Show changes to perl/Git/SVN.pm +2 −2
diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm
index d9a52a5..06ff216 100644
--- a/perl/Git/SVN.pm
+++ b/perl/Git/SVN.pm
@@ -40,7 +40,7 @@ BEGIN {
 our $_follow_parent  = 1;
 our $_minimize_url   = 'unset';
 our $default_repo_id = 'svn';
-our $default_ref_id  = $ENV{GIT_SVN_ID} || 'git-svn';
+our $default_ref_id  = defined $ENV{GIT_SVN_ID} ? $ENV{GIT_SVN_ID} : 'git-svn';
 
 my ($_gc_nr, $_gc_period);
 
@@ -2365,7 +2365,7 @@ sub _new {
 
 	# Older repos imported by us used $GIT_DIR/svn/foo instead of
 	# $GIT_DIR/svn/refs/remotes/foo when tracking refs/remotes/foo
-	if ($ref_id =~ m{^refs/remotes/(.*)}) {
+	if ($ref_id =~ m{^refs/remotes/(.+)}) {
 		my $old_dir = "$ENV{GIT_DIR}/svn/$1";
 		if (-d $old_dir && ! -d $dir) {
 			$dir = $old_dir;
-- 
2.2.1
Ramkumar Ramachandra· Jan 10, 2015, 15:12 UTC · re: Ramkumar Ramachandra · lore

Re: [PATCH] Git::SVN: handle missing ref_id case correctly

Ramkumar Ramachandra wrote:
> -our $default_ref_id  = $ENV{GIT_SVN_ID} || 'git-svn';
> +our $default_ref_id  = defined $ENV{GIT_SVN_ID} ? $ENV{GIT_SVN_ID} : 'git-svn';
This is probably not a functional change; please look at the second hunk.
Eric Wong· Jan 10, 2015, 22:13 UTC · re: Ramkumar Ramachandra · lore

Re: [PATCH] Git::SVN: handle missing ref_id case correctly

Ramkumar Ramachandra <artagnon@gmail.com> wrote:
Show 5 quoted lines
> Ramkumar Ramachandra wrote:
> > -our $default_ref_id  = $ENV{GIT_SVN_ID} || 'git-svn';
> > +our $default_ref_id  = defined $ENV{GIT_SVN_ID} ? $ENV{GIT_SVN_ID} : 'git-svn';
> 
> This is probably not a functional change; please look at the second hunk.
It is functional, maybe someone will use GIT_SVN_ID=0 ?
Ramkumar Ramachandra· Jan 10, 2015, 22:18 UTC · re: Ramkumar Ramachandra · lore

Re: [PATCH] Git::SVN: handle missing ref_id case correctly

Ramkumar Ramachandra wrote:
>> It is functional, maybe someone will use GIT_SVN_ID=0 ?
>
> Right. Kindly drop the first hunk.
Amendment: there are actually many other places where variables are
checked without "defined", so I doubt we want to put up with the extra
ugliness to allow "0".

← back to recent threads