1

カスタマイズされた 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 を使用していない場合、このタスクを自動化するのに役立つツールは他にありますか?

事前にどうもありがとうございました!

4

0 に答える 0