Sky's blog

          我和我追逐的夢

          常用鏈接

          統計

          其他鏈接

          友情鏈接

          最新評論

          集成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



          posted on 2009-03-05 17:31 sky ao 閱讀(2987) 評論(0)  編輯  收藏 所屬分類: Version Control

          主站蜘蛛池模板: 钟山县| 将乐县| 元江| 凭祥市| 保山市| 那坡县| 军事| 宿迁市| 桂林市| 理塘县| 保定市| 乌拉特中旗| 论坛| 香河县| 武威市| 乐亭县| 肃南| 洛川县| 阳西县| 赣州市| 杭锦旗| 秦安县| 微山县| 全椒县| 张北县| 北流市| 靖安县| 改则县| 惠来县| 临潭县| 台州市| 大庆市| 赫章县| 浦东新区| 潼关县| 南涧| 沁水县| 苏尼特右旗| 怀集县| 吉首市| 筠连县|