3

尝试访问git svn dcommit名称中包含空格的存储库时,出现以下错误:

Committing to http://svn.kuluvalley.com/Meet the Expert/trunk ...
http://svn.kuluvalley.com/Meet the Expert/trunk
Filesystem has no item: '/!svn/bc/7397/Meet' path not found at /usr/libexec/git-core/git svn line 592

看起来git svn不支持其中有空格的目录。

4

2 回答 2

7

git svn通过修补 git-svn,我能够解决不能为带有空格的存储库工作的问题。

我将url_path功能更新为:

sub url_path { 
  my ($self, $path) = @_; 

  my $url = $self->{url} . '/' . $self->repo_path($path); 
  if ($self->{url} =~ m#^https?://#) { 
    $url =~ s!([^~a-zA-Z0-9_./-])!uc sprintf("%%%02x",ord($1))!eg; 
    $url =~ s!^(https?)%3A//!$1://!; 
  } 
  $url 
} 

对于 windows (x64) 用户,此功能可以在 Editor.pm 文件中找到,该文件位于

{Git 安装文件夹}\mingw64\share\perl5\site_perl\Git\SVN\

这可以确保 url 中的空格被正确编码。

它似乎对我有用,但尚未经过彻底测试。

于 2011-09-28T14:11:46.847 回答
-1

我相信空格的问题在 Git >= 1.8.0 中已修复(参见:#786942)。

所以你应该考虑升级它。

见 GitHub 主页:https ://github.com/git/git

于 2012-10-26T09:00:59.683 回答