任意のバージョンのプロジェクト全体を取り出す


プロジェクトの保存は、バージョンアップごとに、 もとのバージョンとの差分として保存します。 このため、ディスクを節約しながら、登録したすべての バージョンを呼び出すことができます。


呼び出すまえにファイルの内容を確認する

次のようにするとプロジェクトとその情報を 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