Node: The modules File, Next: , Previous: The config File, Up: The CVSROOT/ Administrative Directory



The modules File

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 ノードを参照してください。