如何不被 TortoiseSVN 拖慢系統效率

由於某些技術上的原因,TortoiseSVN 的效率,其實不是很好。我在處理一些大 project 的時候,常常會有整台機器 hang 住的情況,直到把 TSVNCache.exe 砍掉後才能恢復。所以 TortoiseSVN 的主要開發者 Stefan Kueng 最近就發表了一篇文章叫《Optimize performance》,教大家如何調校,以增進 TortoiseSVN 的運作效率。

不過,原文標題是「增進效率」,但我實在是要換個方法來講,因為這些調校,其實是在「避免系統效率被 TortoiseSVN 拖累」啊!

以下用我自己的話,簡單介紹怎樣不被 TortoiseSVN 拖累:

  • 不要把你的 working copy,放在網路磁碟機裡。TortoiseSVN 常要作一些複雜的事,好比說 recursive 進去每個子目錄,檢查是否有檔案被更動過,以便顯示 icon overlay。網路磁碟機的運作速度本來就很慢了,如果這些複雜的事,必須在網路磁碟機上做,當然效率就更差了。這第一條建議,就把我打死在路邊,因為我總是為了貪圖 unix tool 的方便,而使用 samba 分享 working copy 到 windows 上使用,也因此,所以常會碰到這些效率的問題。解決之道當然就是不要這麼作,幸好最近發現 GnuWin32 比起以前的 UnxTools 要來的齊全很多,現在大部分的 unix style 操作,也都可以在 Windows 上進行了。
  • 減少 working copy 的量。TortoiseSVN 會監控「所有」被 checkout 出來的 working copy,偵測其是否有所更動,以便存於 cache 裡,讓我們能夠在 explorer 裡「即時」看到檔案的狀況。因此,暫時不會用到的 working copy,如上個月臨時要改某項功能而被 checkout 出來的某個 branch,就可以先砍掉,等到下次要用時再重新 checkout。也就是說,事情作完了,就把目錄砍掉吧。按照 Subversion 的 zero-cost branching 的邏輯,我們實際上也是應該常常 branch,事情做完後就把 branch 幹掉。
  • 讓 TortoiseSVN 知道你會把 working copy 放在哪。否則的話,TortoiseSVN 就必須檢查整顆硬碟,找出所有的 working copy 以便監控。如果 TortoiseSVN 知道 working copy 只會在哪裡有的話,就可以不必這麼辛苦,當然效率也就會好很多囉。假設平常我們把 working copy 都放在 C:/jeffhung/wc/ 目錄下[1],在設定視窗裡的 Icon Overlays 頁面,把 C:/jeffhung/wc/* 加進 Include paths 裡,然後把 C:/* 加進 Exclude paths 裡,即可讓 TortoiseSVN 只檢查 C:/jeffhung/wc/*,而不會監控整顆硬碟。所以原來設定視窗裡的這兩個欄位,是用來傳給 File System Monitoring 的 SDK API 用的。
  • 只在 explorer 裡顯示 overlay。TortoiseSVN 最大的賣點,就是與 explorer 整合,即時在 icon 上 overlay 顯示檔案狀態。然而,由於一般應用程式的 File Open 或 File Save 對話視窗,也都是直接呼叫系統對話視窗來進行,因此 overlays 也會有作用,而這便會降低程式的執行效能。因此,如果在這些地方,我們沒有需要知道檔案的版本狀態的話,我們就可以在 TortoiseSVN 裡啟動 Show overlays only in explorer,讓 overlays 只在 explorer 裡出現,這樣應用程式的執行速度,就不會被 TortoiseSVN 拖累了。

這篇也確實解釋了,TortoiseSVN 設定視窗裡,一些奇妙的欄位的真正功用為何。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值