2

マスター git リポジトリでガベージ コレクションを実行しようとしましたが、「エラー: リパックの実行に失敗しました」と表示されましたが、問題の特定に役立つ他のエラー メッセージは表示されませんでした。「git fsck」と「git fsck --strict」はどちらもエラーなしで問題なく終了しますが、「git gc」と「git gc --agressive」はどちらも次のように終わります。

%> git gc
Counting objects: 120867, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (58692/58692), done.
error: failed to run repack 57/120867)

十分なメモリとディスク容量があります。git 1.7.11 を使用しています

私はあまりgitの知識がありませんが、この問題に関する他の質問には、言及され、手動で修復する必要がある特定のファイルがあるようです。他にエラーは見られず、これを修復する方法がわかりません。複雑になった場合は、説明付きの小さな単語や git トピックへのポインターを使用して、助けていただければ幸いです。

4

2 に答える 2

3

私はそれを理解しました、そして多分これは他の誰かを助けるでしょう。

私は最終的に GIT_TRACE=1 を設定し、「git gc」を実行しました。唯一のエラーが発生する前に実行された最後のコマンドは次のとおりです。

trace: built-in: git 'pack-objects' '--keep-true-parents' '--honor-pack-keep' '--non-empty' '--all' '--reflog' '--unpack-unreachable=2.weeks.ago' '--local' '--delta-base-offset' '/db/sds14/user2/cwolf/cg_sandbox/.git/objects/pack/.tmp-24230-pack'

そのコマンドを手動で実行すると、実際のエラーが明らかになります。

%> git 'pack-objects' '--keep-true-parents' '--honor-pack-keep' '--non-empty' '--all' '--reflog' '--unpack-unreachable=2.weeks.ago' '--local' '--delta-base-offset' '/db/sds14/user2/cwolf/cg_sandbox/.git/objects/pack/.tmp-24230-pack'
Counting objects: 120986, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (58821/58821), done.
Filesize limit exceeded

「ファイルサイズを制限しない」だけで、「git gc」が再び機能するようになりました。他の方法で実行したときに、このシステム エラーが表示されなかった理由がわかりません。

于 2013-04-19T00:00:54.177 に答える