Previous: Tagging add/remove, Up: Revisions
作業コピーのリビジョンには関連した追加のデータがあることがあります。例 えば、枝であったり (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’ を update
や checkout
に使うと、
貼り付いた日付 (sticky date) が設定され、
これ以降のコマンドにその日付が与えられます。
古いバージョンのファイルを取り出す際に、
タグを貼り付けたくない場合も多いと思います。
checkout
や update
にオプション ‘-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 参照。