2013-02-17 51 views
17

我正在使用远程git托管服务(Svnrepository.com)。我可以在使用git 1.7.x作为客户端时成功访问git存储库,但只要将客户端升级到git 1.8.x,我就不能再推送:the push hangs。托管服务的支持声称这是因为他们正在使用不支持版本1.8的较旧的git服务器。git 1.8客户端和旧git服务器之间的兼容性问题

  1. 如何使用git 1.8作为客户端,与旧的git服务器?
  2. 是否有解决方法?
  3. 有谁知道确切的不兼容性是什么?
  4. 支持声明是否听起来似乎合理? 出于某种原因,我曾认为git具有出色的向后/向前兼容性,并且没有理由担心升级会破坏git
  5. 在1.7-> 1.8转换中是否引入了一些已知的不兼容性?

根据要求,这里是跟踪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

我认为你是对的,因为我不认为git repo格式会有变化,只有命令可能会有所不同,在这种情况下,'git push'应该可以工作,无论如何,我并不是那么专业在git上,但你可以在谷歌搜索,[谷歌搜索结果](https://www.google.com/search?q=git+backwards+compatibility),一切顺利。 – 2013-02-18 00:11:12

+0

如果你确实相信这是真的 - 也可能是他们意外地引入了回归 - 你应该将它报告给git邮件列表(<[email protected]>)。他们肯定想知道这些事情,他们会得到修复。 – jszakmeister 2013-02-18 00:31:01

+2

还请在您的问题中添加您尝试推送时实际输出的内容。 “不再能够推动”是非常通用的,不允许人们帮助你解决问题。 – 2013-02-18 06:33:12

回答

1

婉婷用更多的最新版本的git的运行是可以理解的,但如果你选择的主机不运行目前的版本,你为什么不切换主机?单就名字而言,Svnrepository.com听起来并不像他们专注于Git托管。如果托管服务不是您可以更改的内容,那么在正常情况下在路径之外的某处安装git1.7又如何呢?然后,你可以将1.7版本链接到oldgit之类的东西,当你需要使用Svnrepostiory.com时,你的命令就像oldgit addoldgit commit,oldgit push

1

Svnrepository.com页面显示'Standard features:Git over SSH',看起来您正在通过http访问:这可能对只读访问很有用。如果您查看文本文件.git/config,您应该看到一段[remote“origin”],并且可以将'url'值设置为host:/ path/on/remote/machine的格式,这意味着一个SSH连接Git

相关问题