最近幾個月由於電腦升級到了 Windows 10 (1709) 最新版本,卻發現 TortoiseGit 在執行 diff 差異比較的時候,預設的 TortoiseGitMerge.exe 程式,開啟的速度超級超級慢。我用工作管理員去查看,也發現 TortoiseGitMerge 的 CPU 使用率,會在剛開啟的時候突然飆高很長一段時間。最後,我也因此被迫換成速度較快的 WinMerge 工具,功能也不差,比內建的好用許多,建議各位也可以換過去用。
要設定 TortoiseGit 改用 WinMerge 當作 Diff 與 Merge 的主要工具其實非常簡單,我個人則是會先準備好一個批次檔,如果重灌電腦或換一台電腦,直接用滑鼠雙擊就可以快速設定完成,需要的人可以下載回去用。
如果要手動設定,以下是 TortoiseGit 設定畫面的示意圖:
1. 設定 Diff Viewer
兩個欄位請輸入以下相同的設定值:
C:\Program Files (x86)\WinMerge\WinMergeU.exe -s -e -x -ul -ur -wl -dl %bname -dr %yname %base %mine
2. 設定 Merge Tool
欄位請輸入以下設定值:
C:\Program Files (x86)\WinMerge\WinMergeU.exe %theirs %mine %merged
至於變慢的原因,目前還不明朗,但我在這則討論串找到了蛛絲馬跡,裡面雖然有許多高手提供解法,不過都不是最佳解。
即便如此,經過一些手動設定,你的 TortoiseGitMerge 執行速度還是會變快些 (但還是比之前慢),我分享一下設定的方式。
1. 關閉 TortoiseGitMerge 的 Use Ribbons 設定
請先執行 C:\Program Files\TortoiseGit\bin\TortoiseGitMerge.exe 程式,然後找到 Settings 功能,將 Use Ribbons 取消勾選,如下圖示:
2. 調整 TortoiseGitMerge.exe 的相容性設定 ( 僅適用 High DPI 的電腦 )
請開啟檔案總管,找到 TortoiseGitMerge.exe 程式,點選滑鼠右鍵,選擇「內容」,切換到「相容性」頁籤,勾選「覆蓋高 DPI 縮放行為」,並將「縮放執行者」切換到「系統」。
最後,我在這篇討論串得知這是 Windows 10 1709 的 Bug,微軟預計會在 2018/1/31 推出更新解決這個問題。這個問題不是只有 TortoiseGit 有,很多軟體都遭殃了,但又不是每個人都會遇到此問題,真的蠻詭異的,之後可以看微軟的 Patch 是否會寫出這個問題的來龍去脈。
不過,WinMerge 不但執行速度快,且本來就比 TortoiseGitMerge 好用,而且 WinMerge 也不受這次 Windows 10 1709 的問題所影響,所幸就全部換過去了!
相關連結