[PATCH] git svn: add an option to recode pathnames
From: Dmitry Statyvka <hidden>
Date: 2016-06-15 22:47:07
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 <redacted> --- 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