git 1.8客户端和旧的git服务器之间的兼容性问题

时间:2013-02-17 23:59:25

标签: git version-control backwards-compatibility

我正在使用远程git托管服务(Svnrepository.com)。我使用git 1.7.x作为客户端时能够成功访问git存储库,但是一旦我将客户端升级到git 1.8.x,我就无法再推送:the push hangs 。托管服务的支持声称这是因为他们使用的是不支持1.8版本的旧版git服务器。

  1. 如何使用git 1.8作为客户端,使用较旧的git服务器?
  2. 有解决方法吗?
  3. 有谁知道确切的不兼容性是什么?
  4. 支持声明是否合理? 出于某种原因,我认为git具有出色的向后/向前兼容性,并且没有理由担心升级会破坏git
  5. 在1.7-> 1.8过渡中引入了一些已知的不相容性会导致这种情况吗?
  6. 根据请求,此处是GIT_TRACE=1的跟踪。它看起来像在运行git-http-push时挂起:

    $ GIT_TRACE=1 git push -v
    trace: built-in: git 'push' '-v'
    Pushing to https://secure2.svnrepository.com/redacted/redacted/
    trace: run_command: 'git-remote-https' 'origin' 'https://secure2.svnrepository.com/redacted/redacted/'
    trace: run_command: 'http-push' '--helper-status' '--verbose' 'https://secure2.svnrepository.com/redacted/redacted/' 'refs/heads/master:refs/heads/master'
    trace: exec: 'git' 'http-push' '--helper-status' '--verbose' 'https://secure2.svnrepository.com/redacted/redacted/' 'refs/heads/master:refs/heads/master'
    trace: exec: 'git-http-push' '--helper-status' '--verbose' 'https://secure2.svnrepository.com/redacted/redacted/' 'refs/heads/master:refs/heads/master'
    trace: run_command: 'git-http-push' '--helper-status' '--verbose' 'https://secure2.svnrepository.com/redacted/redacted/' 'refs/heads/master:refs/heads/master'
    

    它在最后一行输出后挂起。 (如果您愿意,也可以look at a trace我同时设置GIT_TRACE=1GIT_CURL_VERBOSE=1。)

2 个答案:

答案 0 :(得分:1)

想要使用更新版本的git运行是可以理解的,但如果您选择的主机不运行当前版本,为什么不切换主机?仅从名称Svnrepository.com,听起来并不像他们专注于Git托管。如果托管服务不是你可以改变的东西,那么在你的路径之外的某个地方安装git1.7和1.8。然后,您可以将1.7版本链接到类似oldgit的内容,当您需要使用Svnrepostiory.com时,您的命令就像oldgit addoldgit commitoldgit push

答案 1 :(得分:1)

Svnrepository.com页面上写着“标准功能:Git over SSH”,似乎您通过http访问:这可能对只读访问很有用。如果查看文本文件.git / config,您应该看到[remote“origin”]部分,并且'url'值可以设置为host:/ path / on / remote / machine格式,这表示SSH连接为GIT中