2015年11月2日月曜日

[TortoiseSVN] アイコンオーバーレイが表示されなくて困ったけど一応解決できたよ

TortoiseSVN のアイコンオーバーレイが表示されなくなってしまい、
非常に困っていたのですがなんとか解決できました。

この問題は検索したらたくさん解決方法がヒットします。例えば、

私の環境で起きていた問題も、ShellIconOverlayIdentifiers の数制限が原因でした。

対処方法
  • TortoiseSVN を新しいバージョンに更新する。
    新しいバージョンだと、ShellIconOverlayIdentifiers のプライオリティが上がって TortoiseSVN のアイコンが優先的に表示されるようになりました。
  • ShellIconOverlayIdentifiers レジストリから不要なものを消す。
    仕事のPCでは TortoiseSVN の更新ができない状況だったため、参考URL にもあるように
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
    から不要なものを削除しました。
    (64bit だと HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node にも同様のキーがある)
    削除したら explorer を再起動。

これでとりあえず、解決できたのですが、
仕事PCの方はいつの間にかまたアイコンが表示されなくなってしまいました。。。
なんでかな?ともう一度レジストリを見ると、消したはずの DropboxExt が元に戻ってるではありませんか!

なんだか勝手に修復するみたいです。なんてヤツだ全く(いや、正しいと思います。でもいらないの。)

今度は、キーを削除しないでキーの既定の文字列を無効な文字列に書き換えてやりました
ただし、デタラメな文字列にしてもダメで、また復元されてしまいました。
上記リンク先にも書いてあるように、GUID を残しつつ無効な文字列にする必要があるようです。
例)MANUALLY_EDITED_{00000000-0000-0000-0000-000000000000}


簡単に DropboxExt のレジストリを書き換えるバッチファイルを書いたので、ご自由にお使いください。
(ただし、使用は自己責任でお願いします。バックアップを取るなりしてください。)
https://gist.github.com/srz-zumix/42121dc8dbabc651dc81


訂正。DropboxExt を書き換えても復元されてしまうので、上記方法は×でした。
なので、TortoiseSVN の方のレジストリキー名を変更して、DropboxExt より優先される名前に(先頭にスペースを2つ追加)しました。



それにしてもアイコンオーバーレイの上限数が少ないですよね。
これってなんとかできないんですかねぇ。根本的な解決ができたらいいのですが…



ともあれ、これでなんとか解決できたので今は良しとしておきます。
それでは。

0 件のコメント:

コメントを投稿