如何在WinMerge中忽略SVN文件夹?


113

我试图使用WinMerge递归比较两个Subversion工作副本文件夹。

不幸的是,WinMerge在Subversion控制文件夹(.svn_svn)中显示了许多差异文件。

是否可以以某种方式从比较中排除Subversion文件夹?还是有另一个(免费的)差异工具能够做到这一点?

Answers:


111

尝试制作一个文件过滤器

WinMerge可以很好地处理此问题。您要创建和使用过滤器。在下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对话框中选择您定义的过滤器。红利点:它将保存并用作以后合并的默认值。


10
非常感谢!我发现甚至有一个预定义的过滤器可以排除源控制文件和文件夹。
M4N

1
马丁,您好,您可能还想接受4h24d的答案,因为它比这个简单而且合适,因此到目前为止票数更高。
chiccodoro

更好地过滤“ \\\。svn $”(预定义过滤器),以便匹配“。” 而不是'svn'之前的<任何字符>。
Werner Henze

84

尝试内置文件过滤器

WinMerge(版本2.12.4)已经包含一个用于排除源控制文件和目录的过滤器,称为“ 排除源控制”

它适用于Subversion,CVS,Git,Bazaar和Mercurial,并且不需要您创建过滤器,您只需要在比较期间应用即可。


4
感谢您的信息。我想避免每次比较时都选择。无论如何,我们可以默认使它应用“排除源代码控制”文件吗?
Mahes 2010年

1
选择2个文件夹并单击“比较”时,没有在全新安装中获得此选项。要启用它,我必须选择一个文件夹,单击“比较...”,这将显示一个对话框,其中包含一些过滤器选项。在这里,我选择了第二个文件夹和“排除源代码管理”过滤器,并且它起作用了。过滤器已保存,因此如果我仅选择2个文件夹并单击“比较”,那么过滤器将不显示对话框而被应用。
利亚姆

22

取消注释内置文件过滤器中的某些行

WinMerge(2.12.4版)已经包含一个过滤器,但是(至少在我的安装中)Subversion,Git和Bazaar的过滤器已被注释掉。

在此处导航:(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

更好地过滤“ \\\。svn $”(预定义过滤器),以便匹配“。” 而不是'svn'之前的<任何字符>。
Werner Henze
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.