[目次へ][3章本体へ][3.3へ][3.5へ] 最終更新:$Date: 2002/08/22 09:56:02 $

題名変更。


■■3.4 テストモジュールを取って来てみる(checkout)

次に登録したモジュールを作業コピーとして取ってきます。以後、その作業コピーを放棄するまで、作業はその作業コピー上でおこないます。作業コピーはいくつあっても構いません。たとえば、著者は作業するマシンのほとんどに作業コピーをおいています。職場のPC、UNIXサーバ、家のPC、UNIXサーバ、移動用のノートPC…どこにでもおいてます。便利です。…てな感じで、自分の便利なように作業コピーを取り出してください。

作業コピーをリポジトリから取り出すには、checkoutコマンドを使用します。バージョン管理システムの歴史的な経緯から、この作業コピーを取り出すことをチェックアウト(=checkout)と言います。本書でもこれ以降はチェックアウトという言葉を使用します。checkoutコマンドの書式を図3.4.1に示します。

【図3.4.1】checkoutコマンドの書式
▼
cvs checkout [-ANPRcflnps] [-r リビジョン] [-D 日付] [-d ディレクトリ] [-j リビジョン1] [-j リビジョン2] [-k 展開方法] モジュール群... 
▲

このコマンドにもオプションが沢山あるのですが、通常は使いません。たまに、古い日付のファイルが使いたい時に-Dで日付を指定したり、開発用のサブブランチを取り出すために、-rでタグを指定したりすることがあります。

■■■3.4.1 登録したモジュールを取り寄せる

とりあえず、3.3節で登録したモジュールcvstestをチェックアウトしてみましょう【図3.4.2】。

【図3.4.2】cvstestを取ってくる
▼
% cvs checkout cvstest
▲

中身が空ですので、さっさと終わります。lsでも使って中を覗いてみましょう【図3.4.3】。

【図3.4.3】cvstestの中はどうなってるのかな?
▼
% ls -RF cvstest/
cvstest/:
CVS/

cvstest/CVS:
Entries  Repository  Root
▲

空のプロジェクトであるはずのcvstestの下に何かCVSというディレクトリができていて、「Entries」「Repository」「Root」という3つのファイルが入っています。 これらのファイルは後で覗いてみることにして、cvstest2の方もチェックアウトしてみましょう【図3.4.4】。

【図3.4.4】cvstest2をチェックアウトする
▼
% cvs checkout cvstest2
cvs checkout: Updating cvstest2
U cvstest2/tmp1.txt
U cvstest2/tmp2.txt
cvs checkout: Updating cvstest2/dir1
U cvstest2/dir1/tmp3.txt
cvs checkout: Updating cvstest2/dir1/dir2
U cvstest2/dir1/dir2/tmp4.txt
▲

cvstestの時と違って沢山メッセージが出力されましたね。インポートの時と良く似ています。頭に何か一文字記号をつけたファイル名と、ディレクトリ移動のメッセージです。今度の文字はUです。これは更新(Update)、特に丸々ファイルを取ってきた更新という意味だったりするんですが、実は他にも更新があったりします。このあたりの文字の意味はこの章の最後のまとめ3.10節にまとめておきますのでそちらで比較してください。

さて、今度はどんな風に取れたのでしょうか、lsで再帰的に眺めてみます 【図3.4.5】。

【図3.4.5】cvstest2の中はどうなってるのかな?
▼
% ls -RF cvstest2
cvstest2/:
CVS/  dir1/  tmp1.txt  tmp2.txt

cvstest2/CVS:
Entries  Repository  Root

cvstest2/dir1:
CVS/  dir2/  tmp3.txt

cvstest2/dir1/CVS:
Entries  Repository  Root

cvstest2/dir1/dir2:
CVS/  tmp4.txt

cvstest2/dir1/dir2/CVS:
Entries  Repository  Root
▲

こちらでは、CVSというディレクトリが各サブディレクトリにもできています。どのCVSの中にも、やはり「Entries」「Repository」「Root」という3つのファイルが入っていますね。

■■■3.4.2 作業コピー中のCVSディレクトリとは?

CVSディレクトリの中のファイルをちょっと覗いてみましょう。ここではcvstest2/CVSの中身を見てみます。

cvstest2/CVS/Entries
▼
/tmp1.txt/1.1.1.1/Tue Aug 20 12:30:27 2002//
/tmp2.txt/1.1.1.1/Tue Aug 20 12:30:27 2002//
D/dir1////
▲
cvstest2/CVS/Repository
▼
cvstest2
▲
cvstest2/CVS/Root
▼
/home/cvsroot
▲
cvstest2/dir1/CVS/Repository
▼
cvstest2/dir1
▲

どうも、「Entries」はそのディレクトリの中にあるファイルとディレクトリの情報を、「Repository」はそのディレクトリのリポジトリの中での名前(つまり、モジュール名)を、最後に「Root」がこのモジュールが所属するリポジトリの名前を保持しているということのようです。また、ディレクトリが1つ下になると、Repositoryの中のモジュール名もcvstest2/dir1のようになることに注意してください。実は、checkoutでは、サブディレクトリをモジュールとして独立して取り出すこともできるのです。

■■■3.4.3 WinCvsでモジュールを取り寄せる

ここでは、3.3.4項で作成したwintestモジュールを取り寄せてみましょう。ですが、取り寄せる前にいくつか前準備をしておいたほうがいいでしょう。

■■■■ モジュールタブのカスタマイズ

WinCvsでは作業コピーを取り寄せる領域をあらかじめ決めておくのがお勧めな様です。例えば、基本的に作業コピーはC:\home\mika\workcopyに置くことにしましょう。フォルダを作成しなければなりませんが、WinCvs上ではフォルダの作成ができませんので、エクスプローラを呼び出して作成します。エクスプローラを呼び出す方法は色々とあるのですが、ここでは、エクスプローラタブから呼び出す方法を使用します。これは、モジュールタブで触れないところに作ることがあると思われるからです。

エクスプローラタブで作業コピー置き場を作る場所を右クリックしてください。ここでは、C:\home\mikaを選びます。すると、【図3.4.6】のような通常のエクスプローラのコンテキストメニューが現われるので、[エクスプローラ]を選びます。

【図3.4.6】 エクスプローラタブのコンテキストメニュー

するとエクスプローラが現われるのでフォルダを作成します【図3.4.7】。

【図3.4.7】 置き場を作りましょう

フォルダを作成したらWinCvsに戻り、モジュールタブの表示位置を変更するというのをおこないます。これは、メニュー[表示]→[フォルダブラウザ]→[表示位置の変更]【図3.4.8】かブラウズバーの[表示位置の変更]アイコンを使用して変更することができます。

【図3.4.8】 前準備、前準備

何にしろこのあたりを選んでみると、【図3.4.9】のようなダイアログが現われます。

【図3.4.9】 パスを選べと言ってますよ

ここでC:\home\mika\workcopyを選んで[OK]を押すと、ブラウズバーが【図3.4.10】のようになり、モジュールタブが【図3.4.11】のようになるはずです。

【図3.4.10】 お、なんか変わった

【図3.4.11】 モジュールタブも変わった

基本的にモジュール置き場はこのように登録しておけば、以後はブラウズバーから選ぶことができるようになります。複数の置き場を登録した場合は、切り替えて使ってください。

ちなみに、こうして登録したところ以外へチェックアウトする場合には、エクスプローラタブを使用します。モジュールタブとは、取り出し先を指定した時の挙動が違います。挙動の違いについては、実際に取り出すときに改めて説明します。

■■■■ モジュールタブでチェックアウト

ここでは、モジュールタブを使ってチェックアウトする方法を紹介します。この時点では、【図3.4.11】のような状態になっていると思います。この状態でメニュー[作成]→[チェックアウト(checkout)...]【図3.4.12】を選んで下さい。

【図3.4.12】チェックアウトのメニューを選ぼう

選ぶと、【図3.4.13】のようなダイアログが現れるはずです。ここで、[モジュールの名前又はサーバ上のパスを入力]という場所に、モジュール名wintestを書きます。あとは、[ローカルディスク上のチェックアウト先]という場所がちゃんとなっているか確かめます。前準備がちゃんとすんでいれば、C:\home\mika\workcopyのように作業コピー置き場に選んだフォルダが指定されているはずです。

【図3.4.13】モジュール名を入れて…、取り出し先は大丈夫?

何かの間違いで消えてしまっていたり、どうしてもここが嫌だという場合には違う場所を指定してもらっても構いません。ただ、はじめから置き場から外れるのがわかってる場合には、後で紹介するエクスプローラタブを使用するのが素直かもしれません。

入力を確認したら、えいやと【図3.4.13】の[OK]ボタンを押しちゃってください。えい。

アウトプット領域に【図3.4.14】のようなメッセージが現れれば成功のはずです。

【図3.4.14】成功したかな?
▼
cvs checkout -P wintest (ディレクトリ C:\home\mika\workcopy 内)
cvs checkout: Updating wintest
U wintest/tmp1.txt


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

▲

なお、取り出し先を間違えてしまった場合には、通常のエクスプローラで作業コピーのフォルダをあるべき場所に移してください。

ちゃんとwintestができてるか、モジュールタブで確認しましょう。【図3.4.15】のようにC:\home\mika\workcopyの下にwintestフォルダができていて、これを選ぶとワークスペース領域にtmp1.txtが表示されましたか?フォルダのアイコンにチェックマークがついているのが、CVS管理下にあるフォルダです。

【図3.4.15】 とれたかな?とれてるとれてる

このチェックマークはフォルダにCVSフォルダが含まれているかでつきますが、モジュールタブ上ではCVSフォルダ自体は隠されていて見えません。CVSディレクトリを見るためにはエクスプローラタブか、エクスプローラを呼び出して使用します。次でエクスプローラタブについてちょっと詳しく見てみます。

■■■■ エクスプローラタブでCVSフォルダを眺める

CVSディレクトリを見るだけでしたらエクスプローラタブで見ることができます。あるいは、上でやったようにWinCvsからエクスプローラを呼び出して見ることもできます。普通にマイコンピュータあたりから開けていってもいいんですけどね。ここでは、エクスプローラタブで見る方法を紹介します。

エクスプローラタブで見たいフォルダを選ぶと、エクスプローラタブ上にCVSフォルダが現われます。これを選ぶと、ワークスペースに3つのファイル[Entries] [Repository] [Root]が現われます【図3.4.16】。3.4.2項で見たのと同じです。内容も3.4.2で紹介したものと同じです。

【図3.4.16】 エクスプローラタブで見る

■■■■ エクスプローラタブでチェックアウ

なお、エクスプローラタブを使ってもチェックアウトすることはできます。モジュールタブと違うのは、コンピュータ全体から場所を選べること【図3.4.17】と、選んだ場所がそのまま、[ローカルディスク上のチェックアウト先]に補完されることです【図3.4.18】。

【図3.4.17】 エクスプローラタブで選ぶと?

【図3.4.18】 選んだ場所が補完された

使い方としては、モジュールタブで見えないような場所に簡単にチェックアウトしたい時に使用する、という感じでしょうか。しかし、モジュールタブで見えないと作業はしにくい気もします。エクスプローラタブ上では日常作業のメニュー、例えば更新(update)などが選べません。

■■■3.4.4 まとめ

ここで、作業コピーを取り出す(チェックアウトする)流れをまとめると、以下のようになります。好きな場所へ取り出して作業を開始してください。

作業コピーを置く場所へ移動する
↓
cvs -d /home/cvsroot checkout target_module

続く3.5節以降では、編集や追加・削除といった日常作業に必要なコマンドについて説明していきます。