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

问题描述 投票:0回答:5

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

不幸的是,WinMerge 在颠覆控制文件夹内显示大量差异文件(

.svn
_svn
)。

是否可以以某种方式从比较中排除 subversion 文件夹?

svn diff winmerge
5个回答
130
投票

尝试制作文件过滤器

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
对话框中选择您定义的过滤器。加分点:它将保存它并将其用作将来合并的默认值。


90
投票

尝试内置文件过滤器

WinMerge(版本 2.12.4)已经包含一个 filter 来排除源代码控制文件和目录,它被称为 Exclude Source Control

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


26
投票

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

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

0
投票

您可以在

Select Files
对话框中指定最新版本:

参见https://github.com/WinMerge/winmerge/discussions/1571


0
投票

不幸的是,从命令行使用 WinMerge 时,内置版本控制过滤器不起作用。 查看 WinMerge 帮助: 使用过滤器 -> 使用文件过滤器 -> 文件过滤器语法 1.2。文件掩码语法和示例

以下内容使我可以跳过 .git 目录:

WinMergeU.exe /f '!.git\'  dir_1  dir_2
© www.soinside.com 2019 - 2024. All rights reserved.