【问题标题】:Beyond Compare: compare whole function calls or xml blocksBeyond Compare:比较整个函数调用或 xml 块
【发布时间】:2019-06-12 06:03:31
【问题描述】:

我想用 Beyond Compare 比较 c 和 XML 文件。但是我想检测一个块内是否存在与另一个文件对应的差异,如果一个块有差异,我不希望超越比较显示块中的差异,而是像这个块不在一样处理它另一个文件。我需要这个,因为在我的文件中有某些代码块几乎相同,但其中有不同的信号名。

例如,我得到了一个看起来像这样的 c 文件:

//1
functioncall(
    Singalname1,
    Singalname2,
    Singalname3,
    Singalname4,
    Singalname5,
    Singalname6);

//2    
functioncall(
    Singalname31,
    Singalname32,
    Singalname33,
    Singalname34,
    Singalname53,
    Singalname36);

还有一个看起来像这样的文件:

    //1
functioncall(
    Singalname1,
    Singalname2,
    Singalname3,
    Singalname4,
    Singalname5,
    Singalname6);

//2    
functioncall(
    Singalname371,
    Singalname372,
    Singalname373,
    Singalname374,
    Singalname573,
    Singalname376);

如果我将这两个文件与 BeyondCompare 进行比较,它会确定第二个函数调用中的差异,因为信号名都包含 7。但我希望 Beondcompare 比较整个函数调用,如果 functionCall 中存在差异,则在空旁边显示函数调用空间,所以我可以将其添加到第二个文件中。 所以不是这样: 我想要这样:

我尝试添加一些带有开始注释和带有递增数字的结束注释的 cmets,如下所示:

    //begin1
functioncall(
    Singalname1,
    Singalname2,
    Singalname3,
    Singalname4,
    Singalname5,
    Singalname6);
//end1    

然后在无法比较中添加特定规则。不幸的是,我没有设法将此规则添加到无法比较的范围内。 此外,我认为代码中包含此 cmets 并不好。

【问题讨论】:

  • 您想要一种在 GUI 中或以编程方式最有效地执行此操作的方法吗?如果以编程方式,请通过minimal reproducible example 显示最接近的内容(但仍然不是您想要的),以显示您走了多远。
  • 顺便说一句,我认为这个问题很切题,因为对我来说,这种使用比较工具与编程密切相关——即使问题是关于使用 GUI。
  • 您似乎有一个经常重复的错字“Singal/Signal”。你注意到了吗?然而,它并没有打破这个问题。
  • 您好,感谢您的评论。我想在代码中使用最少的版本来做到这一点。我尝试添加“orientation cmets”,但效率低下,代码变得混乱。
  • @Yunnosch 哦,是的,谢谢你没有注意到这一点。但实际代码看起来更复杂并不重要,这只是一个显示问题的简单示例。

标签: c xml compare beyondcompare


【解决方案1】:

Beyond Compare 不提供执行此操作的方法。最好的解决方法是使用右键Align With命令来移动函数对齐方式。

【讨论】:

  • 是的,但是我的文件很大,有很多函数调用,所以这个方法不可行
【解决方案2】:

您是否尝试过会话设置的“对齐”选项卡中的“从不对齐差异”复选框?

【讨论】:

  • 嗨,是的,我做到了。但这也无济于事。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多