Re: (Resend)[PATCH] git-svn: Translate invalid characters in refname
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 30, 2007, 10:07 UTC
- Message-ID
- <7v6442kxvu.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <f8k9q5$927$1@sea.gmane.org>
Robert Ewald <robert.ewald@nov.com> writes:
Show 17 quoted lines
> +sub refname {
> + my ($refname) = "refs/remotes/$_[0]->{ref_id}" ;
> +
> + # It cannot end with a slash /, we'll throw up on this because
> + # SVN can't have directories with a slash in their name, either:
> + if ($refname =~ m{/$}) {
> + die "ref: '$refname' ends with a trailing slash, this is ",
> + "not permitted by git nor Subversion\n";
> + }
> +
> + # It cannot have ASCII control character space, tilde ~, caret ^,
> + # colon :, question-mark ?, asterisk *, space, or open bracket [
> + # anywhere.
> + #
> + # Additionally, % must be escaped because it is used for escaping
> + # and we want our escaped refname to be reversible
> + $refname =~ s{([ \%~\^:\?\*\[\t])}{uc sprintf('%%%02x',ord($1))}eg;uc of sprintf()? You meant "%%%02X"?
Other than that, looks sane to me. I presume that SVN branches whose name would be mangled with this patch would not have been successfully imported with older git-svn anyway, so this won't introduce any regressions?
Eric?