ルートに210以上のディレクトリを持つgitレポジトリ(リモートはgithubでホストされています-これをクライアントレポジトリと呼びましょう)があります。210以上のWindowsサーバーがあり、それぞれがこれらのルートディレクトリの1つを必要とし、実際には他のディレクトリを必要としません。
したがって、サーバーの1つにログインし、1.8.1.msysgit.1を使用します。
- gitハブからクライアントリポジトリのクローンを作成します
- スパースチェックアウトをオンにする
- このサーバーの作業コピーに必要な単一の*ディレクトリ/*でスパースチェックアウトファイルを更新します
- ツリーの読み取り操作を実行します
そして、10回のうち9回はすべてが正常に機能し、作業コピーには期待する単一のディレクトリが含まれています。
ただし、ときどき期待どおりに機能せず、他のいくつかのディレクトリも作業コピーに流れ込んでしまいます。完全な210以上になることはありませんが、他の6〜10個のディレクトリになります。これらのディレクトリは、目的のディレクトリのパターンと一致していません。また、上記のパターンに一致するサブディレクトリもありません。
これが発生すると、ローカルリポジトリを解決できませんでした。私たちは試しました:
- さまざまなリセット
- さまざまな読み取りツリー
- sparse-checkoutを無効/再度有効にする
- ログを調べて、何か奇妙なことが起こったかどうかを確認します
最終的には、通常、同じ手順を再度実行してローカルリポジトリを削除することになり、2回目だけで機能します。
クローン作成、スパースチェックアウトの設定などを繰り返し行う以外に、問題を確実に再現する方法はまだ見つかっていません。これが発生した20回ほどのうち、Windows以外のマシンで1回だけ発生しました(2週間前に同じ問題を表示したgit v1.8.1.5を実行しているubuntuサーバーがありました)。
私のGoogle-Fuはこれに弱いです。これが発生している理由と、リポジトリを削除して再クローンを作成する必要がない潜在的な回避策についての洞察をいただければ幸いです。前もって感謝します!