Previous: Tagging add/remove, Up: Revisions


4.9 貼り付いたタグ

作業コピーのリビジョンには関連した追加のデータがあることがあります。例 えば、枝であったり (see Branching and merging)、‘checkout -D’ か ‘update -D’ によって特定の日時より前のバージョンに制限されてい るかもしれません。このデータは永続しますので – すなわち、作業コピーの 残りのコマンドに適用されます – 我々はそれを 貼り付けられた と表 現しました。

たいていの場合、貼り付きは考える必要のない cvs の隠れた側面です。 しかし、この機能を使いたくないとしても、貼り付けられたタグに関して 何か 知る必要があるかもしれません (例えば、それを避ける方法!).

貼り付いたタグ (sticky tag) や日付を調べるには、 status コマンドを使用します:

     $ cvs status driver.c
     ===================================================================
     File: driver.c          Status: Up-to-date
     
         Version:            1.7.2.1 Sat Dec  5 19:35:03 1992
         RCS Version:        1.7.2.1 /u/cvsroot/yoyodyne/tc/driver.c,v
         Sticky Tag:         rel-1-0-patches (branch: 1.7.2)
         Sticky Date:        (none)
         Sticky Options:     (none)
     

作業ファイルに貼り付いたタグは、 ‘cvs update -A’ を使って削除するまで残ります。 オプション ‘-A’ は、ファイルを幹の先頭のバージョンに戻し、 貼り付いたタグ, 日付, オプションを全て剥します。

貼り付けられたタグの一番普通の使用法は、Accessing branches で説 明されているようにどの枝で作業しているかを確認することです。しかし、枝 でない貼り付きタグにも利用法はあります。 ここでは、他人の変更が安定しているかどうか分らないので、 作業ディレクトリを更新したくない場合を例に挙げて考えます。 もちろんこの場合、cvs update の実行を控えれば済みます。 しかし、更新したくないのが大きなツリー構造の一部分だけならば、 そこにリビジョンを貼り付ければ良いのです。 ソースを取り出す際に (1.4 などと) リビジョンを指定すれば、 そのリビジョンを貼り付けることができます。 以後、‘cvs update -A’ によってタグを剥がすまで、 cvs update を実行しても 最新リビジョンに更新されることはありません。 同様にオプション ‘-D’ を updatecheckout に使うと、 貼り付いた日付 (sticky date) が設定され、 これ以降のコマンドにその日付が与えられます。

古いバージョンのファイルを取り出す際に、 タグを貼り付けたくない場合も多いと思います。 checkoutupdate にオプション ‘-p’ を付けると、 ファイルの内容が標準出力に送られるので、これを利用します。 例えば:

     $ cvs update -p -r 1.1 file1 >file1
     ===================================================================
     Checking out file1
     RCS:  /tmp/cvs-sanity/cvsroot/first-dir/Attic/file1,v
     VERS: 1.1
     ***************
     $

しかし、あなたの尋ねていることが前の格納に戻す (この例では、 file1 をリビジョン1.1であったときに戻す) 方法なら、これが一番簡 単な方法ではありません。その場合は update -j オプションを update に付けるのが良いでしょう。さらなる議論は、Merging two revisions 参照。