git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] git-svn: URL-decode the left-hand side of an svn refspec
@ 2010-08-03 23:21 Steven Walter
  2010-08-04  8:38 ` Eric Wong
  0 siblings, 1 reply; 4+ messages in thread
From: Steven Walter @ 2010-08-03 23:21 UTC (permalink / raw)
  To: git, normalperson; +Cc: Steven Walter

From: Steven Walter <swalter@lpdev.prtdev.lexmark.com>

This change allows git-svn to handle an URL with colons in the path
---
 git-svn.perl |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index af70353..5d08dc6 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1812,6 +1812,8 @@ sub read_all_remotes {
 			die("svn-remote.$remote: remote ref '$remote_ref' "
 			    . "must start with 'refs/'\n")
 				unless $remote_ref =~ m{^refs/};
+                        # local_ref is an URL, so url-decode it
+                        $local_ref =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
 			$r->{$remote}->{fetch}->{$local_ref} = $remote_ref;
 			$r->{$remote}->{svm} = {} if $use_svm_props;
 		} elsif (m!^(.+)\.usesvmprops=\s*(.*)\s*$!) {
-- 
1.7.0.3.gaa64d.dirty

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] git-svn: URL-decode the left-hand side of an svn refspec
  2010-08-03 23:21 [PATCH] git-svn: URL-decode the left-hand side of an svn refspec Steven Walter
@ 2010-08-04  8:38 ` Eric Wong
  2010-08-04 12:37   ` Steven Walter
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Wong @ 2010-08-04  8:38 UTC (permalink / raw)
  To: Steven Walter; +Cc: git, Steven Walter

Steven Walter <stevenrwalter@gmail.com> wrote:
> From: Steven Walter <swalter@lpdev.prtdev.lexmark.com>
> 
> This change allows git-svn to handle an URL with colons in the path
> ---
>  git-svn.perl |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)

Thanks Steven.

Since git-svn already has a uri_decode() function, we should use that.
The decoding should apply to the local portion of branches/tags globs,
too.  Does the following work for you?

diff --git a/git-svn.perl b/git-svn.perl
index 8d2ef3d..34884b8 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1820,6 +1820,7 @@ sub read_all_remotes {
 			die("svn-remote.$remote: remote ref '$remote_ref' "
 			    . "must start with 'refs/'\n")
 				unless $remote_ref =~ m{^refs/};
+			$local_ref = uri_decode($local_ref);
 			$r->{$remote}->{fetch}->{$local_ref} = $remote_ref;
 			$r->{$remote}->{svm} = {} if $use_svm_props;
 		} elsif (m!^(.+)\.usesvmprops=\s*(.*)\s*$!) {
@@ -1832,6 +1833,7 @@ sub read_all_remotes {
 			die("svn-remote.$remote: remote ref '$remote_ref' ($t) "
 			    . "must start with 'refs/'\n")
 				unless $remote_ref =~ m{^refs/};
+			$local_ref = uri_decode($local_ref);
 			my $rs = {
 			    t => $t,
 			    remote => $remote,
-- 
Eric Wong

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] git-svn: URL-decode the left-hand side of an svn refspec
  2010-08-04  8:38 ` Eric Wong
@ 2010-08-04 12:37   ` Steven Walter
  2010-08-05  6:40     ` Eric Wong
  0 siblings, 1 reply; 4+ messages in thread
From: Steven Walter @ 2010-08-04 12:37 UTC (permalink / raw)
  To: Eric Wong; +Cc: git

On Wed, Aug 4, 2010 at 4:38 AM, Eric Wong <normalperson@yhbt.net> wrote:
> Thanks Steven.
>
> Since git-svn already has a uri_decode() function, we should use that.
> The decoding should apply to the local portion of branches/tags globs,
> too.  Does the following work for you?
>
> diff --git a/git-svn.perl b/git-svn.perl
> index 8d2ef3d..34884b8 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -1820,6 +1820,7 @@ sub read_all_remotes {
>                        die("svn-remote.$remote: remote ref '$remote_ref' "
>                            . "must start with 'refs/'\n")
>                                unless $remote_ref =~ m{^refs/};
> +                       $local_ref = uri_decode($local_ref);
>                        $r->{$remote}->{fetch}->{$local_ref} = $remote_ref;
>                        $r->{$remote}->{svm} = {} if $use_svm_props;
>                } elsif (m!^(.+)\.usesvmprops=\s*(.*)\s*$!) {
> @@ -1832,6 +1833,7 @@ sub read_all_remotes {
>                        die("svn-remote.$remote: remote ref '$remote_ref' ($t) "
>                            . "must start with 'refs/'\n")
>                                unless $remote_ref =~ m{^refs/};
> +                       $local_ref = uri_decode($local_ref);
>                        my $rs = {
>                            t => $t,
>                            remote => $remote,
> --
> Eric Wong
>

Yes, this works.  Thanks!
-- 
-Steven Walter <stevenrwalter@gmail.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] git-svn: URL-decode the left-hand side of an svn refspec
  2010-08-04 12:37   ` Steven Walter
@ 2010-08-05  6:40     ` Eric Wong
  0 siblings, 0 replies; 4+ messages in thread
From: Eric Wong @ 2010-08-05  6:40 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Steven Walter

Steven Walter <stevenrwalter@gmail.com> wrote:
> On Wed, Aug 4, 2010 at 4:38 AM, Eric Wong <normalperson@yhbt.net> wrote:
> > Thanks Steven.
> >
> > Since git-svn already has a uri_decode() function, we should use that.
> > The decoding should apply to the local portion of branches/tags globs,
> > too.  Does the following work for you?
<snip>
> Yes, this works.  Thanks!

Thanks Steven, I've pushed the following out for Junio at
git://git.bogomips.org/git-svn

From 46cb16fb599451f417e7cd668e77866f5aa03fc0 Mon Sep 17 00:00:00 2001
From: Steven Walter <swalter@lpdev.prtdev.lexmark.com>
Date: Tue, 3 Aug 2010 19:21:25 -0400
Subject: [PATCH] git svn: URL-decode left-hand side of svn refspec

This change allows git-svn to handle an URL with colons in the path

[ew: rewritten to use uri_decode() function]

Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
 git-svn.perl |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 8d2ef3d..34884b8 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1820,6 +1820,7 @@ sub read_all_remotes {
 			die("svn-remote.$remote: remote ref '$remote_ref' "
 			    . "must start with 'refs/'\n")
 				unless $remote_ref =~ m{^refs/};
+			$local_ref = uri_decode($local_ref);
 			$r->{$remote}->{fetch}->{$local_ref} = $remote_ref;
 			$r->{$remote}->{svm} = {} if $use_svm_props;
 		} elsif (m!^(.+)\.usesvmprops=\s*(.*)\s*$!) {
@@ -1832,6 +1833,7 @@ sub read_all_remotes {
 			die("svn-remote.$remote: remote ref '$remote_ref' ($t) "
 			    . "must start with 'refs/'\n")
 				unless $remote_ref =~ m{^refs/};
+			$local_ref = uri_decode($local_ref);
 			my $rs = {
 			    t => $t,
 			    remote => $remote,
-- 
Eric Wong

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-08-05  6:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-03 23:21 [PATCH] git-svn: URL-decode the left-hand side of an svn refspec Steven Walter
2010-08-04  8:38 ` Eric Wong
2010-08-04 12:37   ` Steven Walter
2010-08-05  6:40     ` Eric Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).