threads / discuss / 15331

Unable to clone svn repository

Subject: Unable to clone svn repository

## tl;dr

2 messages between Sep 2, 2008 and Sep 7, 2008.

replies: 1people: 2as markdown or json

m.skoric@web.de· Sep 2, 2008, 14:58 UTC · lore
Hi guys,

im getting an error when im trying to clone a big svn repository. trunk and a couple of branches worked before git crashed.

git Version 1.6.0.1

command: git-svn clone https://SECRETURL --trunk=trunk --branches=branches --tags=tags error:

Found possible branch point: https://SECRETURL/branches/dirk/Abo-Uebernahme (Bug #994) => https://SECRETURL/branches/Abo-Uebernahme (Bug #994), 341
Initializing parent: Abo-Uebernahme (Bug #994)@341
W: Ignoring error from SVN, path probably does not exist: (175002): RA layer request failed: REPORT request failed on '/svn/tixx1/!svn/bc/101': REPORT of '/svn/tixx1/!svn/bc/101': Could not read chunk size: Secure connection truncated (https://SECRETURL)
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories
Found possible branch point: https://SECRETURL/trunk => https://SECRETURL/branches/dirk/Abo-Uebernahme (Bug #994), 203
Found branch parent: (Abo-Uebernahme (Bug #994)@341) bb831869748c98bf97d105c5894ae65331c95c08
Bad URL passed to RA layer: Malformed URL for repository at /usr/bin/git-svn line 3792

Maybe a https problem -> "Secure connection truncated (https://SECRETURL)" ? Anyone has an idea and can help me?

Greetz ms ____________________________________________________________________ Psssst! Schon vom neuen WEB.DE MultiMessenger gehört? Der kann`s mit allen: http://www.produkte.web.de/messenger/?did=3123

Eric Wong· Sep 7, 2008, 04:04 UTC · re: m.skoric@web.de · lore

Re: Unable to clone svn repository

m.skoric@web.de wrote:
> Hi guys,
Hi,
> Found possible branch point: https://SECRETURL/trunk => https://SECRETURL/branches/dirk/Abo-Uebernahme (Bug #994), 203
> Found branch parent: (Abo-Uebernahme (Bug #994)@341) bb831869748c98bf97d105c5894ae65331c95c08
> Bad URL passed to RA layer: Malformed URL for repository at /usr/bin/git-svn line 3792

The following patch should fix it. The strange URL with '#' and ')' threw it off.

I've also pushed this out to git://git.bogomips.org/git-svn.git
>From f4392df485b197a0797cc503b1e1a71350abfe56 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Sat, 6 Sep 2008 20:18:18 -0700
Subject: [PATCH] git-svn: fix handling of even funkier branch names

Apparently do_switch() tolerates the lack of escaping in less funky branch names. For the really strange and scary ones, we need to escape them properly. It strangely maintains compatible with the existing handling of branch names with spaces and exclamation marks.

Reported-by: m.skoric@web.de ($gmane/94677)
Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
 git-svn.perl                          |    1 +
 t/t9118-git-svn-funky-branch-names.sh |   16 ++++++++++++++++
 2 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index ee3f5ed..ecacf74 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -4025,6 +4025,7 @@ sub gs_do_switch {
 		}
 	}
 	$ra ||= $self;
+	$url_b = escape_url($url_b);
 	my $reporter = $ra->do_switch($rev_b, '', 1, $url_b, $editor, $pool);
 	my @lock = $SVN::Core::VERSION ge '1.2.0' ? (undef) : ();
 	$reporter->set_path('', $rev_a, 0, @lock, $pool);
diff --git a/t/t9118-git-svn-funky-branch-names.sh b/t/t9118-git-svn-funky-branch-names.sh
index 3281cbd..43ceb75 100755
--- a/t/t9118-git-svn-funky-branch-names.sh
+++ b/t/t9118-git-svn-funky-branch-names.sh
@@ -6,6 +6,10 @@
 test_description='git-svn funky branch names'
 . ./lib-git-svn.sh
 
+# Abo-Uebernahme (Bug #994)
+scary_uri='Abo-Uebernahme%20%28Bug%20%23994%29'
+scary_ref='Abo-Uebernahme%20(Bug%20#994)'
+
 test_expect_success 'setup svnrepo' '
 	mkdir project project/trunk project/branches project/tags &&
 	echo foo > project/trunk/foo &&
@@ -15,6 +19,8 @@ test_expect_success 'setup svnrepo' '
 	                "$svnrepo/pr ject/branches/fun plugin" &&
 	svn cp -m "more fun!" "$svnrepo/pr ject/branches/fun plugin" \
 	                      "$svnrepo/pr ject/branches/more fun plugin!" &&
+	svn cp -m "scary" "$svnrepo/pr ject/branches/fun plugin" \
+	              "$svnrepo/pr ject/branches/$scary_uri" &&
 	start_httpd
 	'
 
@@ -23,6 +29,7 @@ test_expect_success 'test clone with funky branch names' '
 	cd project &&
 		git rev-parse "refs/remotes/fun%20plugin" &&
 		git rev-parse "refs/remotes/more%20fun%20plugin!" &&
+		git rev-parse "refs/remotes/$scary_ref" &&
 	cd ..
 	'
 
@@ -35,6 +42,15 @@ test_expect_success 'test dcommit to funky branch' "
 	cd ..
 	"
 
+test_expect_success 'test dcommit to scary branch' '
+	cd project &&
+	git reset --hard "refs/remotes/$scary_ref" &&
+	echo urls are scary >> foo &&
+	git commit -m "eep" -- foo &&
+	git svn dcommit &&
+	cd ..
+	'
+
 stop_httpd
 
 test_done
-- 
Eric Wong

← back to recent threads