Re: [PATCH] Re: git-svn fetch doesn't like spaces in branch names

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Nov 8, 2007, at 8:29 AM, Alex Riesen wrote:

Michael J. Cohen, Thu, Nov 08, 2007 01:53:07 +0100:
mini:TextMateBundles mjc$ git-svn fetch
Found possible branch point:
http://macromates.com/svn/Bundles/trunk/Tools/Dialog PlugIn =>
http://macromates.com/svn/Bundles/branches/Dialog PlugIn Completion Menu,
8089
Initializing parent: Dialog PlugIn Completion Menu@8089
Bad URL passed to RA layer: Malformed URL for repository at
/opt/local/bin/git-svn line 1607

looks like that might need to be %20 ?


Hacky, but it works.

Signed-off-by: Michael J. Cohen <mjc@xxxxxxxxxxxxxxxxxx>

diff --git a/git-svn.perl b/git-svn.perl
index dd93e32..5dc3b9c 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1976,6 +1976,7 @@ sub find_parent_branch {
	my $r = $i->{copyfrom_rev};
	my $repos_root = $self->ra->{repos_root};
	my $url = $self->ra->{url};
+	$branch_from =~ s@([\s])@sprintf("%%%02X", ord($1))@seg;

You don't need "[" and "]".

You don't even need the "(" and ")"

$branch_from =~ s@\s@sprintf("%%%02X", ord($&))@seg;

But I think it'd be better to fix this properly. I guess some people use branch names with accentuated characters such as é è ü whatever. What about this instead (untested):

$branch_from =~ s@[^\w\d_]@sprintf("%%%02X", ord($&))@seg;

Otherwise there are various existing Perl modules such as http:// search.cpan.org/dist/URI/URI/Escape.pm but this seems overkill / not portable (unless we distribute these files along with Git).

Cheers,

--
Benoit Sigoure aka Tsuna
EPITA Research and Development Laboratory


Attachment: PGP.sig
Description: This is a digitally signed message part


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux