トリガの定義
トリガを記述したら、p4 triggers
コマンドを発行し、トリガフォーム内にトリガの情報を提供することにより、トリガ定義を作成します。(Helixサーバスーパーユーザでなければこのコマンドを使用できません。) p4 triggers
フォームは以下のように表示されます。
Triggers: relnotecheck change-submit //depot/bld/... "/usr/bin/rcheck.pl %user%" verify_jobs change-submit //depot/... "/usr/bin/job.py %change%"
フォームを使用するすべてのHelixサーバコマンドと同様に、フィールド名(Triggers:
など)を左揃えとし、その末尾に":"を使用する必要があります。また、フィールド値(つまり追加する行の集合のこと。それぞれが各トリガに対応)は、フィールド名の下の行ではスペースまたはタブによってインデントされている必要があります。
p4
triggers
コマンドの使用時に入力するトリガフォームの各行には、4つのフィールドがあります。これらのフィールドについて、以下の表で簡単に説明します。これらのうち3つのフィールドで使用する値はトリガタイプによって異なります。こうした値については、各トリガタイプの解説を行うセクションで、あらためて詳しく説明します。name
フィールドでは、すべてのトリガタイプに対して同じ形式が使用されます。
フィールド | 意味 |
---|---|
|
ユーザによって定義されるトリガ名です。 複数のファイルパターンに同じトリガスクリプトを使用するには、トリガテーブル中の隣接する複数の行に、同じトリガを複数回記入します。除外マッピングを使用して、ファイルにトリガスクリプトが実行されないようにします。トリガエントリーの順序は、まさしく除外マッピングがビューで使用される場合に重要です。この場合、一致するパスが使用されている最初のトリガ行のうち |
|
トリガは、サブミットトリガ、プッシュトリガ、コマンドトリガ、ジャーナルローテーショントリガ、保留トリガ、エッジサーバトリガ、修正トリガ、フォームトリガ、認証トリガ、アーカイブトリガの10のカテゴリに分類されます。これらのカテゴリごとに1つ以上のトリガタイプが定義されています。例えば、サブミットトリガには、 各タイプと各トリガの関連づけの判断については、関連のカテゴリについて説明しているセクションを参照してください。 |
|
このフィールドの用法は、トリガタイプによって異なります。例えば、サブミットトリガ、エッジサーバトリガ、保留トリガの場合、このフィールドはディポシンタックスのファイルパターンです。ユーザがこのパターンに一致するファイルを含むチェンジリストをサブミットすると、トリガスクリプトが実行されます。 そのトリガに適切なパスを選択するには、関連のトリガについて説明しているセクションを参照してください。 |
|
このHelixサーバ向けトリガは、トリガ定義によって暗黙的に指定された条件が満たされると実行されます。 たとえサーバがUnicodeモードで稼働しており、トリガスクリプトに変数をUTF8で渡す場合であっても、トリガスクリプト名または実行ファイル名はASCIIで指定する必要があります。 Helixサーバがコマンドの参照場所を特定して実行できるような形で、トリガを指定します。 オペレーティングシステムがトリガを実行ファイルとして認識しないようなプラットフォームでは、インタープリタをコマンドフィールドで指定する必要があります。例えば、Windowsは lo form-out label "perl //myscripts/validate.pl" トリガスクリプトがディポに保存されている場合、ディポシンタックス内でそのパスをパーセントで囲んで指定する必要があります。例えば、スクリプトがディポに |
トリガは、トリガテーブルに記載された順序で実行されます。あるトリガスクリプトが特定のタイプに関して正常に実行されなかった場合、そのタイプに関連づけられた後続のスクリプトも実行されません。
p4 triggers
コマンドの構文はきわめて単純です。
p4 triggers [ -i | -o ]
- フラグを指定しない場合、ユーザのエディタが起動し、トリガ定義の指定を要求されます。
-i
フラグは、標準入力からトリガテーブルを読み取ります。-o
フラグは、トリガテーブルに保存されたトリガ定義を表示します。