The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

TortoiseSVN 匯出新增或修改過的檔案時無法正確處理中文

我前幾天有分享過一篇如何讓 TortoiseSVN 僅匯出新增或修改過的檔案文章,不過也因為發現了這個技巧進而發現一個 TortoiseSVN 潛在的 Bug,也就是當我從 Changed Files 對話框使用 Export selection to ... 匯出功能時,只要匯出的檔按名稱中有中文出現,就有可能會無法匯出、或匯出的檔案會被 URLEncode 過。我因此到 TortoiseSVN 的 Mailling List 發問,TortoiseSVN 的作者 Stefan Ku"ng 在短短一天內就回覆我說問題已修正, 不過我怎麼測試就是沒辦法正常匯出!

TortoiseSVN - Compare revisions - Changed Files - Export selection to ...

因為這個問題困擾了我將近 10 天的時間,我跟作者不斷的往來信件 (總共來往30封信),作者一直跟我說無法重新發生跟我一樣的問題(Reproduce Problem),所以我就不斷的測試,想找出真正的原因在哪。這幾天看了 TortoiseSVN 的原始碼(Visual C++ 看不太懂)、改了註冊檔(Registry)、建立了一個測試的 SVN Repository 給作者(我怎麼測都不行,他怎麼測都可以)。

我自己不甘心這問題無法解決,堅持了 10 天終於讓我真正發現問題所在,最後原來是只要匯出檔案到「磁碟根目錄下」才會出現此問題,匯出到其他「子目錄」都沒問題,我這個死腦筋,連測了 10 天都匯出到我的 RamDisk 的根目錄裡,跟【茶包射手專欄】無疾而終的ChromeSetup這邊說到的情況還真有點異曲同工之妙(呵呵)。

TortoiseSVN 畢竟是每天要用的工具軟體,所以當我找出問題所在後,作者也順利將此問題修復了!等不及的人可以直接到 nightly builds 下載回來安裝,或是等到下次 Stable Release 就可以修正這個問題了!(估計應該是 TortoiseSVN 1.5.4 或 1.5.5 的版本,只要是 Revision 數大於 r13970 的都可以就是了)

詳細的討論文章在這裡:Problem occurs when export Compare revisions,好奇的人或許會想看一下。