17

我正在使用远程 git 托管服务 (Svnrepository.com)。在使用 git 1.7.x 作为客户端时,我能够成功访问 git 存储库,但是一旦我将客户端升级到 git 1.8.x,我就不再能够推送:推送挂起。托管服务的支持声称这是因为他们使用的是不支持 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'

它在最后一行输出之后挂起。(如果您愿意,您还可以查看我设置了GIT_TRACE=1和的跟踪GIT_CURL_VERBOSE=1。)

4

2 回答 2

1

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

于 2013-07-15T15:59:29.800 回答
1

Svnrepository.com 页面显示“标准功能:Git over SSH”,您似乎正在通过 http: 进行访问,这可能适合只读访问。如果你查看文本文件 .git/config 你应该看到一个部分 [remote "origin"] 并且'url'值可以设置为格式 host:/path/on/remote/machine 这意味着 SSH 连接吉特

于 2013-07-17T07:03:57.707 回答