Provided by: manpages-ja_0.5.0.0.20060115-1_all bug

CVSド
     CVSup は、2 つの主な動作モードをサポートしています。 これらは CVS
     モードと checkout モードと呼ばれるものです。

     CVS モードでは、クライアントはマスターの CVS リポジトリを構成している
     実際の RCS ファイルのコピーを受信します。CVS モードはデフォルトの動作
     モードです。 このモードは、CVS
     リポジトリの完全なコピーをクライアントマシン上でメン
     テナンスしようとユーザが考えている場合には適しています。

     CVS モードは、CVS リポジトリベースでないファイルのコレクションに対して
     もうまく使えます。この場合にはファイルは解釈されることなく、単にそのま
     ま転送されます。

checkoutド
     checkout モードでは、クライアントは特定のリビジョンのファイルを受信し
     ます。これはサーバの CVS リポジトリから直接チェックアウトされます。
     checkout モードを使うと、クライアントは任意のバージョンをリポジトリか
     ら取得でい泙后この際、チェックアウトされる時の形で複数個のバージョン
     をサーバ上に持つ必要はありません。 しかし、checkout
     モードでは、その基本機能よりもずっと柔軟に動作させる ことがでい泙后
     います。 クライアントは CVS のシンボリックタグを指定で-
     ますし、任意の日付の指 定もでい泙后N省を指定することもでい泙后また
     CVSup
     は、この指定に対応するファイルをリポジトリ内からチェックアウト形式で取
     り出すことがでい泙后

     checkout モードはコレクション別に指定します。指定は、 supfile
     内に以下のァ璽錙璽匹琉譴弔△襪い藁省を含めることによって行います:

     tag=tagname
                 シンボリックタグを指定します。このタグは、CVS
                 リポジトリから取り出すリ
                 ビジョンを選択するために使わなければなりません。
                 このタグはブランチまたは特定のリビジョンを示すことがでい泙后
                 タグはシンボリックでなければなりません。つまり、数値のリビジョン番号は
                 サポートされていません。

                 FreeBSD
                 のソースリポジトリの場合は、以下のタグがよく使われます:

                 RELENG_3  'stable' ブランチ。

                 .         メインブランチ( 'current' リリース)。 date -
                           ーワードだけが指定されると、こちらがデフォルトです。

     date=[cc]yy.mm.dd.hh.mm.ss
                 これは、CVS
                 リポジトリからチェックアウトするリビジョンの選択に使う日付
                 を指定します。
                 クライアントは実際には、指定された日付と時刻のリビジョンを受け取ります。

                 現時点では、日付のフォーマットは柔軟ではありません。17
                 文字あるいは 19
                 文字の全てを、説明したフォーマットで正確に指定しなければなりません。
                 2000 年以降の場合は、世紀を cc で指定します。
                 これより前の年の場合は、最後の 2 桁だけを yy で指定します。
                 日付と時刻は GMT で扱います。 デフォルトの日付は '.'
                 です。これは ``でい襪世運靴靴い發'' という意味です。

     checkout モードを邑にするためには、少なくともこれらのァ璽錙璽匹
     いずれかを指定しなければなりません。 どちらも指定されていなければ、 CVSup
     はデフォルトの CVS モードで動作します。

     ブランチタグと日付が両方とも指定されると、指定されたブランチ上の
     指定された日付の時点のリビジョンがチェックアウトされます。
     日付を特定のリリースタグに付けて指定することもでい泙垢、あまり役には
     立たないでしょう。

     checkout モードでは、タグや日付を更新と更新の間に変えられます。 例えば、
     'tag=.' という指定を使ってコレクションが転送されたとしましょう。
     ユーザは後から指定を 'tag=RELENG_3' に変えられます。 これを指定すると、
     CVSup はチェックアウトされたファイルを編集し、 'current' バージョンが
     'stable' バージョンになるようにします。 一般的には、 CVSup
     はどんなタグ/日付の組合せであっても、他のタグ/日付の組合せに変換してく
     れます。変換は、両者の間にある RCS の差分を既存のファイルに適用するこ
     とによって行います。

     チェックアウトされたファイルのコレクションを、あるタグから別のタグに
     変換するとい砲蓮∧儡垢料宛紊派ず同じリストファイルが使われるようにす
     るため、 supfile ファイル中で list ァ璽錙璽匹鮖慊蠅垢襪海箸重要です。
     リストファイルは次の _cvsup
     は各コレクションについての杵織侫.ぅ襪魎浜しています。
     これをリストファイルと呼びます。
     リストファイルには、クライアントが現在持っているファイルとリビジョンに
     関する情報が書かれています。
     このファイルには、クライアントのツリーに入っている実際のファイルと
     リストファイルが一致していることを確認するための情報も書かれています。

     厳密に言うとリストファイルは必要ではありません。このファイルが削除され
     るか、クライアントが持っている実際のファイルとの不一致が起こると、 cvsup
     は最後の手段として少し効率の阿な法でクライアント側のファイルの識別と
     更新を行います。 この際には、 CVSup
     の動作モードによって、タイムスタンプ、チェックサム、RCS ファイルの
     解析結果などが使われます。

     リストファイルは不可欠ではないので、 cvsup は FTP や CD-ROM
     から入手した既存のファイルツリーを「利用」でい泙后 cvsup
     はクライアント側のファイルのバージョンを識別し、必要に応じてこれを更新
     します。さらに、祥荵箸Δ燭瓩縫螢好肇侫.ぅ襪鮴言します。
     他のシステムが作ったファイルツリーを使う場合の動作は、通常の更新ほど
     高速ではありません。 また、サーバにかかる負荷も高くなります。
     リストファイルはコレクション固佑離妊レクトリに保存されます。詳しくは
     _supfile 内でァ璽錙璽 use-rel-suffix
     が指定されていると、リリースとタグから作ったサフィックスがファイル名に
     追加されます。 デフォルトのサフィックスは、 supfile
     で明示的にサフィックスを指定することにより上書い気譴泙:

     list=suffix
                 これはリストファイルの名前に付けるサフィックスの指定です。サフィックス
                 の先頭のドットは自動的に付けられます。 例えば、 'list=stable'
                 とすると、 checkouts.stable
                 という名前のリストファイルが作られます。この場合には、リリース、タグ、
                 use-rel-suffix ァ璽錙璽匹牢愀犬△蠅泙擦鵝

refuseル
     ユーザは受け取りたくないファイルの集合を指定でい泙后
     こういったファイルは、いわゆる refuse
     ファイル内でファイル名パターンとして指定されます。
     パターンは空白文字で区切られ、各行には複数個のパターンを置くことがで-
     ます。
     パターンにマッチするファイルとディレクトリは、更新も削除もされません。
     これらのファイルは単に無視されます。

     現在は、refuse ファイル内にコメントに書く方法はありません。

     パターンは sh(1)
     のそれと似ていますが、スラッシュの特別扱いや、ピリオドで始まるファイル
     の特別扱いがない点が異なります。 例えば、パターン '*.c' は '.c'
     で終わる全てのファイルにマッチします。これには 'foo/bar/lam.c'
     といったサブディレクトリ内のファイルも含まれます。
     全てのパターンはコレクションのプレフィックスディレクトリからの相対パス
     として解釈されます。

     これらファイルが CVS リポジトリから得たものならば――普通はそうなのです
     が――これらは RCS ファイルとなります。これらのファイルには、 ',v'
     というサフィックスが付い泙后パターンについてはサフィックスも考慮に入
     れなければなりません。例えば、FreeBSD の文書ファイルは 'doc' という base
     ディレクトリのサブディレクトリに入っています。 そのディレクトリにある
     'Makefile' が不要な場合に

           doc/Makefile

     と指定してもうまく動作しません。なぜなら、サーバ上にあるファイルは
     'Makefile,v' だからです。 もっとよい解決方法は、

           doc/Makefile*

     と指定することです。この指定であれば、 'Makefile' が RCS
     ファイルであろうとなかろうとマッチします。

     別の例としては、日本語、ロシア語、中国語の翻訳を避けて FreeBSD 文書
     ファイルを取得するには、以下の行を含む refuse ファイルを作ります:

           doc/ja*
           doc/ru*
           doc/zh*

     それぞれの supfile 行は、3 つの refuse ファイルによって調べられます。
     大域的な refuse ファイルとして base/collDir/refuse
     があります。これは全てのコレクションとリリースに適用されます。
     コレクション別の refuse ファイルとして base/collDir/collection/refuse
     があります。これは特定のコレクションに適用されます。
     最後に、リリースとタグ別の refuse ファイルがあります。これは、
     コレクション内の指定されたリリース/タグの組み合わせに対してのみ適用さ
     れます。 最後の refuse ファイルの名前は、コレクション別の refuse
     ファイルの名
     前にサフィックスを加えることによって付けられます。これは先に説明したリ
     ストファイルと同じ方法です。 どんな種類の refuse
     ファイルも存在しなくてもかまいません。

     cvsup は、 collDir に対する basesup の組み込みのデフォルト値を
     /usr/local/etc/cvsup に持っていますが、どちらの値も上書げ椎修任后 base
     の値は -b オプションまたは supfile ファイル中の base=pathname
     エントリで変更でい泙后 (両方指定した場合は、 -b オプションの方が supfile
     のエントリよりも優先されます。) collDir の値は -c
     オプションでしか変更でい泙擦鵝これを変更する supfile
     コマンドはありません。

     例えば、 basecollDir
     の両方にデフォルト値が設定されており、コレクションが 'src-all'
     でリリースが 'cvs' である場合を考えます。 さらに、 'tag=RELENG_3'
     に対して checkout モードが使われているものとします。 この場合、refuse
     ファイルの名前としては以下の 3 つが考えられます:

           /usr/local/etc/cvsup/sup/refuse
           /usr/local/etc/cvsup/sup/src-all/refuse
           /usr/local/etc/cvsup/sup/src-all/refuse.cvs:RELENG_3

     supfile がコマンド base=/foo を含んでいる場合、refuse
     ファイルは以下のようになります:

           /foo/sup/refuse
           /foo/sup/src-all/refuse
           /foo/sup/src-all/refuse.cvs:RELENG_3

     -b /bar が使われている場合( supfile ファイル中に base=/foo
     コマンドがあっても):

           /bar/sup/refuse
           /bar/sup/src-all/refuse
           /bar/sup/src-all/refuse.cvs:RELENG_3

     そして -c stool も使われている場合:

           /bar/stool/refuse
           /bar/stool/src-all/refuse
           /bar/stool/src-all/refuse.cvs:RELENG_3

証
     CVSup
     は認証機構を備えており、これを使ってクライアントとサーバがお互いの身元
     を確認することがでい泙后この機構は、パケット盗聴やリプレイ攻撃の影響
     を受けない challenge-response プロトコルを用いています。ネットワーク上
     では、パスワードはどちらの向い砲睥れません。クライアントとサーバのい
     ずれも、お互いの身元を独立に確認でい泙后

     ファイル $HOME/.cvsup/auth
     には認証に使われる情報が書かれています。このファイルには、クライアント
     がアクセス可能な各サーバについてのレコードが入っています。それぞれの
     レコードは、ファイル中に 1 行で書かれます。 '#'
     で始まる行は無視されます。空白文字だけの行も同様です。ただし、ファイル
     中の他の場所では空白文字も意味を持ちます。フィールドは ':'
     文字で区切られます。

     ファイルの各レコードは以下の形式です:

           serverName:clientName:password:comment

     たとえ空であっても、全てのフィールドは存在しなければなりません。
     ServerName
     はレコードが適用されるサーバ名です。慣習的に、これはカノニカルかつ完全
     にドメイン名が指定されたサーバ名です(例: 'CVSup177.FreeBSD.ORG' )。
     これはサーバが自分の名前と考えているホスト名でなければなりません。
     名前については大文字・小文字は区別されません。

     ClientName はクライアントがサーバへのアクセス権を得ると-
     に使う名前です。慣習的に、 クライアント名には全て e-mail
     アドレスが使われます(例: 'BillyJoe@FreeBSD.ORG'
     )。クライアント名では大文字・小文字は区別されません。

     Password
     は秘密の文字列であり、クライアントが身元を証明するために使います。
     パスワード文字列は ':' や改行文字を含んではいけません。

     Comment
     はレコードを識別するための付加的な情報を持ちます。プログラムに解釈され
     ることはありません。

     指定されたサーバに対する認証の設定を行うには、以下の手順を実行しなけれ
     ばなりません:

     1.   サーバ管理者または別の情報源から公式な serverName を取得します。

     2.   適切な clientName を選びます。 これは-
          効な電子メールアドレスの形式にすべい任后これは、サーバ管理者
          が必要に応じてユーザに連絡しやすくするためです。

     3.   秘密の password として任意の文字列を選びます。

     4.   cvpasswd ユーティリティを実行し、質問に対して _
          を入力します。このユーティリティはサーバの管理者に送る行を出力し、
          それからユーザの $HOME/.cvsup/auth
          ファイルの修正手順を示します。この行をサーバ管理者に送るには、安全な
          手段を使うべい任后

     $HOME/.cvsup/auth
     にはパスワードが入っているので、必ず自分以外には誰も読めないようにして
     ください。

     認証はそれぞれの向い覇販に動作します。サーバの管理者は、
     ユーザが身元を証明しなければならないかどうかを制御します。
     ユーザはサーバの身元をチェックするかどうかを制御します。制御には -a
     コマンドラインオプションを使います。

 CVSup用
     CVSup は CVS
     リポジトリ用に最適化されているので、汎用的なミラーリングとして
     非常にうまく動作します。 CVSup はどんな種類のファイルの更新にも使えます。
     +o   RCS ファイルの更新は、個々のタグと差分の転送および、これらの
         クライアント側のファイルへのマージによって行われます。
     +o   通常ファイルは、可能であれば rsync アルゴリズムを使って更新されます。
         rsync
         アルゴリズムが無効にされている場合、追加されたデータを持つサーバ
         上のファイル(例:
         ログファイル)は、新しく加わった末尾の部分だけを受け取 ります。
         他の通常ファイルはまるごと置ご垢┐蕕譴泙后
     +o   空のディレクトリは残されます。
     +o   シンボリックリンクは、サーバの設定ファイル内で symlinkrsymlink
         コマンドが指定されていると更新されます。詳しくは cvsupd(8)
         をご覧ください。
     +o   ハードリンクはそれぞれのコレクション内では保存されますが、コレクション
         間では保存されません。
     +o   デバイスノードはメジャー番号とマイナー番号を使って更新されます。
         クライアントのホストとサーバのホストで異なるオペレーティングシステムが
         動作していると、これは望ましい結果とならないことがあります。

CVSup壁
     cvsup
     は、様々な設定の防火壁を超えるために数多くのモードを用意しています。
     これらのモードは -P オプションか、 m3socks コマンドを使って制御でい泙后
     cvsup を使えるようにするには、防火壁はサーバホストの 5999
     番ポートへの外向 の接続を最低限許可しなければなりません。
     この条件が満たされていれば、SOCKS の楊気亡悗錣蕕座申泥癲璽 (-P m)
     が動作するはずです。

     もう少し防火壁の制限が緩ければ、passive モードや他のモードの一つを使っ
     て、効率を少し上げることがでい泙后 詳しくは -P
     オプションの説明をご覧ください。

     特定の種類の防火壁と CVSup を組み合わせて使う際の情報については、
     <http://www.polstra.com/projects/freeware/CVSup/> にある CVSup FAQ
     をご覧ください。

SOCKS CVSup用
     SOCKS プロゥ轡機璽亰侏海任猟命は、現在は FreeBSD 上でしかサポートさ
     れていません。 これを用いるためには、port として用意されている 修正版の
     Modula-3 の実行時システム( lang/modula-3-lib )とアドオンの SOCKS
     ライブラリ( lang/modula-3-socks )が必要です。 また、SOCKS
     ライブラリは動的リンク技術を使うので、 cvsup
     の実行ファイルは完全に動的リンクされている必要があります。 FreeBSD の
     port の net/cvsup は、必要に応じて cvsup を完全に動的にリンクします。

     SOCKS の動作を邑にするには、単に lang/modula-3-socks
     パッケージに含まれる m3socks と組み合わせて cvsup を実行してください。
     詳細については m3socks(1) をご覧ください。

ssh送
     防火壁の内側のユーザは、SOCKS の代替品として、Secure Shell パッケージの
     ssh が持っている TCP ポート転送機能を使って防火壁を通過でい泙后
     これを行うためには、ユーザは CVSup
     のサーバホストにログインアカウントが必要です。 手順を以下に示します:

     1.   以下のようにして、 ssh を使ってサーバホストとの接続を確立します:

          ssh -f -x -L 5999:localhost:5999 serverhost sleep 60

          普通は serverhost を CVSup サーバのホスト名に置-
          換えるのですが、ここでは 'localhost' を入力します。
          これにより、ポート転送に必要な設定がでい泙后 60 秒経って sleep
          が終わるまでに cvsup を起動しなければなりません。
          いったん更新が始まると、 ssh
          は必要な間、転送チャネルをオープンした状態を保ちます。

     2.   ローカルホストで cvsup
          を実行します。コマンドラインには以下の行を含めます: '-h localhost -P
          m'

ル
     /usr/local/etc/cvsup              デフォルトの base ディレクトリ。
     sup                               デフォルトの collDir サブディレクトリ。
     base/collDir/collection/checkouts*
                                       リストファイル。
     base/collDir/refuse               グローバルの refuse ファイル。
     base/collDir/collection/refuse*   コレクション別の refuse
                                       ファイルと、リリースとタグ別の refuse
                                       ファイル。
     $HOME/.cvsup/auth                 認証用のパスワードファイル。

目
     ctm(1), cvpasswd(1), cvs(1), cvsupd(8), m3socks(1), rcsintro(1), ssh(1)

     http://www.polstra.com/projects/freeware/CVSup/

者
     John Polstra <jdp@polstra.com>

グ
     RCS ファイルは ',v' で終わっていなければ RCS ファイルと認識されません。

     'Attic' という名前のディレクトリは CVS Attic として特別扱いされます。

     SOCKS ライブラリまたはサーバのバグのため、大部分の形式の -P オプションは
     SOCKS では使えません。 多重モード (-P m) を使えますが、他の形式の -P
     オプションは受け付けられません。

     GUI と一部のウィンドウマネージャ(特に FVWM)の相世良くありません。 FVWM
     のバージョン 1, 2 のどちらでも問題が起こるのですが、バージョン 2
     の方がまだましのようです。

           Style "cvsup" ClickToFocus

     という行を FVWM2 の .fvwmrc に追加するとかなりよくなります。
     この問題はどうやらウィンドウマネージャのバグが原因らしく、GUI が
     'WM_TAKE_FOCUS' プロトコルを使うと起こるようです。 回避策としては、 -g
     オプションを使って、GUI を完全に無効にするとよいでしょう。