グレンジ Advent Calendar 2018 13日目の記事を担当しました、k_kimura_01 と申します。
グレンジでサーバサイドエンジニアをしております。
WindowsでTortoiseGitを使っている方は割といるかと思います。
(ファイル差分確認とかコミット履歴追うのが楽ですよネ)
で、昔はなかった気がするのですがある時から「たまに」アイコンオーバーレイが表示されなくなることが発生するようになりました。
元々表示されるのに時間がかかることはあるのですが、1日中表示されないことがあったり。
(ローカルにクローンしたファイルが多くなってきたからなのかな)
事象が起きると…
・アイコンが表示されない(だけならまだしも)
・右クリックでメニューを出そうとするとエクスプローラがしばらく応答なしになる
・個別のファイル単位でコミットログが見れなくなる
・PC再起動しても直らないことが多々あった
と、割と不便でした(´・ω・`)
しばらく放置してたのですが、ふとした拍子に解決方法がわかりました。
(記事のタイトルでだいたいネタバレしてる)
#先に確認しておくこと
Windowsはアイコンオーバーレイが15個までしか表示出来ない仕様らしいです。
なので、TortoiseGit以外のアプリケーションでアイコンオーバーレイが複数使われていて、
レジストリの並び順(優先度)で表示されなくなるパターンがあるとのこと。
TortoiseGit以外にどれくらいアイコンオーバーレイが使われているかは、
設定のオーバーレイハンドラ―を見るとわかるかも。
ここで引っかかってそうな方は、不要なアプリケーションを消すなり、レジストリの優先度の変更なりをお試しください。
(レジストリの優先度変更とかは他の方の記事をご参考ください)
#本題
結論から書くと、TortoiseGitのアイコンオーバーレイを更新してる(と思われる)TGitCache.exeがなんらかの理由で眠ったままの可能性が高いです。
以下、眠れる獅子を起こす2パターンの手順を記載します(どちらもやってることほぼ同じです)
##パターン1:猛る漢の荒療治
まず、タスクマネージャからTGitCache.exeを確認します(CPUも0で眠っていそう)
プロセスの終了をします(ワイルドだろぉ?)
※そんなやり方スマートじゃないですねという紳士な方はパターン2をお試しください。
プロセスが終了されたことを確認したら、エクスプローラから任意のクローンしたフォルダへアクセスします。
しばらく待つと、TGitCache.exeが再起動して処理を行い始めます。
処理を行い始めた時点で順次アイコンオーバーレイは表示されていくと思いますが、
CPU使用が落ち着いたら作業完了です。
##パターン2:クールな紳士の蘇生術
まず、タスクマネージャからTGitCache.exeを確認します。
TortoiseGitの設定からアイコンオーバーレイを表示して、状態のキャッシュを「無し」にして適用します。
※ちなみに無しだとフォルダにはアイコンオーバーレイが表示されて、ファイルには表示されない状態になります。
しばらく待つとTGitCache.exeが消えるので、確認できたら状態のキャッシュを「デフォルト」にして適用します。
エクスプローラから任意のクローンしたフォルダへアクセスします。
しばらく待つと、TGitCache.exeが再起動して処理を行い始めます。
処理を行い始めた時点で順次アイコンオーバーレイは表示されていくと思いますが、
CPU使用が落ち着いたら作業完了です。
#おわりに
同じように困ってる人がこれで救われたら幸いです(`・ω・´)
(もしかしたら自分しか困ってなかった説あるけれど。こういう記事見かけなかったので)