2015-10-12 191 views
0

在我們公司,我們正在使用我們自己的GitLab 7.13.4安裝。訪問被配置爲允許https和ssh認證。當使用版本爲1.7,1.9或2的git客戶端時,克隆現有項目將與兩種驗證方法一起工作。然而,舊的(SLES 11)使用Git版本1.6.0.2的HTTPS的方法產生以下錯誤服務器:Git克隆失敗,損壞的文件

> git clone https://[email protected]/myrepo/myproject 
Initialized empty Git repository in /users/myrepo/myuser/myproject/.git/ 
error: File 0000000000000000000000000000000000000000 (https://[email protected]/myrepo/myproject/objects/00/00000000000000000000000000000000000000) corrupt 
Getting pack list for https://[email protected]/myrepo/myproject 
Getting alternates list for https://[email protected]/myrepo/myproject 
Also look at https://[email protected]//<! 
Also look at window.gon={};gon.default_issues_tracker="gitlab";gon.api_version="v3";gon.relative_url_root="";gon.default_avatar_url="https://my.host/assets/no_avatar-0b64d25ac5f63e6f0caee99e819105ba.png";gon.max_file_s 
Segmentation fault 

的SSH-方法工作得很好,雖然。問題是我們想要防止將私鑰文件複製到服務器上,並且還要更新git客戶端安裝。你有任何關於如何解決這個錯誤的建議,或者客戶端更新是否有必要?

回答

0

首先,備份服務器上的所有重要數據(如果尚未存在)。

0000...實際的文件名或佔位符?

如果它實際上是0000...真的有一些奇怪的東西被推送到git repo(一個具有無效文件的樹的提交;但樹實際上並沒有損壞,因爲sha1的總和匹配?!我不是如果不是0000...,而是一些有效的SHA1總和,請嘗試在另一個結帳(從<repo-root>/.git/objects/xx/xxxxxxx)中找到該文件並手動複製它如果對象在一個包中,你可以嘗試unpacking

+0

'0000 ...'是錯誤信息中的實際文件名,但是我找不到對象在我的存儲庫的任何其他成功檢出版本中。它絕對不是任何推送文件的名稱。但是,我剛剛注意到,當我嘗試克隆不存在的存儲庫時,會出現相同的錯誤消息。 –

+0

嗯。看看[this](https://stackoverflow.com/questions/223678/which-commit-has-this-blob)找到哪個提交包含該blob。如果沒有,請刪除文件 – nishantjr