EN JA
CSUP(1)
CSUP(1) FreeBSD General Commands Manual CSUP(1)

名称

csupCVS リポジトリのためのネットワーク配布パッケージ

書式

csup [ -146aksvzZ][ -A addr][ -b base][ -c collDir][ -d delLimit][ -h host][ -i pattern][ -l lockfile][ -L verbosity][ -p port][ -r maxRetries] supfile

解説

csup は、ネットワーク経由でファイルのコレクションを更新するためのソフトウェアパッケージです。それは、 CVSup ソフトウェアを C で書き直したものです。このマニュアルページは、 csup クライアントプログラムの使用法を説明しています。

rdistsup などのようなより伝統的なネットワーク配布パッケージと異なって、 csup には、CVS リポジトリを配布するための特有の最適化があります。 csup は、伝統的なシステムよりはるかに速く更新を実行することを可能にする CVS リポジトリの特性とそれらが含むファイル (特に、RCS は、ファイル) を利用します。

csup は、パッケージを更新する汎用のネットワークファイルです。 CVS か RCS とは無関係であるファイルのコレクションを考慮に入れても、それは、非常に速いです。

オプション

クライアントプログラム csup は、少なくとも一つの引数 supfile を必要とします。サーバから転送および更新するために 1 つ以上のファイルのコレクションを記述したファイルを指定します。 supfile には、 sup よって使用される対応するファイルと同様の形式があります。ほとんどの場合、 csup は、既存の supsupfile を使用することができます。

次のオプションは、 csup によってサポートされています:

-1
一時的な失敗が起こるとき、自動的な再試行を無効にします。このオプションがなければ、落されたネットワーク接続のような一時的な失敗によって csup は、再試行の間隔を空けるのために乱数化された指数の backoff を使用して繰り返し再試行します。このオプションは、 -r 0 と同等です。
-4
csup に IPv4 アドレスのみを使用するように強制します。
-6
csup に IPv6 アドレスのみを使用するように強制します。
-a
クライアントへのそれ自体 (identity を証明する) を認証するためのサーバを必要とします。サーバの認証が失敗するなら、更新は、中止されます。下記の 認証 を参照してください。
-A addr
サーバに接続するとき、バインドするローカルアドレスを指定します。ローカルアドレスは、ホスト名またはドット付き 10 進の IPv4 アドレスまたは IPv6 アドレスから成る数値ホストアドレス文字列であるかもしれません。これは、複数の IP アドレスがあるホストで役に立ちます。
-b base
csup が、 supfile の任意の base 指定を上書きする、簿記ファイルを保守するベースディレクトリを指定します。
-c collDir
コレクションに関する情報が保守される base のサブディレクトリを指定します。デフォルト sup です。
-d delLimit
1 回の更新の実行で削除されるファイルの最大数を指定します。制限を超えるどんな試みも致命的なエラーとなります。これは、サーバでの一時的な設定誤りに対する何らかの保護を提供することができます。デフォルトの制限は、無限です。
-h host
supfile のすべての host 指定を上書きする、接続するサーバホストを指定します。
-i pattern
csup が更新で pattern に適合するファイルとディレクトリだけを含むようにします。ディレクトリがパターンに適合するなら、そのディレクトリをルートとするサブツリー全体が含まれています。このオプションが複数回指定されるなら、パターンは、‘ or’演算を使用して結合されます。 -i オプションが与えられないなら、デフォルトは、各コレクションのすべてのファイルを更新することです。

pattern は、標準ファイル名のパターンです。コレクションの接頭辞ディレクトリとの相対として解釈されます。スラッシュ文字は、パターン中の明白なスラッシュのみに適合します。ファイル名中の先行するピリオドは、特別に扱われません。

-k
csup は、チェックサムのミスマッチの場合には、任意の正しく編集されなかったファイルの一時的なコピーを保存します。このオプションは、ファイルがなぜ正しく編集されなかったかの判断を助けるためのデバッグ用です。このオプションが指定されるかどうかにかかわらず、不完全なファイルの固定のバージョンは、ファイル全体を転送することによって得られる正しいバージョンに置き換えられます。そのような転送は、fixup と呼ばれます。
-l lockfile
更新を実行している間、 lockfile を作成して、ロックします。 lockfile が既にロックされているなら、 csup は、自動的に再試行を行わないで失敗します。このオプションは、 csupcron から定期的に実行されるとき、役に立ちます。ネットワーク問題のために恐らく余分に時間がかかっている以前のジョブが新しいジョブを干渉することから防ぎます。

プロセス ID は、ロックの取得に成功したとき、テキスト形式でロックファイルに書き込まれます。更新が終了したときに、ロックファイルは、削除されます。

-L verbosity
出力の冗長レベルを設定します。レベルを 0 にすることによって csup は、エラーが発生しないなら、完全に沈黙することになります。レベルを 1 (デフォルト) にすることによって更新された各ファイルをリストすることになります。レベルを 2 にすることによって各ファイルに実行された更新に関するより詳細な情報が提供されます。すべてのメッセージが標準出力に向けられます。
-p port
サーバホストで csup が、接続を試みる TCP へのポートを設定します。デフォルトポートは、5999 です。
-r maxRetries
ネットワーク接続が失われることに遭遇するような一時的なエラーのとき、試みられる自動再試行の回数を制限します。デフォルトでは、 csup は、更新が成功して終了するまで、無期限に再試行します。再試行は、ランダム化された指数的に速度を落して間隔が空けられます。 -r 0 は、 -1 オプションに同等であることに注意してください。
-s
リストファイルに記録されることに対して各クライアントのファイルの状態のチェックを抑制します。代わりに、リストファイルは、正確であると見なされます。このオプションは、クライアントホストで少ない負荷がある状態で、ディスクアクセスの量を大幅に軽減させ、より速い更新をもたらします。しかしながら、クライアントのファイルが多少なりともローカルに変更されない場合にだけ、使用されるべきです。ミラーサイトは、このオプションが、それらのシステムのディスク負荷を減らすために有益であることを見いだすかもしれません。安全のために、ミラーサイトでさえ -s オプションなしで csup を時々 (たぶん 1 日 1 回) 実行するべきです。

-s オプションがなければ、 csup は、各ファイルで stat(2) 呼び出しを実行して、その属性がリストファイルに記録されたものと適合するかどうか確かめます。これは、 csup の管理外で行われた、あらゆるファイル変更を検出して修正することを確実にします。

1 つ以上のファイルがローカルの変更されたとき、 -s オプションが使用されているなら、結果は、未定義です。ローカルファイルの損傷が修正されず残るか、更新が失敗するか、または csup は、時期を早めて中止されます。

-v
サーバに接続しないで、バージョン番号を印刷 (表示) して終了します。
-z
まるで compress キーワードが supfile のあらゆるコレクション (収集) に追加されるかのように、すべてのコレクションのための圧縮を有効にします。
-Z
まるで compress キーワードが supfile のあらゆるコレクション (収集) から削除されるかのように、すべてのコレクションのための圧縮を無効にします。

supfile は、更新されるためのファイルのコレクションを指定するテキストファイルです。コメントは、‘ #’で始まって、行の終わりまで続きます。コメントと余白を除いて、空となる行は、無視されます。残っている各行は、サーバで定義されたファイルのコレクションの名前で始まります。行のコレクション名には、0 個以上のキーワードまたは keyword=value のペアが続きます。

コレクション名が *default である行でデフォルトの設定を指定することができます。そのようなデフォルトは、 supfile のそれに続く行に適用されます。複数の *default 行が存在できます。 supfile の初めで指定された任意のデフォルトは、新しい値で増やされるか、上書きされます。コレクションのために明示的に指定された値は、任意のデフォルト値を上書きします。

最も一般的に使用されるキーワードは、次の通りです:

release= releaseName
これは、コレクション内のファイルのリリースを指定します。コレクション名と同じように、リリース名は、サーバ設定ファイルによって定義されます。通常、各コレクションには、1 つのリリースだけですが、いくつかの数値があるかもしれません。 CVS リポジトリによってもたらされるコレクションは、しばしば慣例により release=cvs を使用します。 CVS でないコレクションは、慣例により release=current を使用します。
base= base
これは、 csup が、クライアントマシンの各コレクションの状態を記述した、ブックキーピング (簿記) ファイルを保守管理するディレクトリを指定します。 base ディレクトリは、既に存在していなければなりません。 csup は、そのディレクトリを作成しません。デフォルトの base ディレクトリは、 /usr/local/etc/cvsup です。
prefix= prefix
これは、更新されたファイルが置かれるディレクトリです。デフォルトで、それは、 base と同じです。絶対パス名でないなら、 base と相対的に解釈されます。 prefix ディレクトリは、既に存在していなければなりません。 csup は、そのディレクトリを作成しません。

特別なものとして、 prefix が‘ SKIP’という名前の実在しないファイルを示すシンボリックリンクであるなら、 csup は、そのコレクションをスキップします。コレクションに関連しているパラメータは、それでも妥当性をチェックされますが、そのファイルは、なにも更新されません。この機能によって、サイトは、いくつかのマシンで標準の supfile を使用できますが、それでもマシンごとにどのコレクションを更新するを制御します。

host= hostname
これは、すべてのファイルが取得されるサーバマシンを指定します。 csup は、ただ 1 回の実行ですべてのコレクションが同じホストから来ることを要求します。いくつかの異なったホストからコレクションを更新したいなら、利用者は、何度か csup を実行しなければなりません。
delete
このキーワードの存在は、 csup にファイルを削除する許可を与えます。それが見つからなければ、ファイルは、削除されません。

delete キーワードの存在は、 csup をいわゆる exact モードにします。 exact モードでは、 csup は、クライアントのファイルをサーバのファイルに対応させるように最善をつくします。これは、全体のファイルを削除することと同様に RCS ファイルから個々のデルタとシンボリックタグを削除することを含みます。 exact モードでは、 csup は、編集によってサーバにあるマスタコピーと同じファイルを作り出すことを保証するために、チェックサムですべての編集されたファイルを確かめます。ファイルに対するチェックサムのテストが失敗するなら、 csup は、全体のファイルの転送でフォールバック (代替) します。

一般的に、 csup は、サーバに知られているファイルだけを削除します。クライアントのツリーに存在する特別なファイルは、exact モードでさえ、そのままとなります。もっと正確に言えば、 csup は、2 つのクラスのファイルを進んで削除します:

  • csup 自体によって以前に作成されたか、または更新されたファイル。
  • サーバで dead (死んでいる) とマークされた、チェックアウトされたバージョンのファイル。
use-rel-suffix
csup は、リリースとタグから保守管理している各 list ファイルの名前まで構成されたサフィックス追加します。詳細に関しては、 LIST ファイル を参照してください。
compress
これは、ネットワークを越えて送信されるすべてのデータの圧縮を有効にします。通常、圧縮されなければ転送される必要があるバイトの 65% から 75% を削減して、圧縮は、かなり効果的です。しかしながら、クライアントとサーバの両方で CPU 時間の観点では、すこしコストが高くなります。ローカルエリアネットワークでは、圧縮は、一般的に逆効果で、実際にファイル更新を遅くします。 56K ビット/秒以下の速度でのリンクでは、圧縮は、ほとんど常に有益です。これらの 2 つの極端の間の速度でのネットワークリンクについては、実験を利用者の指針としてください。

-z コマンドラインオプションは、supfile で指定されることにかかわらず、すべてのコレクションにのための compress キーワードを有効にします。同様に、 -Z コマンドラインオプションは、すべてのコレクションのための compress オプションを無効にします。 csup は、無害な空白類の違いを無視するように、RCS ファイルに対して緩いチェックサムを使用します。 CVS と RCS の異なったバージョンは、同じ RCS ファイルに対してさまざまな空白類の違いを生成します。したがって、厳格なチェックサムは、論理的に同じファイルに対して偽りのミスマッチを報告するかもしれません。これは、多数の必要な“fixup”を導き、その結果、更新が遅くなります。

umask= n
csup は、コレクションのファイルを更新するとき、 n (8 進数) の umask 値を使用します。 preserve が指定されているなら、このオプションは、無視されます。

いくつかの付加的な、より特殊化したキーワードは、以下で説明されます。認識されていないキーワードは、 sup との後方互換性のために黙って無視されます。

CVS モード

CVSup は、2 つのプライマリモードの動作をサポートします。それらは、 CVS モードと checkout (チェックアウト) モードと呼ばれます。

CVS モードでは、クライアントは、マスタ CVS リポジトリを作り出す実際の RCS ファイルのコピーを受け取ります。 CVS モードは、デフォルトの動作モードです。ユーザがクライアントマシンで CVS リポジトリの完全なコピーを維持管理したいとき、適しています。

CVS モードは、CVS リポジトリに基づいていないファイルコレクションにも適切です。ファイルは、解釈なしで単純の文字どおり転送されます。

チェックアウトモード

チェックアウトモードでは、クライアントは、サーバの CVS リポジトリから直接チェックアウトされた、ファイルの特定のリビジョンを受け取ります。チェックアウトモードでは、クライアントは、チェックアウト形式で複数のバージョンを格納するためにサーバの特別のディスク空間を必要としないで、リポジトリから任意のバージョンを受け取ります。しかしながら、チェックアウトモードは、その基本的な機能を超えて多くの柔軟性を提供します。クライアントは、任意の CVS シンボリックタグ、任意の日付、または両方を指定することができ、 csup は、リポジトリのファイルの対応するチェックアウトバージョンを提供します。

チェックアウトモードは、 supfile の続くキーワードの 1 つまたは両方の存在によってコレクション基準毎に選択されます。

tag= tagname
これは、CVS リポジトリからチェックアウトされるリビジョンを選択するために使用されるべきであるシンボリックタグを指定します。タグは、ブランチまたh特定のリビジョンのどちらかを引用できます。それは、シンボリックでなければなりません。数値のリビジョン番号は、サポートされていません。

FreeBSD のソースリポジトリに関して、最も一般的に使用されるタグは、次の通りです:

RELENG_6
stable’ブランチ。
.
メインブランチ (‘ current’リリース)。これは、 date キーワードだけが与えれる場合のデフォルトです。
date=[ cc] yy.mm.dd.hh.mm.ss
これは、CVS リポジトリからチェックアウトされるリビジョンを選択するために使用されるべきである日付を指定します。クライアントは、指定された日付と時刻に有効であったリビジョンを受け取ります。

現在のところ、日付の形式には柔軟性がありません。正確に示されるように、すべての 17 か 19 の文字を指定しなければなりません。 2000 数以降のためには、世紀 cc を指定します。それ以前の年のためには、最後の 2 桁 yy だけを指定します。日付と時刻は、 GMT (グリニッジ標準時) とみなされます。デフォルト日付は、“可能な限り最新”を意味する‘ .’です。

チェックアウトモードを有効にするために、少なくともこれらのキーワードの 1 つを指定しなければなりません。両方が不足しているなら、 csup は、CVS モードをデフォルトとします。

ブランチタグと日付の両方が指定されるなら、与えられた日付現在で、与えられたブランチのリビジョンは、チェックアウトされます。特定のリリースタグで日付を指定することは許可されていますが、特に役に立ちません。

チェックアウトモードでは、タグおよび日付を、更新の間に変更できます。例えば、コレクションが指定‘ tag=.’を使用して転送されていたと仮定します。ユーザは、後で指定を‘ tag=RELENG_3’に変更することができます。これによって、 csup は、‘ current’バージョンから‘ stable’バージョンに変換するような方法で、チェックアウトファイルを編集します。一般的に、 csup は、介在する RCS デルタを既存のファイルに適用することによって、任意のタグ/日付の組み合わせをそのほかのタグ/日付の組み合わせに変換する用意があります。

チェックアウトするファイルのコレクションをあるタグから別のタグに変換するとき、同じ list ファイルが変換の前後に使用されることを保証するために、 supfilelist キーワードを指定することは重要です。 list ファイルは、下記の LIST ファイル で説明されています。

LIST ファイル

効率のためにに、 csup は、list ファイルと呼ばれる各コレクションのためのブックキーピング (簿記) ファイルを保守管理します。 list ファイルは、クライアントが現在所有しているファイルとリビジョンに関する情報を含んでいます。また、クライアントのツリーで list ファイルが実際のファイルと一致しているかを確認するために使用される情報を含んでいます。

リストファイルは、厳密には必要ではありません。削除されるか、または実際のクライアントファイルと一致するようになるなら、 csup は、クライアントのファイルを識別して、更新を実行する、それほど効率的でない方法でフォールバック (代替) します。 csup の動作モードによって、フォールバック方法は、タイムスタンプ、チェックサム、または RCS ファイルの解析を採用します。

list ファイルは、本質的なものではないので、 csup は、FTP か CD-ROM から取得された既存のファイルツリーを“採用”することができます。 csup は、クライアントのファイルのバージョンを識別し、必要に応じてそれらを更新して、今後の使用のために list ファイルを作成します。外部のファイルツリーを採用することは、通常の更新を実行するほど速くはありません。また、サーバにより重い負荷を掛けます。

list ファイルは、コレクション特有のディレクトリに格納されます。詳細に関しては、 関連ファイル を参照してください。名前は、常に‘ checkouts’で始まります。 supfile でキーワード use-rel-suffix を指定するなら、リリースとタグから形成されたサフィックスが名前に追加されます。 supfile で明示的なサフィックスを指定することによって、デフォルトのサフィックスを上書きすることができます:

list= suffix
これは、list ファイルの名前のサフィックスを指定します。先頭のドットは、自動的に付加されます。例えば、‘ list=stable’によって、リリース、タグ、または use-rel-suffix キーワードにかかわらず checkouts.stable という名前の list ファイルを生成します。

REFUSE ファイル

ユーザは、受け取りたくないファイルのセットを指定することができます。そのファイルはいわゆる refuse ファイル中のファイル名のパターンとして指定されます。パターンは、空白類によって区切られ、各行に複数のパターンも許可されます。パターンに適合するファイルとディレクトリは、更新もされず削除もされません。それらは、単に無視されます。

現在、refuse ファイル中でのコメントは、用意されていません。

パターンは、スラッシュ、またはピリオドで始まるファイル名に対して特別な取り扱いがないことを除いて、 sh(1) のものと同様です。例えば、パターン‘ *.c’は、‘ foo/bar/lam.c’のようなサブディレクトリにそれらを含んでいる‘ .c’で終る任意のファイル名に適合します。すべてのパターンは、コレクションのプレフィックス (prefix) ディレクトリと相対的に解釈されます。

通常のことですが、ファイルが 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 ファイルを調査します。すべてのコレクションとリリースに適用される base/collDir/refuse という名前のグローバルな refuse ファイルがあります。特定のコレクションに適用される base/collDir/collection/refuse という名前のコレクションごとの refuse ファイルがあります。最終に、コレクション内の与えられたリリース/タグの組み合わせだけに適用されるリリースとタグごとの refuse ファイルがあります。後者の名前は、前述の list ファイルと同じ方法でコレクションごとの refuse ファイルの名前にサフィックスを付けることによって、形成されます。 refuse ファイルのいずれも、存在する必要はありません。

csup には、 base のための /usr/local/etc/cvsupcollDir のための sup の組み込みのデフォルト値がありますが、これらの両方を上書きすることは可能です。 base の値は、 -b オプションを使用するか、 supfilebase=pathname エントリを使用して変更することができます。 (両方が使用されているなら、 -b オプションは、 supfile のエントリを上書きします。) collDir の値は、 -c オプションでのみ変更することができます。それを変更するための、 supfile コマンドは、ありません。

例として、 basecollDir には、デフォルト値があり、コレクションとリリースは、それぞれ‘ src-all’と‘ cvs’であると仮定します。さらに、チェックアウトモードが‘ tag=RELENG_3’で使用されていると仮定します。 3 つの利用可能な refuse ファイルは、次のような名前になります:

  • /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 が使用されているなら、 ( supfilebase=/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

認証

csup は、お互いの identity を検証するためにクライアントとサーバによって使用することができる、オプションの認証メカニズムを実装しています。通常、パブリックな CVSup サーバは、認証を有効にしません。 csup ユーザは、認証がそれらのサーバの管理者によって必要とされる情報が与えられないなら、このセクションを無視します。

認証サブシステムは、パケットスニフィング (sniffing) とリプレー (replay) 攻撃に免疫があるチャレンジレスポンス (challenge-response) プロトコルを使用します。どちらの方向にもパスワードをネットワーク上に送信しません。クライアントとサーバの両方は、お互いの identity を独立して検証することができます。

ファイル $HOME/.csup/auth は、認証に使用される情報を保持しています。このファイルは、クライアントがアクセスすることができる各サーバのためのレコードを含んでいます。各レコードは、ファイルに 1 行を占有します。‘ #’で始まる行は、空白だけを含む行のように無視されます。空白類は、ファイルの他の所では重要です。フィールドは、‘ :’文字によって分離されます。

ファイルの各レコードには、次の形式があります:

serverName:clientName:password:comment

すべてのフィールドは、それらのいくつかが空であっても、存在していなければなりません。 ServerName は、レコードが適用されるサーバの名前です。慣例により、それは、サーバの標準的な完全な形でのドメイン名です、例えば、‘ CVSup177.FreeBSD.ORG’。これは、その名前のサーバの自己の名前と一致しなければなりません。名前は、大文字と小文字を区別しません。

ClientName は、クライアントがサーバへのアクセスを得るために使用する名前です。慣例により、 E メールアドレスは、すべてのクライアント名のために使用されます、例えば、‘ BillyJoe@FreeBSD.org’。クライアント名は、大文字と小文字を区別しません。

password は、クライアントが identity を証明するために使用する秘密の文字列です。それには、‘ :’または改行文字を含むことはできません。

comment は、レコードを識別するために任意の追加情報を含んでいます。それは、プログラムによって解釈されません。

与えられたサーバのための認証をセットアップするために、次のステップを実行しなければなりません:

  1. サーバの管理者またはある他のソースから、公式の serverName を取得します。
  2. 適切な clientName を選択します。それは、必要なら、サーバの管理者がユーザに連絡することを簡単にするために、有効な E メールアドレスの形式であるべきです。
  3. 任意の秘密の password を選択します。
  4. cpasswd ユーティリティを実行し、プロンプトが表示されるとき、 password をタイプします。ユーティリティは、サーバの管理者に送信するために行を印刷して、利用者の $HOME/.csup/auth ファイルを変更する方法を指示します。利用者は、行をサーバの管理者に送信するために安全なチャネルを使用するべきです。

$HOME/.csup/auth がパスワードを含んでいるので、利用者は、自分自身を除いて、誰でも読み込み可能にならないようにするべきです。

認証は、独立して両方の方向に動作します。サーバの管理者は、利用者の identity を証明しなければならないかどうかを制御します。利用者は、 -a コマンドラインオプションを用いて、サーバの identity をチェックするかどうかを制御します。

csup とファイアウォール

デフォルトモードでは、 csup は、サーバホストのポート 5999 への外向きの接続を許可する任意のファイアウォールを通して動作します。

csup を SOCKS で使用する

runsocks コマンドで SOCKS プロキシサーバを通して csup を使用することができます。 csup の実行形式は、 tsocks を適切に動作するためにシステムライブラリと動的にリンクされている必要があります。

ssh ポート転送を使用する

SOCKS に代わる手段として、ファイアウォールの後ろのユーザは、Secure Shell パッケージ ssh によって提供された TCP ポート転送でファイアウォールの中を通ることができます。ユーザは、これを行うために CVSup サーバホストにログインアカウントがなければなりません。手順は、次の通りです:
  1. 次のようにして、 ssh でサーバホストに接続を確立します:

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

    serverhost を CVSup サーバのホスト名で置き換えますが、そのまま‘ localhost’をタイプします。これは、要求されるポート転送を設定します。 60 秒の sleep が終了する前に、利用者は、 csup を開始しなければなりません。いったん更新が始まると、 ssh は、そられが必要である限り、転送チャネルをオープンしたまま保持します。

  2. コマンドラインの引数‘ -h localhost’を含んで、ローカルホストで csup を実行します。

関連ファイル

/usr/local/etc/cvsup
デフォルトの base ディレクトリ。
sup
デフォルトの collDir サブディレクトリ。
base/ collDir/ collection /checkouts*
list ファイル。

作者

Maxime Henrion <mux@FreeBSD.org>は、C で CVSup を書き直した csup の作者です。 John Polstra <jdp@polstra.com>は、 CVSup の作者です。

適法性

CVSup は、John D. Polstra の登録商標です。

csup は、BSD ライセンスの第 2 条項の下でリリースされます。

バグ

RCS ファイルは、‘ ,v’で名前が終っていないようなら認識されません。

Attic’と名前が付けられたどんなディレクトリも、CVS Attic であるとみなされ、特別に取り扱われます。訳注: Attic は、削除されたファイル等が入れられるディレクトリ。

February 8, 2013 FreeBSD