如果你覺得SVN的cache程序使得你的機器反應很慢的話,那可以參考這個方案.不過可能要改變你以前使用習慣.
這個方案有兩部分,第一部分是關閉SVN的cache監視;第二部分是顯示文件差異時,使用SVN的“check for modifications”顯示差異。
1.關閉SVN的cache監視。即關閉tsvncache.exe這個程序對目錄的監視。
具體操作步驟如下:
a) 右擊任意目錄打開右鍵菜單,打開"tortoisesvn" => "settings"下的設置窗口
b) 找到"icon overlays"的設置項,將"status cache"設置成"none"
2.使用SVN的“check for modifications”顯示差異
具體操作步驟如下:
a) 右擊需要比較差異的目錄,打開右鍵菜單,打開"tortoisesvn" => "check for modifications",打開比較差異窗口
注:這樣顯示文件差異是因為上面關閉監視后,再有修改程序文件,文件夾不再更新修改標識了,無法再通過查看文件平圖標來知道是否有文件修改。
今天本人這樣修改了,感覺機器強多了!不再有explorer疆死的情況了!爽!
以下是SVN設置框中具體的設置的介紹(摘自:http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/tsvn-dug-settings.html)
此頁面允許你選擇TSVN為哪些條目顯示圖標覆蓋。選擇網絡磁盤可能會非常慢,所以默認情況下不為定位于網絡共享中的工作副本顯示圖標覆蓋。你甚至可以取消所有的圖標覆蓋,但那樣做還剩下什么好玩兒的呢?
USB閃存看上去是個特殊情況,因為驅動類型是設備自主標識的。于是有些顯示為固定驅動器,而有些顯示為可移動磁盤。
By default, overlay icons will appear in all open/save dialogs as well as in Windows Explorer. If you want them to appear only in Windows Explorer, check the Show overlays only in explorer box.
Since it takes quite a while to fetch the status of a working copy, TortoiseSVN uses a cache to store the status in so the explorer doesn't get hogged too much when showing the overlays. You can choose which type of cache TortoiseSVN should use according to your system and working copy size here:
- 默認
-
把所有狀態信息緩存在一個獨立進程中(TSVNCache.exe
)。該進程監視所有驅動器的更改,并在工作副本中的文件被修改時重新獲取其狀態。該進程以最低優先級運行,所以其他程序不會被它擠兌。這同樣意味著狀態信息并不是 實時 的,因為它需要幾秒鐘時間處理圖標覆蓋的變化。
優點: 圖標覆蓋遞歸地顯示狀態,就是說,如果一個處在工作副本深處的文件被修改了,所有途徑的文件夾包括工作副本的根目錄都會顯示出修改的圖標覆蓋。也因為該進程可以向Windows外殼發送通知,資源管理器左面的樹形圖通常也會更改。
缺點: 即使你已經不在項目下工作了,該進程仍然持續運行。取決于你工作副本的數量和大小,它將占用10-50 MB的RAM內存空間。
- Windows 外殼
-
緩存在外殼擴展dll中直接完成,但僅僅是為那些當前可見的文件夾。每次你瀏覽到其他文件夾,狀態信息就會被重新獲取。
優點: 僅僅需要很少的內存(大約1 MB),并且可以 實時 顯示狀態。
缺點: 因為僅有一個文件夾被緩存,圖標覆蓋不會遞歸地顯示狀態。在大一些的工作副本下,它在瀏覽器中顯示一個文件夾將比默認緩存模式花費更多時間。而且 mime-type 列將無效。
- 無
-
在這種設置下,TSVN在瀏覽器里就完全不去獲取狀態了。因此,版本控制下的文件將不會獲得任何圖標覆蓋。文件夾也僅僅有個“正常”狀態的圖標覆蓋,其他的不會顯示,也不會有其他額外的列可用。
優點: 絕對不會占用任何額外的內存,也完全不會減慢瀏覽器的瀏覽速度。
缺點: 文件、文件夾的狀態信息不會顯示在瀏覽器中。要獲知你的工作副本是否被修改了,你需要使用“檢查更新”對話框。
若你選擇了默認選項,將同樣決定如下選擇: 在文件夾包含非版本控制的項目時,把文件夾圖標覆蓋標記為已修改。這個有用的設置可以提醒你已經創建了非版本控制的新文件。
排除路徑 是被用來告訴TSVN 不用 在哪些路徑下顯示圖標覆蓋和狀態列。如果你有些很大的工作副本,而這些工作副本僅僅包含你完全不想改變的庫文件,從而你也不需要顯示圖標覆蓋,這時該功能將會很有用。舉個例子:
填寫 f:\development\SVN\Subversion
將 僅僅 在這個特殊文件夾上取消圖標覆蓋。你仍然可以在該路徑下的所有文件、文件夾上看到圖標覆蓋。
填寫 f:\development\SVN\Subversion*
將在路徑以 f:\development\SVN\Subversion
開始的 所有 文件和文件夾上取消圖標覆蓋。這意味著你在該路徑下的任何文件/文件夾上都將看不到圖標覆蓋了。
包含路徑 也使用同樣的語法。除了有些反例: 即使該路徑處在某個取消圖標覆蓋顯示的特定驅動類型下,或是處在上面的排除路徑之下,也依然會顯示圖標覆蓋。
TSVNCache.exe 同樣使用這些路徑來限制它的掃描。如果你想讓它僅僅在某些特定文件夾里監視,就取消所有的驅動器類型,并僅僅包含你允許被掃描的文件夾。