首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何配置BeyondCompare忽略注释中的SCM替换文本?

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

Stack Overflow用户
提问于 2010-09-06 22:42:43
回答 2查看 7.5K关注 0票数 19

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

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

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

代码语言:javascript
复制
# $Id: //depot/.../filename#7 $
# $DateTime: 2010/09/01 10:45:29 $
# $Author: username $
# $Change: 1234 $

有时这些序列可以是外部注释,但即使在这种情况下,我也希望能够忽略这些行,因为它们并没有真正更改。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-30 05:59:12

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

Beyond Compare 4.0添加了对在整个比较中将任意文本标记为不重要的支持,独立于语法。

  1. 加载您感兴趣的文件
  2. 单击会话设置按钮(也称为Rules w/裁判图标)或使用会话->会话设置<代码>E29菜单项。H210H111切换到列表底部的重要性+按钮。
  3. 将纯文本或正则表达式添加到文本以查找如有必要,请编辑并选中E224复选框。在这种情况下,正则表达式为:

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

  • Click Ok.

  • By默认值这些更改只会影响当前比较。您可以将会话设置对话框底部的组合框从Use this view only更改为 all defaults,以使其影响所有文件类型的所有未来比较。
票数 4
EN

Stack Overflow用户

发布于 2010-09-06 23:12:37

您需要定义一个新的语法元素(我们称其为"SCM"),并将其标记为不重要(see the tutorial here;选择"Basic“并确保选中"Regular Expression")。

语法元素应该是(如果我正确地解释了您的示例):

代码语言:javascript
复制
^.*\$(Id|DateTime|Author|Change):.*$

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

如果只想忽略以# $...开头的行,请使用

代码语言:javascript
复制
^\s*#s*\$(Id|DateTime|Author|Change):.*$

如果您只想忽略$之间的内容(并将其他内容视为重要的内容),请使用

代码语言:javascript
复制
\$[^$\r\n]*\$

代码语言:javascript
复制
\$(Id|DateTime|Author|Change)[^$\r\n]*\$

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

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3652301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档