2009-09-25 303 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