Kazutoshi Satoda <[email protected]> wrote:
> The conversion from "svn.pathnameencoding" to UTF-8 should be applied
> first, and then URL encoding should be applied on the resulting UTF-8
> path. The reversed order of these transforms (used before this fix)
> makes non-UTF-8 URL which causes error from Subversion such as
> "Filesystem has no item: '...' path not found" when sending a rename (or
> a copy) from non-ASCII path.
> 
> Signed-off-by: Kazutoshi SATODA <[email protected]>

Thanks, running full SVN tests now.

Signed-off-by: Eric Wong <[email protected]>

> --- a/perl/Git/SVN/Editor.pm
> +++ b/perl/Git/SVN/Editor.pm
> @@ -144,11 +144,12 @@ sub repo_path {
>  
>  sub url_path {
>       my ($self, $path) = @_;
> +     $path = $self->repo_path($path);
>       if ($self->{url} =~ m#^https?://#) {
>               # characters are taken from subversion/libsvn_subr/path.c
>               $path =~ 
> s#([^~a-zA-Z0-9_./!$&'()*+,-])#sprintf("%%%02X",ord($1))#eg;
>       }
> -     $self->{url} . '/' . $self->repo_path($path);
> +     $self->{url} . '/' . $path;
>  }

This is trickier to test, as it requires an https?:// URL.
It always succeeds with the default file:// URL.

diff --git a/t/t9115-git-svn-dcommit-funky-renames.sh 
b/t/t9115-git-svn-dcommit-funky-renames.sh
index 82222fd..9828f05 100755
--- a/t/t9115-git-svn-dcommit-funky-renames.sh
+++ b/t/t9115-git-svn-dcommit-funky-renames.sh
@@ -93,6 +93,18 @@ test_expect_success 'svn.pathnameencoding=cp932 new file on 
dcommit' '
        git svn dcommit
 '
 
+test_expect_success 'svn.pathnameencoding=cp932 rename on dcommit' '
+       inf=$(printf "\201\207") &&
+       git config svn.pathnameencoding cp932 &&
+       echo inf >"$inf" &&
+       git add "$inf" &&
+       git commit -m "inf" &&
+       git svn dcommit &&
+       git mv "$inf" inf &&
+       git commit -m "inf rename" &&
+       git svn dcommit
+'
+
 stop_httpd
 
 test_done
-- 
EW
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to