如何使用subgit签出svn + ssh存储库?

时间:2014-07-12 19:11:59

标签: git svn ssh glassfish subgit

我想用subgit 2.0.2检查glassfish svn。

我添加了

ssh-rsa blabla user@host

在java.net的用户帐户设置中。密钥存储在~/.ssh/authorized_keysid_rsa.user@host.pub下的本地。

我使用subgit设置subgit configure --svn-url svn+ssh://javauser@svn.java.net/glassfish~svn /path/to/folder并将/path/to/folder/config更改为

[core]
    repositoryformatversion = 0
    filemode = true
    bare = true
    logallrefupdates = false
    bigFileThreshold = 1m

[svn]
    url =  svn+ssh://javauser@svn.java.net/glassfish~svn 

[auth "default"]
    sshKeyFile = /home/user/.ssh/id_rsa.user@host.pub
由于subgit install /path/to/folder

error: svn: E170001: Authentication required for 'javauser@svn+ssh://svn.java.net'失败。

编辑1和3 :我希望使用svn+ssh结帐,因为svnhttps我正在

  • error: svn: E175002: PROPFIND of '/': 405 Method Not Allowed (https://svn.java.net)
  • error: svn: E175002: PROPFIND of '/svn/glassfish~svn': 502 Proxy Error (https://svn.java.net)

在不同的时间段之后(有时候立即,有时候是几天之后(这是一次大规模的结账......),但我从未设法完全结账/克隆),http我得到了重定位错误,因为服务器以这种方式强制执行https

编辑2:当我调用ssh javauser@svn.java.netssh javauser@java.net时,我收到了Permission denied (publickey).,我不确定这是否属于预期,因为我猜我无法登录java.net服务器或密钥是否无法正常工作。

编辑3: java.net似乎允许所有REPORT个请求(我对svn不太熟悉,也许这是非常罕见的,依赖于某些扩展陷入错误配置的防火墙的底层协议 - 为什么它总是会在REPORT个请求上超时?)即使使用svn也无法结账。

1 个答案:

答案 0 :(得分:0)

看起来subgit没有使用您的SSH密钥进行授权。

我猜你必须为auth配置指定svn值,尽管可以假设它默认使用default。请尝试以下方法:

[svn]
    url = svn+ssh://javauser@svn.java.net/svn/glassfish~svn 
    auth = default

更新:我刚才意识到您使用的是错误的网址。它必须是:

  

svn.java.net/ svn / glassfish~svn

更新#2:

如果您不想为存储库做出贡献,则匿名结帐就足够了。请尝试以下配置:

[svn]
    url = https://svn.java.net/svn/glassfish~svn
    auth = default

[auth "default"]

我试过了,它开始了,但看起来需要很长时间才能完成。也许只有像GlassFish 4.0分支那样检查更具体的内容(将网址更改为https://svn.java.net/svn/glassfish~svn/branches/4.0/)会有所帮助。

如果这对你来说也不起作用,另一个选择就是用svn签出存储库(就像它应该的那样)。以下内容应该有效(您需要一个svn客户端):

svn checkout https://svn.java.net/svn/glassfish~svn /path/to/something

您还可以使用svnsubgit结帐进行本地导入。可以在SubGit Book for Local Mode

中找到相关说明

另见: