2011-08-31 10 views
6

git grepコマンドをn回実行すると、約0.8 * n回エラーが発生します。私は何も悪いだけでダングリングのカップルが git grep buggy - パラレル検索を無効にしますか?

  • がレポ、エラーなしにクローン化されたオブジェクトがない
  • git fsckレポートファイル保護ですべての問題を排除するためにスーパーユーザーとして

    1. の実行を試してみた何

      $ git grep foo_bar_search `git rev-list HEAD` -- dir/subdir >/dev/null 
      fatal: unable to read tree (bc9e3369c6d6f027075e794fa11db02af3f8fb38) 
      $ git grep foo_bar_search `git rev-list HEAD` -- dir/subdir >/dev/null 
      fatal: unable to read tree (473a47dd3895b1db09baf4cf9463f4cbd224d5dd) 
      $ git grep foo_bar_search `git rev-list HEAD` -- dir/subdir >/dev/null 
      $ git grep foo_bar_search `git rev-list HEAD` -- dir/subdir >/dev/null 
      fatal: unable to read tree (b917adbfffd1928c8f6ac0f746a4fdfcf2088029) 
      $ git grep foo_bar_search `git rev-list HEAD` -- dir/subdir >/dev/null 
      fatal: unable to read tree (473a47dd3895b1db09baf4cf9463f4cbd224d5dd) 
      

      クローン時にはgit grepが同じ動作を再度示します。

    2. git cat-fileを使用して報告SHA1sのいくつかを見、

    すべて

  • 罰金Googleで検索ビットであるように見える最も興味深いGoogleはしてヒット:

    http://www.spinics.net/lists/git/msg164520.html

    をメッセージはちょうどでした3時間。まあ、もし彼らがgit grepに競争条件を持っていれば、それはすべてを説明することができます。彼らはいくつかのコアで並行して検索しますか? (私はここに4つあります)どうすれば1つのコアだけでマシン全体を起動することができないのでしょうか?

    $ git --version 
    git version 1.7.3.4 
    

    は、提案されたパッチでgitのをコンパイル、

    +0

    (または、提案されたアップデートをコンパイルするか、GitをNO_PTHREADSで再コンパイルしてください) –

    +0

    NO_PTHREADSは役に立ちます。メーリングリストのパッチがリポジトリに表示されるのはいつか分かりません。現在私は自分の仕事に少し集中する必要があり、ツール用のパッチを使って遊ぶつもりはありませんでした。 –

    +0

    次回リリースの1.7.8リリースにはパッチが含まれているようです。 –

    答えて

    0

    することができます場合は、レースの問題を修正するようだ(これはopenSUSEの11.4に付属しているものです)。並列化を無効にする方法はないようです。

    +0

    Josh Leeが述べたように、コンパイル時に-DNO_PTHREADSを使用して並列化を無効にすることができます。私はディストリビューション(git-1.7.3.4)からソースパッケージをコンパイルするだけで、このフラグを追加しました。私はパッチを試す時間がなかった。 –

    1

    次のいずれかの条件のgit-grepの中のスレッドを無効になりますように見えます:

    • -Oは、ページャ内の一致するファイルを開くために与えられています。
    • NO_PTHREADSは、コンパイル時に定義されます。
    • -pは、関数名をコンテキストとして表示します。

    これらのうちの最後のものがあなたのワークフローにとって邪魔にならないことを望みます。

    +1

    答えをありがとう。オプション1はまったく機能しません。-Oは作業領域の検索のみに使用できます。オプション2が機能する。オプション3は機能しますが、少し邪魔です(追加の出力は私の場合は解釈が難しい) –

    関連する問題