git-svn 克隆 : unable to connect to a repository

标签 git svn git-svn git-clone

环境信息

~$ git --version
git version 2.11.0
~$ git svn --version
git-svn version 2.11.0 (svn 1.9.5)
~$ svn --version
svn, version 1.9.5 (r1770682)

我正在尝试克隆内部托管的 SVN 存储库,但遇到以下错误:
~$ git svn clone http://[server]/svn/dev1
Initialized empty Git repository in [~]/test/[root]/.git/
Can't create session: Unable to connect to a repository at URL \
  'http://[server]/svn/[root]' at /usr/share/perl5/Git/SVN.pm line 148.

SVN checkout 按预期工作。我试过使用 svn://协议(protocol),但它不识别 [server]作为已知主机名。

如果我分开 clone进入 initfetch ,是 fetch失败的步骤。

我应该补充一点,很遗憾,像 SmartGit 这样的解决方案不适合我;我在一家拥有超过 1000 名开发人员的公司工作,因此支持一名开发人员的成本将是天文数字。
SVN.pm:148阅读 my $ra = Git::SVN::Ra->new($url); – 从我研究的其他地方(我再也找不到帖子了),我相信这是一个 SVN 函数的包装器。这是Ra->new的定义:

sub new {
        my ($class, $url) = @_;
        $url = canonicalize_url($url);
        return $RA if ($RA && $RA->url eq $url);

        ::_req_svn();

        $RA = undef;
        my ($config, $baton, $callbacks) = prepare_config_once();
        my $self = SVN::Ra->new(url => $url, auth => $baton,
                              config => $config,
                              pool => SVN::Pool->new,
                              auth_provider_callbacks => $callbacks);
        $RA = bless $self, $class;

        # Make sure its canonicalized
        $self->url($url);
        $self->{svn_path} = $url;
        $self->{repos_root} = $self->get_repos_root;
        $self->{svn_path} =~ s#^\Q$self->{repos_root}\E(/|$)##;
        $self->{cache} = { check_path => { r => 0, data => {} },
                           get_dir => { r => 0, data => {} } };

        return $RA;
}

我不知道 Perl,所以我只能自己做这件事了——我找不到 SVN::Ra->new这提到。

最佳答案

事实证明,这台“机器”(WSL 下的 Debian)无法访问 [server]根本(即使 Windows 可以)。给出的错误消息可能不是很具体,但它仍然是准确的:git-svn 无法访问给定 URL 的存储库,因为它根本无法访问该 URL!

将其完全限定为 [server].[company].com为我工作。代替

git svn clone http://[server]/svn/dev1

我用了
git svn clone http://[server].[company].com/svn/dev1

关于git-svn 克隆 : unable to connect to a repository,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54277632/

相关文章:

svn - 如何确定修订之间的更改统计数据

git-svn 错误导入存储库 : fatal: Not a valid object name

git - 更新远程分支的 git-svn 列表

git - 如何将自定义对象数据库添加到 libgit2?

Git repo,其中每个子模块都是同一 repo 的一个分支。如何避免双重/三重...使用 git clone --recursive 下载?

Git rebase - 在 fork 点模式下提交选择

svn - 有没有办法在为客户端(tortoisesvn)创建新的SVN存储库时自动创建分支、标签和主干文件夹?

git - git标签的存储效率低下吗?

svn - 如何在 SVN 中的存储库级别设置 "use-commit-times"配置选项以保留文件的修改时间戳

更改svn repo地址后git svn错误