TortoiseSVN文件夾及文件圖標(biāo)不顯示問題解決方法(兼容xp、window7與64位)

最近遇到TortoiseSVN圖標(biāo)(如上圖:增加文件圖標(biāo)、文件同步完成圖標(biāo)等)不顯示問題,網(wǎng)上找到的解決方法試了很多都無法真正解決,最后總結(jié)了一下,找到了終極解決方案,當(dāng)然此方案也有弊端,接下來我們就研究、分析、解決這個(gè)問題。
打開資源管理器,怎么都看不到已經(jīng)同步的文件夾顯示已同步圖標(biāo)。到SVN的設(shè)置面板,也找不到任何相關(guān)的解決辦法。
不過有一天,使用DW瀏覽文件,定位到文件,這時(shí)候發(fā)現(xiàn)了已同步圖標(biāo)。這就更讓人疑惑了,但是最起碼證明,圖標(biāo)文件沒有丟失,只是因?yàn)槟撤N原因,沒辦法顯示出來,那就有可能是軟件沖突了。
可是近期七七八八裝了不少東西,到底是哪個(gè)的原因呢?
不明原因,所以,百度google之,發(fā)現(xiàn)還是挺多人遇到這情況的,現(xiàn)摘錄如下:
“開始以為是TortoiseSVN壞了,于是重裝,但結(jié)果還是一樣。于是找了好多資料,終于發(fā)現(xiàn)癥結(jié)所在--原來是Windows對覆蓋圖標(biāo)類型的數(shù)據(jù) 限制的原因。Windows最多只允許15個(gè)覆蓋圖標(biāo),它自己又用了幾個(gè),結(jié)果給用戶用的就11個(gè)左右了(這個(gè)限制一直都Windows 7都沒有放寬,真不知微軟是怎么想的)。TortoiseSVN標(biāo)準(zhǔn)會(huì)使用7個(gè)(普通圖標(biāo)、已修改圖標(biāo)、沖突指示圖標(biāo)、已刪除圖標(biāo)、新增文件圖標(biāo)、忽略圖 標(biāo)、未版本化圖標(biāo)等),這樣剩下可用的就少之又少了。如果再安裝了網(wǎng)盤軟件(如:快盤,Dropbox等),那就更慘了,它們各自又會(huì)使用3個(gè)左右的覆蓋 圖標(biāo),這樣,覆蓋圖標(biāo)當(dāng)然遠(yuǎn)遠(yuǎn)不夠用了。
那么,覆蓋圖標(biāo)的設(shè)置保存在Windows的哪個(gè)地方呢?如果有超過11個(gè)的覆蓋圖標(biāo),Windows如何選擇顯示哪些屏蔽哪些呢?下面繼續(xù)…
所有應(yīng)用程序的覆蓋圖標(biāo)都需要在注冊表“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionExplorerShellIconOverlayIdentifiers”下面增加一個(gè)項(xiàng)目,當(dāng)需要顯示覆蓋圖標(biāo) 時(shí),Windows會(huì)按照項(xiàng)目名稱的字母順利依次查詢在這些項(xiàng)目里所指示的接口,以檢測是否有覆蓋圖標(biāo),當(dāng)檢測到11個(gè)有效的接口后,Windows就會(huì) 自動(dòng)停止繼續(xù)向下檢測,這樣,后來的覆蓋圖標(biāo)就不會(huì)顯示了。
知道原理了,解決問題就好辦了。我們可以分析一下在這個(gè)注冊表項(xiàng)下的所有項(xiàng)目,看哪些覆蓋圖標(biāo)是需要的,哪些是不需要的,把不需要的項(xiàng)目的名稱改一下,前 面加個(gè)“z”,這樣,這個(gè)表項(xiàng)按字母排序就自動(dòng)排到最后面了。哪些是不需要的呢?比如:網(wǎng)盤的“正在同步圖標(biāo)”就沒什么用,可以去掉。其它的,可以自己看 著辦了。
如果你進(jìn)行調(diào)整后,把TortoiseSVN的所有覆蓋圖標(biāo)全部提前,但TortoiseSVN仍然不會(huì)顯示忽略圖標(biāo)、未版本化圖標(biāo)。為什么呢?研 究了TortoiseSVN的源代碼才發(fā)現(xiàn),原來TortoiseSVN會(huì)自己分析在ShellIconOverlayIdentifiers中注冊的覆 蓋圖標(biāo)數(shù),如果注冊了太多,TortoiseSVN會(huì)自動(dòng)屏蔽一些無關(guān)緊要的圖標(biāo),目的是讓別人軟件的覆蓋圖標(biāo)盡可能有機(jī)會(huì)顯示。也就是說,如果你希望, 顯示TortoiseSVN的這些它自己認(rèn)為“無關(guān)緊要”的覆蓋圖標(biāo),你需要?jiǎng)h除一些別的程序的圖標(biāo),把覆蓋圖標(biāo)的總數(shù)減小到13個(gè)以下,這 時(shí),TortoiseSVN才會(huì)正常顯示忽略圖標(biāo)、未版本化圖標(biāo)等無關(guān)緊要的圖標(biāo)。”
----------------------- 分割線 -------------------------------------------------------
對于我自己機(jī)器, 看了下注冊表,ShellIconOverlayIdentifiers的目錄樹如下:
!!!BoxFlashSyncExt1
!!!BoxFlashSyncExt2
!!!BoxFlashSyncExt3
!!!BoxFlashSyncExt4
!IconOverlay_Conflict
!IconOverlay_ForbidSync
!IconOverlay_LargeFile
!IconOverlay_Synced
!IconOverlay_Syncing
.KLive_OverlayIcon_ForbidSync
.KLive_OverlayIcon_Synced
.KLive_OverlayIcon_Syncing
1TortoiseNormal
2TortoiseModified
360UDiskGuard Icon Overlay
3TortoiseConflict
4TortoiseLocked
5TortoiseReadOnly
...
...
怪不顯示不出SVN的圖標(biāo)呢,在SVN要overlay icon前面有好多個(gè)野蠻的icon,酷盤、115 、快盤三個(gè)網(wǎng)盤也是想盡了千方百計(jì)讓自己的overlay icon能夠被顯示出來。居然連感嘆號,空格都用上了。
酷盤對應(yīng)的overlayicon為:
!!!BoxFlashSyncExt1
!!!BoxFlashSyncExt2
!!!BoxFlashSyncExt3
!!!BoxFlashSyncExt4
115 對應(yīng)的overlayicon為:
!IconOverlay_Conflict
!IconOverlay_ForbidSync
!IconOverlay_LargeFile
!IconOverlay_Synced
!IconOverlay_Syncing
快盤對應(yīng)的overlayicon為:
.KLive_OverlayIcon_ForbidSync
.KLive_OverlayIcon_Synced
.KLive_OverlayIcon_Syncing
既然知道原理了,那就挨個(gè)把網(wǎng)盤干掉吧。
其中:115網(wǎng)盤屬于半綠色安裝,因?yàn)橹挥蠸ync115Ext.dll (在C:Users用戶名AppDataRoaming115Box) 被注冊,它正在shell overlay icon對應(yīng)的dll,因此,只需要將它反注冊一下就可以了:regsvr32 /u Sync115Ext.dll。
經(jīng)過卸載,ShellIconOverlayIdentifiers的目錄樹終于干凈了,目錄樹如下:
1TortoiseNormal
2TortoiseModified
360UDiskGuard Icon Overlay
3TortoiseConflict
4TortoiseLocked
5TortoiseReadOnly
...
...
最后,重啟一下,或注銷一下,SVN圖標(biāo)終于重建天日。
最后終極解決方案:
在網(wǎng)上有部分解決方案是更改SVN圖標(biāo)名稱,讓其排序靠前來解決此問題,但是在window xp下我通過此方法無法解決此問題,猜測應(yīng)該是即使SVN圖標(biāo)排序靠前,但是SVN仍然會(huì)將自己的圖標(biāo)優(yōu)先權(quán)讓給其他軟件,所以最有效的解決方案是刪除所有其他軟件的圖標(biāo),只留下SVN的圖標(biāo),但是此方法的弊端是360云盤、百度云盤等其他軟件無法顯示圖標(biāo),所以具體如何解決此方案,還是大家自己權(quán)衡吧!
1、 到C:Windows文件夾下,打開regedit.exe
2、 Ctrl+F,搜索“ShellIconOverlayIdentifiers”
3、 把ShellIconOverlayIdentifiers下面的節(jié)點(diǎn)非SVN的全部刪除即可。
最終效果如下圖
3、刪除完其他軟件的節(jié)點(diǎn)后,可以重啟電腦或者在任務(wù)管理器中結(jié)束explorer.exe進(jìn)程(如下圖),
然后在任務(wù)管理器中重新開啟explorer.exe進(jìn)程,如下圖,單擊任務(wù)管理器->文件->新建任務(wù)(運(yùn)行...
然后進(jìn)入下圖窗口,
在打開中輸入:C:WINDOWSexplorer.exe 單擊確定即可!
完成上述操作,再次打開SVN客戶端目錄,刷新就可以看到圖標(biāo)了,祝你好運(yùn)!
Win7 64位下TortoiseSVN的文件夾及文件SVN圖標(biāo)不顯示正確解決方法
最近為了代碼版本管理,安裝了SVN服務(wù)端與客戶端,安裝TortoiseSVN之后,功能正常,但是就是文件夾或文件夾的左下角就是不顯示SVN圖標(biāo),之前在XP上是正常顯示的。通過網(wǎng)絡(luò)查找,發(fā)現(xiàn)以下方法可以解決問題。
Windows Explorer Shell 支持的 Overlay Icon 最多 15 個(gè),Windows 自身使用了 4 個(gè),只剩 11 個(gè)可擴(kuò)展使用,可能這 11 個(gè)位置部分可能被其他的軟件占用了,導(dǎo)致 TortoiseSVN的某些重要的圖標(biāo)不顯示了。不過,可以重新命名以調(diào)整 Tortoise 圖標(biāo)名稱的字母順序,讓SVN的排在前面,Windows 內(nèi)部就是按圖標(biāo)名稱的字母順序來優(yōu)先顯示的。
第一:
輸入:win+R,(開始->運(yùn)行)輸入regedit.exe,調(diào)出注冊表管理器
(1)按下Ctrl+F,在注冊表里搜索 ShellIconOverlayIdentifiers
(2)或是查找: HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows -> CurrentVersion -> Explorer -> ShellIconOverlayIdentifiers
第二:將TortoiseAdded、TortoiseConflict……TortoiseUnversioned 右鍵->重命名,如命名為:0TortoiseAdded、1TortoiseConflict……8TortoiseUnversioned。如下圖:
第三: 重啟或是注銷電腦之后,最后文件夾連接服務(wù)器后有了圖標(biāo)
相關(guān)文章
- 當(dāng)遇到USB接口驅(qū)動(dòng)異常時(shí),可以通過多種方法來解決,其中主要就包括重裝USB控制器、禁用USB選擇性暫停設(shè)置、更新或安裝新的主板驅(qū)動(dòng)等2025-04-23
解除U盤有寫保護(hù)的方法(詳細(xì)步驟與解決方案)
在日常使用U盤的過程中,許多用戶可能會(huì)遇到U盤突然無法寫入數(shù)據(jù)的問題,這通常是由于U盤被寫保護(hù)所致,寫保護(hù)功能雖然可以防止數(shù)據(jù)被意外修改或刪除,但在需要寫入新數(shù)據(jù)時(shí)2024-12-14- 最近配置了服務(wù)器,并做了磁盤陣列,突然有一天硬盤找不到了,然后重新陣列找回,但在磁盤管理器中發(fā)現(xiàn)雖然可以看到分區(qū)了,但提醒硬盤是只讀模式無法寫入文件,參考如下方2024-12-14
電腦無法正常啟動(dòng)開機(jī)怎么辦? 手把手教你排查故障
電腦是現(xiàn)代人生活中不可缺少的工具,但有時(shí)候我們會(huì)遇到電腦開機(jī)失敗的情況,這時(shí)候我們應(yīng)該怎么辦呢?本文將從多個(gè)方面為大家介紹解決辦法2024-10-26電腦藍(lán)屏代碼memory_management怎么解決? 系統(tǒng)藍(lán)屏原因
電腦突然藍(lán)屏,顯示memory management,上來就被這串英文鎮(zhèn)住了,藍(lán)屏memory management是什么?為什么會(huì)出現(xiàn)藍(lán)屏memory management呢?,詳細(xì)請看下文介紹2024-08-01如何解決wpcap.dll丟失? 電腦wpcap.dll文件破損的修復(fù)方法
如果文件wpcap.dll丟失有什么辦法可以解決,出現(xiàn)wpcap.dll丟失的的原因又是因?yàn)槭裁茨??今天就大家了解一下wpcap.dll文件,希望能夠你給在解決wpcap.dll文件的問題上有所幫2024-08-01pasmutility.dll缺失怎么辦? 電腦pasmutility.dll丟失的修復(fù)技巧
如果你在打開某些程序或者游戲時(shí)遇到了“缺失pasmutility.dll”的錯(cuò)誤提示,不要驚慌,這是一個(gè)非常普遍的問題,下面我們就來看看詳細(xì)的教程2024-08-01svcapicall.dll丟失怎么解決? 電腦提示svcapicall.dll文件損壞的修復(fù)技
在使用電腦的過程中,有時(shí)會(huì)遇到各種各樣的問題,其中之一就是dll文件丟失的情況,特別是當(dāng)出現(xiàn)svcapicall.dll丟失的問題時(shí),很多人可能會(huì)束手無策,,下面我們就來看看這個(gè)2024-07-30ser32.dll丟失怎么辦? 電腦提示ser32.dll文件丟失破損的修復(fù)方法
如果出現(xiàn)user32.dll丟失的情況,可能會(huì)影響操作系統(tǒng)的正常運(yùn)行,今天這篇文章本文將介紹電腦缺失user32.dll丟失的解決辦法,詳細(xì)說明解決步驟2024-07-30msstdfmt.dll文件損壞丟失怎么辦? 快速的修復(fù)msstdfmt.dll丟失的方法
你是否曾經(jīng)碰到過弄丟msstdfmt.dll文件的情況呢?如果你遇到此問題,不必驚慌,在本文中,將為您介紹幾種修復(fù)msstdfmt.dll文件的方法,幫助您解決這一問題2025-03-20