【问题标题】:Does a merge tool exist that compares functions instead of line numbers?是否存在比较函数而不是行号的合并工具?
【发布时间】:2012-02-18 22:22:45
【问题描述】:

我正在使用 kdiff3,但我最近遇到了这样一个问题,即重新组织具有共同功能的方法(我所有的集合、我所有的帖子、验证等)最终会混淆它到我用记事本手工做所有事情。免费或付费并不重要。

【问题讨论】:

    标签: version-control merge diff


    【解决方案1】:

    我们的Smart Differencer 工具根据代码结构而不是行来比较代码。他们使用真正的语言解析器来提取结构,因此它们独立于格式、cmets、不同格式但相同的文字等。更改以概念编辑的形式报告(移动、复制、删除、重命名标识符-in-块)在语言元素(文字、变量、表达式、语句、块、函数...)上。提供多种语言版本。

    如果您将完整的方法移动到某处,它会告诉您移动了该方法,而不是您在此处删除了 27 行,并在此处插入了 27 行(可能相同也可能不同)。

    它不太明白有时甚至声明的顺序也不重要。在我们的待办事项列表中。

    它目前也没有集成到合并工具中;只是做差异。也在我们的待办事项列表中。

    【讨论】:

      【解决方案2】:

      暂时没有。我听说开始计划新的 diff,它是由逻辑块而不是字符串操作的,但它是在谣言的层面上

      在当前状态下,我只能看到一种选择作为最佳方法(而且它是仅限 Windows 的解决方案):CompareIt! 作为 diif-tools - 它可以检测(在某种程度上)并在文件中显示“移动块”和最小心处理“删除块”+“在旧字符串中添加新块”的情况,其中 all other 尝试过 (KDiff, BC, Araxis Merge, P4merge, Diffuse Merge, SourceGear Diffmerge) 不同的是将此块显示为“积极编辑”。

      【讨论】:

      • 我会考虑在我的下一个合并工作中尝试一下,非常感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 2011-04-01
      • 2017-02-16
      • 1970-01-01
      相关资源
      最近更新 更多