Kazutoshi Satoda <k_satoda@xxxxxxxxxxxxx> 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 <k_satoda@xxxxxxxxxxxxx> Thanks, running full SVN tests now. Signed-off-by: Eric Wong <normalperson@xxxxxxxx> > --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html