進行中の開発機能に関する注意: この章で記述されている機能はおそらくarchの1.0のリリース 以前とは互換性のない変更を含んでいます。
ある場面で、アーカイブに対する変更の検出によってある動作がトリガーされる と便利です。たとえば、新しいリビジョンがチェックインされる時は常に emailを送信したいと思うかも知れません。
コマンドnotify はこの機能を提供します:
% larch notify NOTIFICATION-DIR
このコマンドは NOTIFICATION-DIRにある設定ファイルを読み込みます。 この設定ファイルはどのリポジトリのどの部分を監視するか、また変更によってどのような 動作をするか、についての記述があります。変更が検出されると、notify はその動作を実行します。
この章では notify を一般的に説明します。 NOTIFICATION-DIR の形式と設定ファイルの形式についての説明を します。そしてnotify が何をするかについて説明します。
notify は四つの設定ファイルによって制御されます。 設定ファイルはNOTIFICATION-DIRにあります。それは以下の ものです:
=rules.archives Specifies actions to take whenever new categories are added to specific archives.
=rules.categories Specifies actions to take whenever new branches are added to specific categories.
=rules.branches Specifies actions to take whenever new versions are added to specific branches.
=rules.versions Specifies actions to take whenever new revisions are added to specific versions.
これらのファイルの中では空白行があってもよく、コメントは '#'で始まり、行末まで 続きます。
ファイル =rules.versions は、以下のような形式の行を含んでいます:
VERSION ACTION
ここで VERSION は完全に修飾されたバージョン名で、動作は以下の形式 の文字列です(空白があってはなりません):
COMMAND:THUNK
新たらしいリビジョンが VERSION中に検出された場合は常に notify が実行されます:
larch COMMAND THUNK RVN ...
ここで COMMAND と THUNK は設定ファイルからのもので、 最後の RVN 引数は新しく検出されたリビジョンの完全に修飾された リビジョン名のリストです。
ファイル =rules.branches も同様です。それは以下の形式の行を含んでいます:
BRANCH COMMAND:THUNK VERSION-ACTION
新しいバージョンが BRANCHに作られると常に notify は 二つの動作をとります。まず以下を起動します:
larch COMMAND THUNK VSN ...
次に、以下のような形式の新しいルール =rules.versions を追加します:
VSN VERSION-ACTION
=rules.categories と =rules.archives はよく似ています。 前者は以下の形式の行を含んでいます:
CATEGORY COMMAND:THUNK BRANCH-ACTION VERSION-ACTION
後者は以下のような形式の行を含みます:
ARCHIVE COMMAND:THUNK CATEGORY-ACT BRANCH-ACT VERSION-ACT
設定ファイルに加えて、notify はプライペートな状態を NOTIFY-DIRに管理します。解くに、それはどのような通知が既に 送信されたかを記録し、同じ通知を何度も送信するのを防ぎます。