集成winmerge作爲subversion的diff工具



subversion默認的diff工具比較簡單,文本界面,在使用時不是很理想。

    winmerge則是一款非常優秀的diff/merger工具,由於winmerge自帶和clearcase的集成功能,因此我在公司工作環境下一直都是使用winmerge替代clearcase自帶的diff工具。

    近日使用svn,每次執行svn diff後都對出來的文本比較結果的效果不滿意,即使換成TortoiseSVN的diff工具也還是不夠好。因此產生想法,能否將winmerger集成到subversion.

    google了一下"winmerge subversion",順利在國外的一個blog上找到答案,實驗了一下,很成功,效果非常好,現在將具體方法共享出來。

    設置之前首先請先安裝好subversion和winmerge,之後步驟如下:

    1.建立bat文件
        文件名winmergediff.bat,內容如下:

        start "WinMerge" /B /WAIT "C:\Program Files\WinMerge\WinMergeU.exe" /e /ub /dl %3 /dr %5 %6 %7

        請保證WinMergeU.exe的路徑和實際安裝路徑一致。這個文件放哪裏無所謂,方便起見我放到subversion的客戶端配置目錄中。


    2.修改subversion的客戶端配置文件

   
        在windows下,subversion的客戶端配置文件存放在當前用戶的application data目錄下,具體路徑取決於操作系統。

        在vista下路徑是 C:\Users\**user**\AppData\Roaming\Subversion.
        在windows 2003下路徑是c:\Documents and Settings\**user**\Application Data\Subversion.

        打開config文件,找到這行
            # diff-cmd = ********
        打開註釋,將內容修改爲
            diff-cmd = C:\Users\**user**\AppData\Roaming\Subversion\winmergediff.bat
   

    測試一下,在命令行下執行 svn diff,可以看到winmerge會啓動並顯示兩個不同版本的文件,diff的效果可不是svn那個文本界面能比的。


    順便去官網看了一下,發現現在使用的winmerge的版本比較舊了,下了一個新版本測試了一下,在安裝時發現有兩個選項,分別是和clearcase/TortoiseSVN集成,對於TortoiseSVN用戶就非常的方便了。如果使用綠色版本的winmerge,可以自行手工設置,在settings->external programs->diff viewer中設置:"D:\Program Files\WinMerge\WinMergeU.exe -e -x -ub -dl %bname -dr %yname %base %mine"。


    對於其他的版本控制工具,winmerge提供了相應的集成方法,詳細請看官網文檔
    Version control integration
    http://winmerge.org/docs/manual/VersionControl.html

    飲水思源,貼出來找到的blog地址,作者還試過集成windiff,使用類似工具的朋友可以參考他的方法。
    http://flimflan.com/blog/UsingWinMergeWithSubversion.aspx

    值得注意的是有個回帖,提到一個改進,"single-instance behavior",不清楚這個特性的作用,有興趣的朋友可以研究一下:


I have what I think is an improvement -- the latest version of WinMerge allows you to have "single-instance behavior"-- ie. One instance of WinMerge can have several diff sessions (comparisons of pairs of files) open in it.

 To use this, just take out the "/WAIT" and add the "/s":

 start "WinMerge" /B "C:\Program Files\WinMerge\WinMergeU.exe" /e /s /ub /dl %3 /dr %5 %6 %7



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章