我刚刚开始了一个涉及自定义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(或其他可以达到相同结果的工具)来检测我的自定义代码标签,所以:
因此,第一个原始文件和我的自定义文件在过滤后将是相同的,但在更新后,它将检测差异并允许我将更改合并到我的自定义版本。
我知道如何为##开头的行创建过滤器,或者等于= pod或= cut。但我不知道如何忽略比较中的多线块。
你知道我怎样才能实现我想要的目标吗?如果不是WinMerge,还有其他工具可以帮助我自动执行此任务吗?
非常感谢你!