git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [BUG] git-svn fails to rename files with %20 in filename

From
Jeff King <peff@peff.net>
Date
Feb 21, 2011, 12:31 UTC
Message-ID
<20110221123115.GB23033@sigill.intra.peff.net>
In-Reply-To
<1298283144.2772.7.camel@wpalmer.simply-domain>
On Mon, Feb 21, 2011 at 10:12:24AM +0000, Will Palmer wrote:
Show 11 quoted lines
> Someone accidentally checked some files containing "%20" in their names
> into our svn repository, which is accessed with either svn or git-svn
> depending on the developer.
> When I attempted to correct this by renaming the file, I received (on
> dcommit):
> Filesystem has no item: File not found: revision 1, path
> '/theBeginningOfTheOriginalFileName theRestOfTheOriginalFilename'
> at /home/wpalmer/libexec/git-core/git-svn line 576
> 
> A recipe for reproducing this bug is as follows:
> [...]

Thanks for the thorough test case. It seems to pass for me if with this applied:

diff --git a/git-svn.perl b/git-svn.perl
index 177dd25..7daf63c 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -4556,9 +4556,7 @@ sub repo_path {
 
 sub url_path {
 	my ($self, $path) = @_;
-	if ($self->{url} =~ m#^https?://#) {
-		$path =~ s!([^~a-zA-Z0-9_./-])!uc sprintf("%%%02x",ord($1))!eg;
-	}
+	$path =~ s!([^~a-zA-Z0-9_./-])!uc sprintf("%%%02x",ord($1))!eg;
 	$self->{url} . '/' . $self->repo_path($path);
 }
 

IOW, it looks like the path we hand to svn needs url-encoding even for
the local case (which make sense, as it is a file:// url). But I know
nothing about svn, so probably I am breaking some other weird non-url
local case. :)

-Peff
Previous: Will PalmerNext: Will Palmer
Message 2 of 6 in “[BUG] git-svn fails to rename files with %20 in filename”
  1. Will PalmerFeb 21, 2011
  2. Jeff KingFeb 21, 2011
  3. Will PalmerFeb 22, 2011
  4. Jeff KingFeb 23, 2011
  5. Steven ScottMar 2, 2011
  6. Steven ScottFeb 21, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.