diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-08-02 15:38:55 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-08-02 15:38:55 -0700 |
commit | e7bdd1b90bb37139b37683aa306a9e161cb9e6ce (patch) | |
tree | 7de9fb5a55c5840989d1209b6362404849ef79cb /git-svn.perl | |
parent | 9f9aa761305e909aca9a46ccb33a5872b36bcb8e (diff) | |
parent | 181264ad590ffef9d956fdd023369869c2d0a55f (diff) | |
download | git-e7bdd1b90bb37139b37683aa306a9e161cb9e6ce.tar.gz git-e7bdd1b90bb37139b37683aa306a9e161cb9e6ce.tar.xz |
Merge git://git.bogomips.org/git-svn
* git://git.bogomips.org/git-svn:
git svn: fix dcommit to work with touched files
git svn: add an option to recode pathnames
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-x | git-svn.perl | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/git-svn.perl b/git-svn.perl index c4163584a..8d2ef3d16 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -494,6 +494,7 @@ sub cmd_set_tree { sub cmd_dcommit { my $head = shift; + command_noisy(qw/update-index --refresh/); git_cmd_try { command_oneline(qw/diff-index --quiet HEAD/) } 'Cannot dcommit with a dirty index. Commit your changes first, ' . "or stash them with `git stash'.\n"; @@ -4050,6 +4051,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.pathnameencoding'); $self; } @@ -4133,6 +4135,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"; @@ -4521,6 +4527,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 : ''); } |