在比较 Delphi 表单文件的版本时,如何让 Beyond Compare 忽略某些差异

Posted

技术标签:

【中文标题】在比较 Delphi 表单文件的版本时,如何让 Beyond Compare 忽略某些差异【英文标题】:How do I make Beyond Compare ignore certain differences while comparing versions of Delphi Form Files 【发布时间】:2011-04-09 18:24:07 【问题描述】:

我使用 Beyond Compare(版本 3.1.10)来比较不同版本的 Delphi 表单文件,但我不想看到关于 ExplicitTop、ExplicitLeft、ExplicitHeight 和 ExplicitWidth 的差异。

详情: 这些行总是以一些空白字符开头,然后是“ExplicitXXX =”和一个数字。旧版本的 Delphi 没有这些行,所以我想忽略这些行添加到最新版本的差异,我也想忽略数字变化的差异。

有人知道怎么做吗?

编辑: 重复(或多或少):

How do I configure BeyondCompare to ignore SCM replaced text in comments?

【问题讨论】:

How do I configure BeyondCompare to ignore SCM replaced text in comments?的可能重复 但是这里有一个更好的答案 IMO.... 另外一个问题是询问其他语法项(cmets、strings)中的匹配文本,而BC还不支持嵌套语法项,所以这里的解决方案在那里行不通。 【参考方案1】:
    加载一对显示差异的 DFM 文件。 点击Session Settings按钮(又名Rules,带有裁判图标)或使用Session->Session Settings 菜单项。 切换到重要性标签,然后点击Edit Grammar...按钮打开第二个对话框。 点击顶部列表框下方的新建...按钮打开第三个对话框。 将元素名称选项更改为Explicit*,将文本匹配更改为Explicit(Left|Top|Width|Height) = \d+并检查匹配字符大小写正则表达式复选框,然后点击Ok,然后在第二个对话框中再次点击OkExplicit* 现在应该出现在原始对话框的 语法元素 列表中。取消选中它,然后将对话框底部的组合框从仅用于此视图更改为更新会话默认值

【讨论】:

绝妙的答案,正是我所希望的。你不能打败一个好的演练:-) 特别是当它来自马自己的嘴时。 请注意,这些说明描述了如何将给定文本定义为“不重要”,它(默认情况下)仍然可见(并且颜色为蓝色)。您可以使用“忽略不重要的差异”切换来忽略/隐藏蓝色文本。 对于更新版本:scootersoftware.com/support.php?zz=kb_unimportantv3顺便说一句,如果您可以右键单击代码文件比较并申请前。命名空间差异对于该会话不重要(适用于所有代码比较),这将是如此甜蜜。【参考方案2】:

我不使用 Beyond Compare,但是如果您想让较新版本的 Delphi 停止添加(IMO 无用)Explicit* 属性,您可以使用 Andreas Hausladen 的 DDevExtensions

【讨论】:

+1。我前段时间安装了 DDevExtensions 来摆脱这些属性,直到现在都没有后悔。 这是问题的一部分。我团队中的一些开发人员使用此扩展程序,其他人则不使用。 @Svein:你不能让他们相信 Explicit* 的东西不仅仅是多余的吗? @Ulrich:我想,但它仍然没有回答实际问题。除了显式值之外,我还想对页面控件的 ActivePage 属性做同样的事情,所以我也想找到一个解决方案。【参考方案3】:

在我的情况下(C#),我想忽略包含我更改的命名空间(因此,使用的)的整行。 (Referenced Walkthrough - Ignore entire line if text exist in line

即。

namespace INSERT.NAMESPACE.HERE 
      changed to 
namespace INSERT.NAMESPACE.HERE.NEW

这样做

在克雷格解决方案的第 5 步中,将 Text Matching 更改为

" .\*INSERT.NAMESPACE.HERE.\* "

(包括引号)

就是这样。

【讨论】:

【参考方案4】:

Craig Peterson 的回答是正确的。 注:然而! “重要性”选项卡并不总是从会话/会话设置中可见。始终,从文件夹列表视图中,它不会在那里。似乎有些文件类型也没有它,尽管我对此不太清楚。 BC 有很多选项和插件,我敢打赌有一个解决方法,但对我来说,到目前为止我还可以。 http://www.scootersoftware.com/vbulletin/showthread.php?t=8457

【讨论】:

以上是关于在比较 Delphi 表单文件的版本时,如何让 Beyond Compare 忽略某些差异的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Delphi 将数据从 XML 导入 PDF 表单?

sourcetree 如何让任意两个版本中同一个文件进行比较

将组件添加到表单时如何自动添加 Delphi 单元? [复制]

Delphi:当组件放置在表单上时,错误的单元将单元添加到源文件的使用子句

delphi 怎样让TWebBrowser向需要接收表单元素的页面发表单数据?(

让 C++Builder/Delphi 在启动时创建 TForms,还是手动创建?