Sky's blog

          我和我追逐的夢

          導航

          <2009年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          留言簿(8)

          隨筆分類

          隨筆檔案

          閱讀排行榜

          評論排行榜

          常用鏈接

          統計

          其他鏈接

          友情鏈接

          最新評論

          集成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 閱讀(2978) 評論(0)  編輯  收藏 所屬分類: Version Control

          主站蜘蛛池模板: 衡东县| 清涧县| 海淀区| 白水县| 揭东县| 广水市| 新邵县| 二连浩特市| 阜城县| 泊头市| 上林县| 柯坪县| 通州区| 新巴尔虎左旗| 嘉善县| 平和县| 饶阳县| 沁水县| 望城县| 呈贡县| 资溪县| 绍兴县| 牡丹江市| 绍兴市| 长子县| 玉林市| 南昌县| 静宁县| 吉隆县| 黑龙江省| 吉林省| 江油市| 南京市| 仁化县| 鄂托克前旗| 乌拉特前旗| 淅川县| 通河县| 依兰县| 湘潭市| 分宜县|