git-svn dcommit терпит неудачу, потому что имя репозитория содержит пробел - PullRequest
3 голосов
/ 28 сентября 2011

При попытке 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 не поддерживает каталоги с пробелами в них.

Ответы [ 2 ]

7 голосов
/ 28 сентября 2011

Я смог обойти проблему неработоспособности 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.

Кажется, это работает для меня, но не было тщательно проверено.

0 голосов
/ 26 октября 2012

Я считаю, что проблема с пробелами исправлена ​​в Git> = 1.8.0 (см .: # 786942 ).

Так что вам стоит подумать об обновлении.

См. Домашнюю страницу GitHub: https://github.com/git/git

...