Как игнорировать папки SVN в WinMerge?

Я пытаюсь рекурсивно сравнить две папки рабочей копии Subversion с помощью WinMerge.

К сожалению, WinMerge отображает множество разных файлов внутри папок управления subversion (.svn или _svn).

Можно ли каким-то образом исключить папки subversion из сравнения? Или есть другой (бесплатный) инструмент diff, который может это сделать?

Ответ 1

Попробуйте сделать Filefilter

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. Бонусные баллы: он сохранит это и будет использовать его по умолчанию для будущих слияний.

Ответ 2

Попробуйте встроенный файловый фильтр

WinMerge (версия 2.12.4) уже включает filter, чтобы исключить файлы и каталоги управления версиями, и он называется Исключить контроль источника.

Он работает для Subversion, CVS, Git, Bazaar и Mercurial, и не требует создания фильтра, вам просто нужно применить его во время сравнения.

Ответ 3

Раскомментировать некоторые строки встроенного файлового фильтра

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