2010-06-08 123 views
0

我的一位朋友和我一直在嘗試將git用於項目。它被託管在他的服務器上,我將它克隆爲:當我做了一個大型的提交時,Git倉庫被損壞:「遠程端可能的倉庫損壞」

git clone [email protected]:/path/to/git/repos.git 

漂亮的標準東西,它很適合一段時間。但每次我們中的一個人都添加了一個大的提交(git據說處理得非常好),大約100MB左右,git存儲庫就會被破壞。基本上,在這一點上,我將能夠推動新的變化並拉動其他變化(我認爲),但是當我嘗試使用上述命令在新位置克隆存儲庫時,出現如下錯誤消息:

$git clone [email protected]:/path/to/git/repos.git 
Initialized empty Git repository in /local/path/to/repos/.git/ 
remote: Counting objects: 1455, done. 
remote: Compressing objects: 100% (1235/1235), done. 
error: git upload-pack: git-pack-objects died with error.s 
fatal: git upload-pack: aborting due to possible repository corruption on the remote side. 
remote: aborting due to possible repository corruption on the remote side. 
fatal: early EOF 
fatal: index-pack failed 

現在已經發生了3次或4次,而且總是在添加大量提交時。任何想法爲什麼發生這種情況?我們如何解決它?我們都使用Mac OSX Snow Leopard。

謝謝! -M

+0

你在服務器上有足夠的磁盤空間? – 2010-06-08 23:47:21

+0

是的,看起來服務器上有很多空間。似乎沒有磁盤空間問題... – mindthief 2010-06-09 00:27:33

+0

可以想象,服務器的運行比您的計算機更重要。兩端都沒有舊版本的git,有嗎? – Cascabel 2010-06-09 19:50:29

回答

0

是否推送到遠程服務器失敗?也許連接上有一些數據包丟失,並且增量數據不完整。嘗試在本地機器上建立一個裸存儲庫以推送並克隆並告訴它是否仍然中斷。

+0

嗨Marco,是的,在本地目錄中克隆git倉庫的本地版本(這是最新版本)可以正常工作。 git clone/path/to/local/git/repos/ – mindthief 2010-06-08 23:43:30

+0

丟包不應該成爲問題,因爲任何重傳都是由TCP層處理的。數據包丟失在互聯網上很常見,TCP旨在處理它。 – 2010-06-08 23:48:33

+0

如果本地「bare」repos可以提交,但不是遠程,那麼傳輸機制可能存在問題(您使用Git Daemon,SSH,WebDav?)還是遠程服務器配置--INODES(虛擬機) ,或者使用Remote Git Repo本身。 – 2010-06-09 14:20:19

0

這裏的回覆很遲。你可能需要找回到服務器和目錄運行中找到的庫,並從:

git gc 

git gc --aggressive