ノード:Controlling What Actions Are Watched, 次:, 前:Ending An Editing Session, 上:Watches (CVS As Telephone)



Controlling What Actions Are Watched

デフォルトでは、監視している人には3種類のアクションが通知されます: edit, commit, unedit です。ですが、たとえば commit だけを通知して欲しい場合に は -a フラグ(a は action という意味)で通知のしかたを調整することができ ます:

floss$ cvs watch add -a commit hello.c

あるいは、edit と commit だけを監視したいけれど unedit は気にしないとい う場合には -a フラグを2つ渡してください:

floss$ cvs watch add -a edit -a commit hello.c

-a フラグで監視を追加する場合、いまある監視を削除したりはしません。もし 既に3種類のアクションを hello.c について監視している場合には、

floss$ cvs watch add -a commit hello.c

とやっても何の効果もありません、3種類全部を監視したままになります。監視 を削除したければ、

floss$ cvs watch remove hello.c

を実行してください。add と同じように、デフォルトでは3つのアクション全て の監視を削除します。 -a 引数を渡すと、指定した監視のみを削除します:

floss$ cvs watch remove -a commit hello.c

これは commit についての通知を受けとるのをやめるが、edit と unedit につ いての通知は引き続き受けとる、という意味になります(初めに edit と unedit を監視しているとすればそうなるということです)。

-a フラグに渡すアクションで、2つ特殊なものがあります: all と none です。 前者は監視できるアクション全てを意味し(これを書いている時点では edit, commit, unedit です)、後者はどれでもないという意味になります。-a がない 場合、CVS のデフォルト動作では全てのアクションを監視することになりますし、 どれも監視しないというのは監視者リストから自分を削除するというのに等しい ので、これら2つの特殊アクションを使うような状況というのは考えにくいです。 しかしながら、cvs edit は -a オプションを解釈しますので、この場合にはall または none を指定できるのは便利かもしれません。例えば、だれかがあるファ イルをとても短い間だけいじっていて、ほかの人がそのファイルで何をしている かの通知を受け取りたくないとしましょう。その場合、このコマンドを実行すると

paste$ whoami
qsmith
paste$ cvs edit -a none README.txt

README.txt の監視者は qsmith がそのファイルをいじろうとしているという通 知を受けとりますが、qsmith は自分の編集中 README.txt の一時監視者には加 えられません(通常は加えられます)。どのアクションも監視したくないと言った からです。

cvs watch コマンドでは、自分自身の監視をいじれるだけだということを覚えて おいてください。あるファイルについて自分自身が監視するのを止めることはで きますが、誰か他の人の監視状況を変えることはできません。