我正在尝试使用 WinMerge 递归比较两个 Subversion 工作副本文件夹。
不幸的是,WinMerge 在颠覆控制文件夹内显示大量差异文件(
.svn
或 _svn
)。
是否可以以某种方式从比较中排除 subversion 文件夹?
WinMerge 可以很好地处理这个问题。您想要创建并使用 Filter。在
Tools | Filters... | Filefilters
下,创建一个新过滤器或修改现有过滤器。
它看起来像这样:
## Ignore Java class and jar files
f: \.class$
f: \.jar$
## Ignore subversion housekeeping directories
d: \\.svn$
d: \\._svn$
保存它,然后在选择要合并的项目时,从
Select Files or Folders
对话框中选择您定义的过滤器。加分点:它将保存它并将其用作将来合并的默认值。
WinMerge(版本 2.12.4)已经包含一个 filter 来排除源代码控制文件和目录,它被称为 Exclude Source Control。
它适用于 Subversion、CVS、Git、Bazaar 和 Mercurial,并且不需要您创建过滤器,您只需在比较过程中应用它即可。
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
不幸的是,从命令行使用 WinMerge 时,内置版本控制过滤器不起作用。 查看 WinMerge 帮助: 使用过滤器 -> 使用文件过滤器 -> 文件过滤器语法 1.2。文件掩码语法和示例
以下内容使我可以跳过 .git 目录:
WinMergeU.exe /f '!.git\' dir_1 dir_2