threads / discuss / 8728

git-svn dcommit fails if the URL has spaces in it

Subject: git-svn dcommit fails if the URL has spaces in it

## tl;dr

2 messages between Jun 26, 2007 and Jul 3, 2007.

replies: 1people: 1as markdown or json

Rogan Dawes· Jun 26, 2007, 11:24 UTC · lore
Hi folks,

I used git-svn to clone the webgoat repository at GoogleCode. As mentioned at the time, for some bizarre reason, I ended up getting a directory with a space character in it.

See http://article.gmane.org/gmane.comp.version-control.git/49179

In order to get a checkout that looks the same as the SVN checkout, I had to use a command line like:

git-svn clone -T "trunk/ webgoat" https://webgoat.googlecode.com/svn/

Unfortunately, this results in git-svn-id metadata entries in the commits that look like:

git-svn-id: https://webgoat.googlecode.com/svn/trunk/ webgoat@2 4033779f-a91e-0410-96ef-6bf7bf53c507

(Should be all on one line). As you can see, the space has made it through into the git-svn-id. Which then breaks this pattern match in git-svn:extract_metadata:

my ($url, $rev, $uuid) = ($id =~ /^git-svn-id:\s(\S+?)\@(\d+)
                                                 \s([a-f\d\-]+)$/x);

Unfortunately, hacking it to ignore the space doesn't help either, as I then get:

[rdawes@lucas webgoat]$ git-svn --username=rogan.dawes dcommit ID = git-svn-id: https://webgoat.googlecode.com/svn/trunk/ webgoat@125 4033779f-a91e-0410-96ef-6bf7bf53c507 ID = git-svn-id: https://webgoat.googlecode.com/svn/trunk/ webgoat@125 4033779f-a91e-0410-96ef-6bf7bf53c507 RA layer request failed: PROPFIND request failed on '/svn/trunk/ webgoat': PROPFIND of '/svn/trunk/ webgoat': 400 Bad Request (https://webgoat.googlecode.com) at /home/rdawes/bin/git-svn line 406

Which is entirely unsurprising, since I suspect that the URL was not being quoted/escaped correctly, and we were sending something like:

PROPFIND /svn/trunk/ webgoat/ HTTP/1.0
Which is clearly illegal, having an additional field.

However, I tried encoding the space to %20, and got back to my original problem, i.e.

Unable to determine upstream SVN information from HEAD history

If I run "git-svn -n dcommit", however, it does print out a list of "diff-tree <sha>~1 <sha>" entries.

At this point, I am pretty well stuck. Any suggestions would be much appreciated.

Regards,
Rogan Dawes
Rogan Dawes· Jul 3, 2007, 09:49 UTC · re: Rogan Dawes · lore

Re: git-svn dcommit fails if the URL has spaces in it

Rogan Dawes wrote:
Show 59 quoted lines
> Hi folks,
> 
> I used git-svn to clone the webgoat repository at GoogleCode. As 
> mentioned at the time, for some bizarre reason, I ended up getting a 
> directory with a space character in it.
> 
> See http://article.gmane.org/gmane.comp.version-control.git/49179
> 
> In order to get a checkout that looks the same as the SVN checkout, I 
> had to use a command line like:
> 
> git-svn clone -T "trunk/ webgoat" https://webgoat.googlecode.com/svn/
> 
> Unfortunately, this results in git-svn-id metadata entries in the 
> commits that look like:
> 
> git-svn-id: https://webgoat.googlecode.com/svn/trunk/ webgoat@2 
> 4033779f-a91e-0410-96ef-6bf7bf53c507
> 
> (Should be all on one line). As you can see, the space has made it 
> through into the git-svn-id. Which then breaks this pattern match in 
> git-svn:extract_metadata:
> 
> my ($url, $rev, $uuid) = ($id =~ /^git-svn-id:\s(\S+?)\@(\d+)
>                                                 \s([a-f\d\-]+)$/x);
> 
> Unfortunately, hacking it to ignore the space doesn't help either, as I 
> then get:
> 
> [rdawes@lucas webgoat]$ git-svn --username=rogan.dawes dcommit
> ID = git-svn-id: https://webgoat.googlecode.com/svn/trunk/ webgoat@125 
> 4033779f-a91e-0410-96ef-6bf7bf53c507
> ID = git-svn-id: https://webgoat.googlecode.com/svn/trunk/ webgoat@125 
> 4033779f-a91e-0410-96ef-6bf7bf53c507
> RA layer request failed: PROPFIND request failed on '/svn/trunk/ 
> webgoat': PROPFIND of '/svn/trunk/ webgoat': 400 Bad Request 
> (https://webgoat.googlecode.com) at /home/rdawes/bin/git-svn line 406
> 
> Which is entirely unsurprising, since I suspect that the URL was not 
> being quoted/escaped correctly, and we were sending something like:
> 
> PROPFIND /svn/trunk/ webgoat/ HTTP/1.0
> 
> Which is clearly illegal, having an additional field.
> 
> However, I tried encoding the space to %20, and got back to my original 
> problem, i.e.
> 
> Unable to determine upstream SVN information from HEAD history
> 
> If I run "git-svn -n dcommit", however, it does print out a list of 
> "diff-tree <sha>~1 <sha>" entries.
> 
> At this point, I am pretty well stuck. Any suggestions would be much 
> appreciated.
> 
> Regards,
> 
> Rogan Dawes
Anyone got any ideas?
Rogan

← back to recent threads