代码之家  ›  专栏  ›  技术社区  ›  Priyank Bolia

可配置的免费差异工具?[关闭]

  •  1
  • Priyank Bolia  · 技术社区  · 16 年前

    是否有一个diff工具允许我编写正则表达式以从差异中删除一行?

    比如,看下面两行:

    this.Visible = true;
    Visible = true;
    

    我能写一个表达式吗,如果行差 this 忽略差异。

    我该怎么做呢?

    我再举一个例子。喜欢 System.Exception Exception 两个对我来说都一样,我不想在差异中显示它们。

    8 回复  |  直到 10 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    你可以用 KDiff3 . 参见文档部分 Preprocessor Commands .

    更新 :我看到您还有一个似乎需要语义差异程序的进一步请求。见 Semantic Diff Utilities 为了一些建议。

        2
  •  1
  •   David Norman    16 年前

    DiffMerge 源gear支持这一点。您需要创建一个与要合并的文件相匹配的规则集,或者编辑默认的规则集。在规则集中,向行中添加模式以忽略属性。有关详细信息,请参阅联机帮助中的ommitted lines属性。

        3
  •  1
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

    我曾经使用过的比较软件的最佳来源是 Beyond Compare . 有了它,您可以完全按照您的要求进行:输入a regular expression 这让软件忽略了某些差异。但是,这不是免费的。

    如果你真的需要一个免费的应用程序,你可以尝试 WinMerge . 不过,我不太喜欢这个界面。

        4
  •  0
  •   Jay Zeng    16 年前

    Notepad++ 有一个比较插件,这是相当可配置的。

        5
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

    如果你找不到一个现有的diff工具来做你想做的,你可以自己写。

    Python有一个 diff module 用于编写类似diff的工具,它将为您处理diff算法的所有复杂性。它们有一个示例脚本,可以在标准UNIX中执行文件差异。 diff / patch 以60行代码格式化或并排HTML。

    模块中的差异允许您将“垃圾”过滤器定义为预处理行,以删除不希望包含在diff中的部分。这些是python函数,因此您不限于正则表达式匹配。

    我快速地重新阅读了文档,并且过滤器只对忽略整行或单个字符起作用,这不是您想要的。但是,您可以轻松地预处理输入到differ中的数据,以删除要忽略的文本。

        6
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

    我在任何软件中都找不到这个特性,不过除了比较之外,Araxis还有这个特性。

    从winmerge wiki看来,他们在新的未来似乎不支持插件或任何此类功能。太糟糕了。

        7
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

    如果知道如何编写javascript,可以将有问题的正则表达式插入到 Pretty Diff 工具。这个工具是完全免费的,代码是完全用内联文档打开的。

    如果有一个特定的功能,你想添加到工具,除了个人定制,请让我知道,我会添加它。

        8
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

    尝试 GNU diffutils . 如果您在Windows上,可以将GNU diff与 Cygwin 来自www.cygwin.com。

    推荐文章