如何配置BeyondCompare以忽略注释中的SCM替换文本?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我确实有一些文本序列被SCM替换(在我的例子中是Perforce)。

我确实想配置BeyondCompare,将这些序列视为不重要的差异,以便在比较文件时能够忽略它们。

在我的例子中,它是关于Python源文件的,序列看起来像

# $Id: //depot/.../filename#7 $
# $DateTime: 2010/09/01 10:45:29 $
# $Author: username $
# $Change: 1234 $
提问于
用户回答回答于

Beyond的解析器目前不支持嵌套元素(v3/v4),因此,如果文本已经被归类为注释、字符串等,那么文件格式语法就不能用于将SCM序列标记为对特定文件类型不重要。

BeytCompon4.0在整个比较中增加了对任意文本标记为不重要的支持,这与语法是分开的。

  1. 加载感兴趣的文件
  2. 单击会话设置按钮(又名)规则)或使用会话->会话设置菜单项。
  3. 切换到重要性标签
  4. 单击+按钮的底部。不重要文本名单。
  5. 将纯文本或正则表达式添加到要查找的文本编辑并检查正则表达式如有必要,请选中复选框。在这种情况下,正则表达式是:\$(Id|DateTime|Author|Change):.*\$
  6. 点击好的...
  7. 默认情况下,这些更改只会影响当前的比较。可以将会话设置对话框底部的组合框更改为仅用于此视图还更新会话默认值若要使其影响所有文件类型的未来所有比较,请执行以下操作。
用户回答回答于

需要定义一个新的语法元素(让我们称之为“SCM”),并将其标记为不。

语法元素应该是:

^.*\$(Id|DateTime|Author|Change):.*$

这将忽略任何包含$Id:,,,$DateTime:等等。

如果只想忽略以# $...,使用

^\s*#s*\$(Id|DateTime|Author|Change):.*$

如果你只想忽略$(并将其他一切视为重要),使用

\$[^$\r\n]*\$

\$(Id|DateTime|Author|Change)[^$\r\n]*\$

取决于是否关心这些关键字。

扫码关注云+社区