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

129

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

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

有没有可能从比较中排除Subversion文件夹?还是有其他(免费)的差异工具可以做到这一点?

3个回答

130

尝试创建一个文件过滤器

WinMerge可以很好地处理这个问题。你需要创建并使用一个过滤器。在工具|过滤器...|文件过滤器下,创建一个新的过滤器或修改现有的过滤器。

它将看起来像这样:

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

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

保存后,在选择要合并的项目时,从选择文件或文件夹对话框中选择您定义的筛选器。额外加分:它将保存此设置并将其用作将来合并的默认设置。


10
非常感谢!我发现甚至有一个预定义的过滤器可以排除源代码控制文件和文件夹。 - M4N
1
嗨,马丁,你可能也想接受4h24d的答案,因为它比这个简单并且合适,因此到目前为止已经得到更好的投票。 - chiccodoro
2
更好的过滤器 "\.svn$"(预定义过滤器),以便匹配在 'svn' 之前有 '.' 而不是 <任何字符>。 - Werner Henze

90

试用内置文件过滤器

WinMerge (2.12.4版本) 已经内置了一个文件过滤器,可以排除源代码控制系统的文件和目录,该过滤器被称为排除源代码控制

它适用于Subversion、CVS、Git、Bazaar和Mercurial,使用时无需创建过滤器,只需要在比较期间应用即可。


4
谢谢提供信息。我希望避免每次比较时都需要选择。有没有办法默认应用“排除源代码控制”文件呢? - Mahes
2
当我选择了两个文件夹并点击“比较”时,在新安装中我没有看到这个选项。为了启用它,我必须选择一个文件夹,点击“比较...”,这将显示一些过滤器选项的对话框。在这里,我选择了第二个文件夹和“排除源代码控制”过滤器,然后它就起作用了。该过滤器已保存,因此如果我只选择2个文件夹并单击“比较”,则会应用该过滤器而无需对话框。 - Liam

26

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

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

导航到这里:工具| 过滤器| 文件过滤器| 排除源代码控件(双击进行编辑)

将这些行编辑为以下内容:

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

1
更好的过滤器 "\.svn$"(预定义过滤器),以便匹配在 'svn' 之前有 '.' 而不是 <任何字符>。 - Werner Henze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接