[目次へ][4章へ][4.6へ][5章へ] 最終更新:$Date: 2002/08/20 16:26:58 $

■第4章 もう少し便利なコマンドの使い方

微調整。(2002/8/14)


■■4.7 エクスポート(export)

CVSの管理情報を省いた形でファイル群を取り出すにはexportというコマンドを使います。checkoutと同様に、-rオプションや-Dオプションを指定してスナップショットを取ることができます。exportコマンドの書式は【図4.7.1】のようになります。

【図4.7.1】exportコマンドの書式
▼
cvs export [-NRfln] [-rリビジョン|-D 日付] [-d ディレクトリ] [-k 置換モード]モジュール...
▲

■■■4.7.1 最新スナップショットを取る

例えば、最新スナップショットを取る場合には日付に未来の日付(たとえば明日)を指定するのが無難です。つまり、【図4.7.2】のように-Dオプションにtomorrowを指定して実行します。とすると、cvstestモジュールが取り出されます。

【図4.7.2】最新のcvstestモジュールを取り出す
▼
% cvs export -D tomorrow cvstest
cvs export: Updating cvstest
U cvstest/difftest.txt
U cvstest/fish.jpg
U cvstest/fish2.jpg
U cvstest/rcskeytest.txt
U cvstest/rcskeytest2.txt
U cvstest/tagtest.txt
U cvstest/test.bin
U cvstest/test.txt
U cvstest/test2.txt
▲

■■■4.7.2 ディレクトリ名を変えてみる

【図4.7.2】では、cvstestとモジュール名そのままで取り出されていますね。しかし、これでは不便なことがあります。つまり、exportコマンドでは上書きはできませんので、自動化するような場合には前取っておいたモジュールを削除したり、ディレクトリ名を変えたりといった細工が必要になります。

スナップショットの取得を自動化するような場合には、たとえば日付を付加したようなディレクトリ名をつけたい、というようなことがあるかも知れません。このようなとき、-dオプションを使用すると簡単です。

ディレクトリ名をたとえば、cvstest_20020821とすると、【図4.7.3】のように実行します。付加する日付の生成についてはスクリプトでがんばらないといけませんけどね。

【図4.7.3】-dオプションを使って名前を変える
▼
% cvs export -d cvstest_20020821 -D tomorrow cvstest
cvs export: Updating cvstest_20020821
U cvstest_20020821/difftest.txt
U cvstest_20020821/fish.jpg
U cvstest_20020821/fish2.jpg
U cvstest_20020821/rcskeytest.txt
U cvstest_20020821/rcskeytest2.txt
U cvstest_20020821/tagtest.txt
U cvstest_20020821/test.bin
U cvstest_20020821/test.txt
U cvstest_20020821/test2.txt
▲

■■■4.7.3 WinCvsでexport

…はメニューとしてサポートされてないので、コマンド入力になります。まぁ、WinCvsは作業コピーでの日常作業を補佐する目的なので、exportがサポートされてないのは当たり前といえば当たり前なんですが…。

あえて、コマンド入力でがんばる場合には、上で使用したコマンドの書式に従って【図4.7.4】のように打ち込んでみてください。モジュールはwintest、日付を2002年8月20日、取り出す名前はwintest20020820と、それぞれ-Dオプションと-dオプションで指定しておきます。あとは、モジュールタブの管轄内に取り出しても嬉しくないので、「特定のディレクトリでコマンドを実行する(D)」チェックボックスにチェックを入れて、C:\home\mikaとか作業する場所を指定します。

【図4.7.4】 コマンド入力えんやこら

GUIに慣れた身にはつらい作業かもしれませんが、これで「OK」を押せば実行されます。アウトプット領域でコマンドの実行結果を確認してください【図4.7.5】。

【図4.7.5】
▼
cvs export -D "20 Aug 2002" -d wintest20020820 wintest (ディレクトリ C:\home\mika 内)
cvs export: Updating wintest20020820
U wintest20020820/difftest.txt
U wintest20020820/tagtest.txt
U wintest20020820/tmp1.txt
U wintest20020820/tmp2.txt
cvs export: Updating wintest20020820/newdir
U wintest20020820/newdir/test.txt
cvs export: Updating wintest20020820/newdir2
U wintest20020820/newdir2/test2.txt

*****CVS はコード 0 で終了しました*****
▲

エクスプローラタブで眺めてみると、【図4.7.6】のように取れているのが見られると思います。後は、lhaやzipで固めるとか好きに御料理ください。

【図4.7.6】 エクスプローラタブで眺めてみる

■■■4.7.4 まとめ

●あるモジュール(targetmodule)の最新をCVSの情報なしに取り出すには

	cvs -d /home/cvsroot export -D tomorrow targetmodule


●あるモジュール(targetmodule)の最新をCVSの情報なしにnewdirディレクトリに取り出すには

	cvs -d /home/cvsroot export -D tomorrow -d newdir targetmodule