任意のバージョンのプロジェクト全体を取り出す
プロジェクトの保存は、バージョンアップごとに、
もとのバージョンとの差分として保存します。
このため、ディスクを節約しながら、登録したすべての
バージョンを呼び出すことができます。
呼び出すまえにファイルの内容を確認する
次のようにするとプロジェクトとその情報を more で
確認できます(もちろん less も可)。
test-cvs を参照したいプロジェクト名に置き換えてください。
(csh の場合)
% cvs checkout -p test-cvs |& more
|& は | に似ていますが、標準出力と標準エラー出力を
同時にパイプするときに使う記号です。
任意の日時の内容を確認する
たとえば、2000年4月1日におけるプロジェクトの登録状態を確認するには、
次のようにします。
% cvs checkout -p -D "2000-04-01" test-cvs |& more
これでよいので復元したい、というときは次のようにします。
% cvs checkout -D "2000-04-01" test-cvs
普通の使い方では日付のみの指定でも充分だと思います。
時刻の指定が必要なら下記のようにします(JSTは日本時間)。
% cvs checkout -D "2000-04-01 12:30:00 JST" test-cvs
CVS では日付の指定に、次のようないろいろな様式が使えますが、
上記の YYYY-MM-DD 形式(ISO 8601 書式)が覚えやすいでしょう。
4/1/2000
1 month ago
2 hours ago
400000 seconds ago
last year
last Monday
yesterday
a fortnight ago
3/31/1992 10:00:07 PST
January 23, 1987 10:05pm
22:00 GMT
2000年のつもりで 4/1/00 という表記はできません(cvs-1.10.6で確認)。
何も明記しない場合は日本標準時を使うようです。
例:プロジェクト名 test-cvs の 1998年10月11日のバージョンを、
新規に作成するディレクトリ ./1110 に取り出す。
% cvs checkout -D "1998-10-11" -d 1110 test-cvs
更新履歴:
[2000/04/18] 日付の指定についての記述を改訂。
[2000/09/28] ISO 8601 日付指定で記述しなおす。
任意のバージョンに名前をつけて呼び出す
[1999/08/26]
CVS は本来、ファイルごとのリビジョン番号を、内部的にのみ使用するように
設計されています。
そして、複数のファイルについて、
「ファイルAがバージョンXで、ファイルBがバージョンYで、、、、」
といった状態をセットにして、
「タグ」と呼ばれる文字列による名前で管理します。
CVS に慣れてきたら、個々のファイルのRCSバージョンではなく、
タグを使って管理していきましょう。
個々のファイルのバージョンを 2.xx にしたい、と思うことが
あるかも知れませんが、CVS においては意味がありません。
メジャーバージョンアップは、タグで表現した方がよいのです。
ここでは、ファイルごとに、特定のバージョンを呼び出す方法を
説明します。
バージョン 1.1 のファイルを確認するにはこうします。
% cvs checkout -r 1.1 -p test-cvs |& more
-r で指定したバージョンがあるファイルだけ、その
バージョンのファイルを表示します。
-p オプションを外せば、ファイル復元ができます。
バージョン番号を指定して
checkout されたプロジェクトは、 cvs update しても、
1.1 を最新だと思いこんでいるようです。
これは sticky という属性によるもの(らしい)です。
強制的に最新版に update するためには次のようにします。
% cvs update -A
Takuya NISHIMOTO
Last modified: 2009-09-05