2013-02-17 54 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

相關問題