{"thread":{"id":"19944","subject":"[PATCH] Canonicalize svn urls to prevent libsvn assertion","startedAt":"2009-06-26T14:52:09Z","lastAt":"2009-06-26T21:49:57Z","messageCount":2,"participants":["Ulrich Dangel","Eric Wong"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"117025","messageId":"1246027929-2792-1-git-send-email-uli@spamt.net","threadId":"19944","inReplyTo":null,"subject":"[PATCH] Canonicalize svn urls to prevent libsvn assertion","fromName":"Ulrich Dangel","fromEmail":"uli@spamt.net","sentAt":"2009-06-26T14:52:09Z","receivedAt":"2009-06-26T14:52:09Z","isPatch":true,"sender":{"key":"uli@spamt.net","avatar":null},"body":"Cloning/initializing svn repositories with an uncanonicalize url does not\nwork as libsvn throws an assertion. This patch canonicalize svn uris for the\nclone and init command from git-svn.\n\nSigned-off-by: Ulrich Dangel <uli@spamt.net>\n---\n git-svn.perl |    9 ++++++++-\n 1 files changed, 8 insertions(+), 1 deletions(-)\n\ndiff --git a/git-svn.perl b/git-svn.perl\nindex 3301797..5130a8c 100755\n--- a/git-svn.perl\n+++ b/git-svn.perl\n@@ -380,6 +380,7 @@ sub cmd_init {\n \t}\n \tmy $url = shift or die \"SVN repository location required \",\n \t                       \"as a command-line argument\\n\";\n+\t$url = canonicalize_url($url);\n \tinit_subdir(@_);\n \tdo_git_init_db();\n \n@@ -741,6 +742,12 @@ sub canonicalize_path {\n \treturn $path;\n }\n \n+sub canonicalize_url {\n+\tmy ($url) = @_;\n+\t$url =~ s#^([^:]+://[^/]*/)(.*)$#$1 . canonicalize_path($2)#e;\n+\treturn $url;\n+}\n+\n # get_svnprops(PATH)\n # ------------------\n # Helper for cmd_propget and cmd_proplist below.\n@@ -810,7 +817,7 @@ sub cmd_multi_init {\n \n \t$_prefix = '' unless defined $_prefix;\n \tif (defined $url) {\n-\t\t$url =~ s#/+$##;\n+\t\t$url = canonicalize_url($url);    \n \t\tinit_subdir(@_);\n \t}\n \tdo_git_init_db();\n-- \n1.6.3.1\n"},{"id":"117048","messageId":"20090626214957.GA12855@dcvr.yhbt.net","threadId":"19944","inReplyTo":"1246027929-2792-1-git-send-email-uli@spamt.net","subject":"Re: [PATCH] Canonicalize svn urls to prevent libsvn assertion","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-06-26T21:49:57Z","receivedAt":"2009-06-26T21:49:57Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"Ulrich Dangel <uli@spamt.net> wrote:\n> Cloning/initializing svn repositories with an uncanonicalize url does not\n> work as libsvn throws an assertion. This patch canonicalize svn uris for the\n> clone and init command from git-svn.\n> \n> Signed-off-by: Ulrich Dangel <uli@spamt.net>\n\nThanks,\n\nI'm not getting any assertions in my version of SVN (1.5.1) but it\nactually does cause issues with path stripping when following\nrepositories.\n\nAcked-by: Eric Wong <normalperson@yhbt.net>\n..and pushed out to git://git.bogomips.org/git-svn\n\nThere was a minor trailing whitespace issue which I fixed, too\n\n-- \nEric Wong\n"}]}