复杂的WinMerge过滤器

时间:2014-07-08 18:38:14

标签: otrs winmerge

我刚刚开始了一个涉及自定义OTRS 3.1的项目。

在这个项目中,我们有两个文件夹,原始内核文件夹和自定义内核文件夹。 如果自定义内核文件夹中存在文件,则它将覆盖原始内核文件夹文件。因此,将OTRS 3.1的版本更新为最稳定的版本只需要替换原始内核文件夹。但是我们遇到了一个问题:如果更新了自定义文件,则忽略更新,因为我们的自定义会覆盖原始文件。因此,我们需要检测这些冲突,以便手动将增强功能应用于我们的自定义文件。

为了实现这一目标,我计划了下一个战略。假设我在原始内核文件中有下一个文件:

print "Hello ";

print "World\n";

我想自定义它,通过“ACME”更改World,所以我将此文件复制到自定义文件夹并将其更改为:

print "Hello ";

##- CUSTOM CODE
##- Date: 10/02/2014
##- By: Dave
##- Original code:
=pod
print "World\n";
=cut
##< Start custom code

print "ACME\n";

## end custom code >##

= pod和= cut是块评论

现在让我们假设打印Hello被检测为风险,并将新文件的代码更改为:

print "Hi ";

print "World\n";

将更改应用于原始文件夹时,我不会从安全修复程序中获利,因为我有一个仍包含Hello字词的自定义文件。也就是说,我想使用WinMerge(或其他可以达到相同结果的工具)来检测我的自定义代码标签,所以:

  • 忽略以##开头的行。
  • 忽略lines = pod和= cut。
  • ##&lt;之间的块&gt; ##被忽略

因此,第一个原始文件和我的自定义文件在过滤后将是相同的,但在更新后,它将检测差异并允许我将更改合并到我的自定义版本。

我知道如何为##开头的行创建过滤器,或者等于= pod或= cut。但我不知道如何忽略比较中的多线块。

你知道我怎样才能实现我想要的目标吗?如果不是WinMerge,还有其他工具可以帮助我自动执行此任务吗?

非常感谢你!

0 个答案:

没有答案