カスタマイズされた OTRS 3.1 を含むプロジェクトを開始しました。
このプロジェクトには、元のカーネル フォルダーとカスタム カーネル フォルダーの 2 つのフォルダーがあります。ファイルがカスタム カーネル フォルダーに存在する場合、元のカーネル フォルダー ファイルが上書きされます。したがって、OTRS 3.1のバージョンを最も安定したバージョンに更新することは、元のカーネルフォルダーを置き換えるだけの問題です. ただし、問題があります。カスタマイズされたファイルが更新された場合、カスタマイズが元のファイルを上書きするため、更新は無視されます。そのため、カスタマイズしたファイルに拡張機能を手動で適用するには、これらの競合を検出する必要があります。
それを達成するために、私は次の戦略を立てました。元のカーネル ファイルに次のファイルがあるとします。
print "Hello ";
print "World\n";
World by "ACME" を変更してカスタマイズしたいので、このファイルを custom フォルダーにコピーして、次のように変更します。
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 は無視されます。
- ##< と >## の間のブロックは無視されます
したがって、最初の元のファイルとカスタム ファイルはフィルター処理後に同一になりますが、更新後は違いが検出され、変更をカスタム バージョンにマージできるようになります。
##- で始まる行、または =pod または =cut に等しい行のフィルターを作成する方法を知っています。しかし、比較から複数行のブロックを無視する方法がわかりません。
どうすれば私が望むものを達成できるか知っていますか? WinMerge を使用していない場合、このタスクを自動化するのに役立つツールは他にありますか?
事前にどうもありがとうございました!