Allow special characters in path ä, ö, ü

May 4, 2011 at 7:23 AM

We have some tfs project names with ä, ö o ü. With TFS works fine but with svnbridge i can open these projects SvnBridge.Utility.Helper that uses string collections for decoding and encoding strings.
As workaround i changes the collections as following:

private static readonly string[] DECODED = new string[] { "%", "#", " ", "^", "{", "[", "}", "]", ";", "`", "&", "ä", "ü", "ö" };
private static readonly string[] DECODED_C = new string[] { "%", "#", " ", "^", "{", "[", "}", "]", ";", "`" , "ä", "ü", "ö"};

private static readonly string[] ENCODED = new string[] { "%25", "%23", "%20", "%5e", "%7b", "%5b", "%7d", "%5d", "%3b", "%60", "&", "%C3%A4", "%C3%BC", "%C3%B6" };
private static readonly string[] ENCODED_C = new string[] { "%25", "%23", "%20", "%5e", "%7b", "%5b", "%7d", "%5d", "%3b", "%60", "%C3%A4", "%C3%BC", "%C3%B6" };

So this is only a dirty workaround but it works. Maybe the project team can change the decode and encode to the standard Url.Encode and Url.Decode to allow all special characters. I have tried to change the code but it doesn't work so i choose the dirty workaroung. Any other ideas?

 

 

Sep 29, 2012 at 11:59 PM

I have also found that the plus character is not supported in path names. We have source code under a "c++" directory and cannot perform an svn checkout. I have reproduced on a new directory, "test+char". Same issue, checkout complains that it can't find the directory or something... sorry I am not at work computer so I don't have the exact error - but it sounds like the same encoding problem.

Your workaround gives me a good point of reference. Any official commits to the project coming soon?

Sep 30, 2012 at 7:59 AM

I observed related problems just two days ago on my side (when executing "git svn show-ignore" on the repo),
with a file that's been explicitly placed into the repository for testing of non-ASCII range behaviour of certain software (and then proceeded with managing to break SvnBridge, too).
URL (/non-URL!) escape handling in SvnBridge seems to be in a semi-problematic (and wholly undocumented) state. And callers of that functionality seem to be inconsistent, too.

I will investigate the issue and hopefully have a fix in my usual unusually "separate" patchset.

Oct 4, 2012 at 7:25 PM

Found more Microsoft software bug trouble looming on the horizon:

git svn dcommit via subversion/neon will trip over the ':' in the server port suffix as used in the client SvnBridge use case ("/tfsserver:8080/!svn/..."), since svn has a check for matching URIs in both request and response (with mismatch between ":" and "%3A"), IOW things will bail out after the first commit (with git svn not fully handling the commit as successfully completed).

I've been investigating it, and fortunately it does seem to be a bug on the side of SvnBridge and not a problem on svn side in case of the more exotic "additional host part within URI" use case as usually done by the client SvnBridge. See http://tools.ietf.org/html/rfc3986#section-2.2 for details. Will try to get it fixed ASAP.