2009-09-25 192 views
103

我想遞歸比較使用WinMerge的兩個Subversion工作副本文件夾。如何忽略WinMerge中的SVN文件夾?

不幸的是,WinMerge在顛覆控制文件夾(.svn_svn)內部顯示了很多差異文件。

是否有可能以某種方式排除比較中的顛覆文件夾?還是有另一個(免費)的差異工具,能夠做到這一點?

回答

98

嘗試製作文件過濾器

WinMerge處理這個就好了。您想創建並使用Filter。在Tools | Filters... | Filefilters下,創建一個新過濾器或修改現有過濾器。

它看起來是這樣的:

## Ignore Java class and jar files 
f: \.class$ 
f: \.jar$ 

## Ignore subversion housekeeping folders 
d: \\.svn$ 
d: \\._svn$ 

保存它,然後選擇項目進行合併,選擇從Select Files or Folders對話框中定義的過濾器時。獎勵點數:它會保存這個並將其用作未來合併的默認值。

+9

非常感謝!我發現甚至有一個預定義的過濾器來排除源代碼管理文件和文件夾。 – M4N 2009-09-25 13:30:21

+1

嗨馬丁,你可能也想接受4h24d的答案,因爲它比這更簡單,因此迄今爲止投票結果更好。 – chiccodoro 2010-05-28 12:47:16

+0

更好的過濾器「\\\。svn $」(預定義過濾器),以便匹配'。'而'svn'之前不是<任何字符>。 – 2015-08-18 12:29:12

79

嘗試內建文件過濾器

的WinMerge(版本2.12.4)已包括filter排除源控制的文件和目錄,它被稱爲排除源控制

它適用於Subversion,CVS,Git,Bazaar和Mercurial,它不需要您創建過濾器,您只需在比較過程中應用它。

+4

感謝您的信息。我想避免選擇每次我比較。無論如何,我們可以在默認情況下應用「排除源代碼管理」文件嗎? – Mahes 2010-09-16 14:48:43

+0

當我選擇2個文件夾並單擊「比較」時,我沒有在全新安裝中獲得此選項。爲了啓用它,我不得不選擇一個文件夾,點擊「比較...」,顯示一個對話框,其中有一些選項用於過濾器。在這裏,我選擇了第二個文件夾和「排除源代碼管理」過濾器,它工作。過濾器已保存,如果我只選擇2個文件夾並單擊「比較」,過濾器就會被應用而無需使用對話框。 – Liam 2015-08-12 20:55:40

19

取消註釋內置的FileFilter

的WinMerge(版本2.12.4)的某些行已經包括過濾器,但(至少在我安裝)被註釋掉了顛覆,Git和集市的過濾器。

導航位置:Tools | Filters | Filefilters | Exclude Source Control(雙擊編輯)

編輯的線條看起來像這樣:

d: \\.svn$ ## Subversion working copy 
d: \\_svn$ ## Subversion working copy ASP.NET Hack 
d: \\cvs$ ## CVS control directory 
d: \\.git$ ## Git directory 
d: \\.bzr$ ## Bazaar branch 
d: \\.hg$ ## Mercurial repository 
+0

更好的過濾器「\\\。svn $」(預定義的過濾器),以便匹配'。'而'svn'之前不是<任何字符>。 – 2015-08-18 12:29:32