2010-07-22 75 views
1

我們使用buildbot來運行持續集成。內置的Git構建步驟會生成以下命令行: C:\Program Files\Git\bin\git.EXE fetch -t file:///s:/Repositories/repo +masterbuildbot使用msysGit導致間歇性datastreram錯誤

s:是映射到buildbot從服務器上的debian服務器上的samba共享。

它與此錯誤間歇性失敗(一次〜50版本):

 
error: inflate: data stream error (incorrect data check) 
fatal: pack has bad object at offset 26936: inflate returned -3 
fatal: index-pack failed 
fatal: write error: Invalid argument 

沒有人有任何想法可能導致此,我們該如何解決?

回答

0

此問題的偶然性導致潛在的外部原因,如硬件(磁盤或內存損壞)。例如
參見this thread。他們嘗試a all process正確地重新克隆壞回購,但那是舊的git 1.5,所以它可能不再準確。
我只是爲了提供信息而離開這裏。通過手動擷取包git remote add -f origin http://repo.or.cz/r/msysgit.git
3 /儘管錯誤的,繼續:

Apparently, the easiest way to get a correct clone is to:

1 /初始化一個新的空存儲庫,
2 /添加 '原點' 遠程正是如此

 
(cd .git/objects/pack/ && curl -O \ 

http://repo.or.cz/r/msysgit.git/objects/pack/pack-5b51af9cb1b1122d27ddd53d40a8c3e4472ae9e4.pack) 

4 /使用附加的軟件包添加未損壞的對象:
git bundle unbundle borked.bundle
5 /現在從 '原點' 再次抓取(更新正確裁判):git fetch origin
6 /手動(!!!)除去borked臨時對象文件:

find .git -name \*.temp -exec rm {} \; 

7 /現在,「GIT中gc'

If you already have a (borked) checkout, you might be able to get away with 4, 6 and 7.