ノード: The modules File, 次: The commitinfo And loginfo And rcsinfo Files, 前: The config File, 上: The CVSROOT/ Administrative Directory
modules ファイルではリポジトリ内のプロジェクトの別名や alternate grouping を定義します。module の行は基本的に次の形式です:
MODULE_NAME DIRECTORY_IN_REPOSITORY
例えば、
mp myproj asub myproj/a-subdir
(右側で指定するパスはリポジトリのトップからの相対パスです。) 開発者がプ ロジェクトやプロジェクトの一部分をチェックアウトする時の別名を指定して います:
floss$ cvs co mp cvs checkout: Updating mp U mp/README.txt U mp/foo.jpg U mp/hello.c cvs checkout: Updating mp/a-subdir U mp/a-subdir/whatever.c cvs checkout: Updating mp/a-subdir/subsubdir U mp/a-subdir/subsubdir/fish.c cvs checkout: Updating mp/b-subdir U mp/b-subdir/random.c
あるいは
floss$ cvs -d /usr/local/newrepos/ co asub cvs checkout: Updating asub U asub/whatever.c cvs checkout: Updating asub/subsubdir U asub/subsubdir/fish.c
両方の場合で、モジュールの名前がどのように作業コピーのディレクトリ名になっ ているかを見てください。asub の場合、中間に myproj/ ディレクトリができな いですが、代りにトップレベルに asub ができました。リポジトリの myproj/a-subdir からできたにもかかわらずです。それらの作業コピー内では、 アップデート、コミット、その他の CVS コマンドがすべて正常に動きます。普 通と違うのは名前だけです。
ディレクトリ名のあとにファイル名をつけることによって、リポジトリディレ クトリ内の指定されたファイルで構成されたモジュールを定義することができ ます。例えば
readme myproj README.txt
と
no-readme myproj hello.c foo.jpg
とすると、それぞれ、次のようなチェックアウトができるようになります:
floss$ cvs -q co readme U readme/README.txt floss$ cvs -q co no-readme U no-readme/hello.c U no-readme/foo.jpg floss$
-a (alias という意味) を使えば複数のリポジトリディレクトリを含むモジュー ルを定義することができますが、チェックアウトするともとの名前のディレクト リができるので注意してください。たとえば、この行を書くと
twoproj -a myproj yourproj
下のようになります(myproj/ と yourproj/ がリポジトリに存在するとします):
floss$ cvs co twoproj U myproj/README.txt U myproj/foo.jpg U myproj/hello.c U myproj/a-subdir/whatever.c U myproj/a-subdir/subsubdir/fish.c U myproj/b-subdir/random.c U yourproj/README U yourproj/foo.c U yourproj/some-subdir/file1.c U yourproj/some-subdir/file2.c U yourproj/some-subdir/another-subdir/blah.c
twoproj
はプロジェクトを両方持ってくるのに便利な名前ではあります
が、作業コピーの名前には使われません。(There is no requirement that
alias modules refer to multiple directories, by the way; we could have
omitted twoproj, in which case myproj would still have been checked out
under the name myproj
.)
前にアンパサンドをつけることによって、別のモジュールを参照することもでき ます:
mp myproj asub myproj/a-subdir twoproj -a myproj yourproj tp &twoproj
tp
をチェックアウトすると、twoproj
のチェックアウトと完全
に同一の結果が得られます。
モジュールを処理する仕掛けはまだいくつかありますが、その大半は今述べたも のより使う機会が少ないです。それらについて知りたければ、Cederqvist の modules ノードを参照してください。