Introduce new option 'svn.pathnameenc' that instructs git svn to recode pathnames to given encoding. It's useful for windows users and for those who works in non-utf8 locales, since otherwise they'll have corrupted file names with non-ascii characters. Signed-off-by: Dmitry Statyvka <dstatyvka@xxxxxxxxxxxxxxxxxx> --- git-svn.perl | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/git-svn.perl b/git-svn.perl index ef1d30d..bdd9af0 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -3343,6 +3343,7 @@ sub new { $self->{absent_dir} = {}; $self->{absent_file} = {}; $self->{gii} = $git_svn->tmp_index_do(sub { Git::IndexInfo->new }); + $self->{pathnameencoding} = Git::config('svn.pathnameenc'); $self; } @@ -3426,6 +3427,10 @@ sub open_directory { sub git_path { my ($self, $path) = @_; + if (my $enc = $self->{pathnameencoding}) { + require Encode; + Encode::from_to($path, 'UTF-8', $enc); + } if ($self->{path_strip}) { $path =~ s!$self->{path_strip}!! or die "Failed to strip path '$path' ($self->{path_strip})\n"; @@ -3814,6 +3819,10 @@ sub split_path { sub repo_path { my ($self, $path) = @_; + if (my $enc = $self->{pathnameencoding}) { + require Encode; + Encode::from_to($path, $enc, 'UTF-8'); + } $self->{path_prefix}.(defined $path ? $path : ''); } -- 1.6.3.2.1299.gee46c -- 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