﻿# 如何設定 TortoiseGit 改用 WinMerge 當作 Diff 與 Merge 的主要工具

最近幾個月由於電腦升級到了 Windows 10 (1709) 最新版本，卻發現 [TortoiseGit](https://tortoisegit.org/) 在執行 diff 差異比較的時候，預設的 TortoiseGitMerge.exe 程式，開啟的速度超級超級慢。我用**工作管理員**去查看，也發現 TortoiseGitMerge 的 CPU 使用率，會在剛開啟的時候突然飆高很長一段時間。最後，我也因此被迫換成速度較快的 [WinMerge](http://winmerge.org/) 工具，功能也不差，比內建的好用許多，建議各位也可以換過去用。

要設定 TortoiseGit 改用 WinMerge 當作 Diff 與 Merge 的主要工具其實非常簡單，我個人則是會先準備好一個批次檔，如果重灌電腦或換一台電腦，直接用滑鼠雙擊就可以快速設定完成，需要的人可以[下載](https://gist.github.com/doggy8088/83f8160c2bfdaea38f1d52f07641260f)回去用。

如果要手動設定，以下是 TortoiseGit 設定畫面的示意圖：

**1\. 設定 Diff Viewer**

兩個欄位請輸入以下相同的設定值：

**C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe -s -e -x -ul -ur -wl -dl %bname -dr %yname %base %mine**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/7e95108552db3af681bd-image_3083.png)

**2\. 設定 Merge Tool**

欄位請輸入以下設定值：

**C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe %theirs %mine %merged**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/3edaf4cbb210c39d1d21-image_3084.png)

至於變慢的原因，目前還不明朗，但我在[這則討論串](https://gitlab.com/tortoisegit/tortoisegit/issues/3087)找到了蛛絲馬跡，裡面雖然有許多高手提供解法，不過都不是最佳解。

即便如此，經過一些手動設定，你的 TortoiseGitMerge 執行速度還是會變快些 (但還是比之前慢)，我分享一下設定的方式。

**1\. 關閉 TortoiseGitMerge 的 Use Ribbons 設定**

請先執行 **C:\\Program Files\\TortoiseGit\\bin\\TortoiseGitMerge.exe** 程式，然後找到 **Settings** 功能，將 **Use Ribbons** 取消勾選，如下圖示：  
![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/47d0a2ff8b6be9180d8f-image_3085.png)

**2\. 調整 TortoiseGitMerge.exe 的相容性設定 ( 僅適用 High DPI 的電腦 )**  
請開啟檔案總管，找到 TortoiseGitMerge.exe 程式，點選滑鼠右鍵，選擇「內容」，切換到「相容性」頁籤，勾選「覆蓋高 DPI 縮放行為」，並將「縮放執行者」切換到「系統」。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/bd856336709d87493c26-image_3086.png)

最後，我在[這篇討論串](http://forum.codejock.com/forum_posts.asp?TID=23487&PID=76464#76499)得知這是 Windows 10 1709 的 Bug，微軟預計會在 2018/1/31 推出[更新](https://support.microsoft.com/en-us/help/4058258/windows-10-update-kb4058258)解決這個問題。這個問題不是只有 TortoiseGit 有，很多軟體都遭殃了，但又不是每個人都會遇到此問題，真的蠻詭異的，之後可以看微軟的 Patch 是否會寫出這個問題的來龍去脈。

不過，WinMerge 不但執行速度快，且本來就比 TortoiseGitMerge 好用，而且 WinMerge 也不受這次 Windows 10 1709 的問題所影響，所幸就全部換過去了！

**相關連結**

-   [設定用 WinMerge 取代 TortoiseGitMerge.bat](https://gist.github.com/doggy8088/83f8160c2bfdaea38f1d52f07641260f)
-   [TortoiseGit is slow on Windows 10 1709 (especially TortoiseGitMerge takes long and uses lots of CPU to start with ribbon)](https://gitlab.com/tortoisegit/tortoisegit/issues/3087)
-   [Very slow buttons on Win 10 Fall Creator Update - Codejock Developer Community](http://forum.codejock.com/forum_posts.asp?TID=23487&PID=76464#76499)
-   [Setup Tortoise Git and Winmerge | A Vietnamese developer in Australia](http://thoai-nguyen.blogspot.tw/2012/03/setup-tortoise-git-and-winmerge.html)
-   [使用WinMerge作为git的Merge工具 | 鸟窝](http://colobu.com/2016/05/10/using-winmerge-with-tortoisegit/)
