当尝试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
不支持包含空格的目录。
答案 0 :(得分: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中的空格。
它似乎对我有用,但尚未经过彻底测试。
答案 1 :(得分:-1)