aboutsummaryrefslogblamecommitdiff
path: root/ja_JP.eucJP/man/man1/ctm.1
blob: 3fe873429b65557bf6ffdd1c54ff886b0f9cfd63 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                                               
                                                        






                                                          
                                      
















































































































































































































































































                                                                        
         



















                                                       
.\"----------------------------------------------------------------------------
.\""THE BEER-WARE LICENSE" (Revision 42): 
.\"<joerg@freebsd.org> wrote this file.  As long as you retain this notice you
.\"can do whatever you want with this stuff. If we meet some day, and you think
.\"this stuff is worth it, you can buy me a beer in return.       Joerg Wunsch
.\"----------------------------------------------------------------------------
.\"
.\" This manual page is partially obtained from Poul-Hennings CTM README
.\" file.
.\"
.\" CTM and ctm(1) by <phk@login.dknet.dk>
.\"
.\" %Id: ctm.1,v 1.14 1998/04/20 20:57:16 rnordier Exp %
.\" jpman %Id: ctm.1,v 1.3 1997/09/27 16:26:57 ryo2 Stab %
.\"
.Dd Mar 25, 1995
.Os
.Dt CTM 1
.Sh 名称
.Nm ctm
.Nd ソースコードをミラーするプログラム
.Sh 書式
.Nm ctm
.Op Fl cFklquv
.Op Fl b Ar basedir
.Op Fl B Ar backup-file
.Op Fl e Ar include-regex
.Op Fl t Ar tar-command
.Op Fl T Ar tmpdir
.Op Fl V Ar level
.Op Fl x Ar exclude-regex
.Ar
.Sh 解説
.Nm
は、元々
.Dq Cvs Through eMail
でしたが、今は代わりに
.Dq Current Through eMail
と呼ぶのがふさわしいようです。

.Nm
は、今や 2 つのバージョンのディレクトリツリーの間でデルタを作成して
適用するための最も信頼できる方法を意味します。

これにはデルタの作成と適用という 2 つの部分があります。2 つは
全く異なるものです。

.Ss 使用例

CTM デルタを適用するには、それを
.Nm
コマンドに渡します。CTM デルタを標準入力、またはファイル名を引数として
渡すことができます。後者の方法を取ると、とても簡単に
することができます。なぜなら このプログラムは gzip で圧縮された
ファイルを受け付けて、ファイルの一時的なコピーを作る必要が無いからです。
複数のデルタを一度に指定でき、それらは一度にひとつずつ処理されます。
すでに適用されているデルタは無視されます。

.Nm
コマンドの実行はたくさんのパスにわかれています。
次のパスを始める前に、それぞれのパスで入力ファイルの全体が処理されます。

.Ar name
で指定されたファイルを処理する前に
.Nm
は まず
.Ar name.ctm
というファイルが存在するかどうかをチェックします。
存在すれば、
.Nm
は、かわりにそちらを処理します。

パス 1 では、入力ファイルが正常かどうかを確認します。
文法、データ、全体の MD5 によるチェックサムがチェックされます。
いずれか 1 つでも異常があれば、
.Nm
は単純に入力ファイルを拒否します。

パス 2 ではディレクトリツリーが CTM デルタの期待している状態に
なっているかどうかを確認します。これは存在する/しないはずの
ファイルとディレクトリファイルとディレクトリを捜して
ファイルの MD5 によるチェックサムをチェックすることで行われます。

もし
.Ar backup-file
が
.Fl B
オプションで指定されていると、その
.Nm
の呼び出しで変更されるファイルが
.Fl t
オプションで指定されたアーカイバコマンドを使って、そのファイルに
バックアップされます。デフォルトのアーカイバコマンドは
.Nm "tar -rf %s -T -"
です。

パス 3 では実際にデルタが適用されます。

.Nm
によって変更されるファイルのリストは、
.Fl e
と
.Fl x
オプションで指定された正規表現によるフィルタの対象になります。
.Fl e
と
.Fl x
オプションは、コマンドラインで指定された順に適用されます。
与えられたファイル名に最後にマッチしたフィルタが、そのファイルを
.Nm
の適用対象とするかどうかを決定します。

.Nm
は、その作業ディレクトリ下にファイルの階層を展開します。
絶対パスや
.Sq \&.
と
.Sq \&.\&.
の参照を含むファイル名は、セキュリティのために明確に禁止されています。

.Ss オプション

.Bl -tag -width indent -compact

.It Fl b Ar basedir
各ファイル名に
.Ar basedir
で指定されたパスを前置します。

.It Fl B Ar backup-file
この CTM の実行で変更されるすべてのファイルを
.Ar backup-file
にバックアップします。
.Fl e
と
.Fl x
オプションで何らかのフィルタが指定されると、
CTM の実行時にフィルタが適用され、変更されたファイルが、
最終的にバックアップされるファイルのセットとなります。

.It Fl c
確認だけを行ない、他には何もしません。

.It Fl e Ar regular_expression
CTM ファイル中の各ファイル名が
.Ar regular_expression
にマッチするかどうかを調べ、マッチすればそのファイルを処理し、
マッチしなければ何もせずそのまま残します。
このオプションは何個でも指定できます。このオプションを指定すると
.Pa .ctm_status
のシーケンス番号のチェックが行なわれません。
例えば、
.Ic ^usr.sbin/ctm 
と指定すると、
.Nm usr.sbin/ctm
というソースディレクトリと、その下のすべてのパス名を指定した事に
なります。

CTM の処理対象からパス名を外すには
.Fl x
オプションを使います。

.It Fl F
強行します。

.It Fl k
ファイルとディレクトリを保存し、CTM ファイルで削除するように
指定されているものでも削除しません。
.Fl B
オプションが指定されると、そのファイルとディレクトリは
バックアップされません。

.It Fl l
その CTM の実行で変更されるはずのファイルと、それに対して
行われるアクションをリストします。
.Fl l
オプションを使うと
.Pa .ctm_status
のチェックと作業対象のソースツリーの正当性チェックが行なわれません。
.Fl l
オプションは、
.Fl e
と
.Fl x
オプションを組み合わせることで、与えるコマンドラインオプションで
どのファイルが変更されるかを見定めることができます。

.It Fl q
表示を減らします。

.It Fl t Ar tar-command
デフォルトのアーカイバである
.Nm tar
の代わりに
.Ar tar-command
を使います。
このオプションは、バックアップファイルが
.Fl B
オプションで指定された場合にのみ効果があります。
tar command 中には一つだけ %s を置くことができ、
バックアップファイルの名前に置き換えられます。


.It Fl T Ar tmpdir
一時ファイルを
.Ar tmpdir
に置きます。

.It Fl u
作成、変更されるファイルの更新時刻を CTM デルタが作成された
時刻に設定します。

.It Fl v
表示を増やします。

.It Fl V Ar level
表示を増やします。
.Ar level
は饒舌さの程度です。

.It Fl x Ar regular_expression
CTM ファイル中の各ファイル名を
.Ar regular_expression
とマッチするかどうかを調べ、マッチすればそのファイルを除外します。
このオプションは何個でも指定できます。このオプションを指定すると
.Pa .ctm_status
のシーケンス番号のチェックが行なわれません。

CTM の処理対象にパス名を加えるには
.Fl e
オプションを使います。

.El

.Sh 環境変数
.Ev TMPDIR
にパス名がセットされていると、ctm は一時ファイルの置き場所として
そのパス名を使います。
これに関しての詳細は
.Xr tempnam 3
を参照して下さい。
同じ効果は
.Fl T
フラグでも得られます。

.Sh 関連ファイル

.Pa .ctm_status
には、最後に適用した CTM デルタのシーケンス番号が含まれます。
このファイルを変更したり削除したりすると、
.Nm
は、とても混乱します。


.Fl e
と
.Fl x
オプションを使うとソースツリーの一部分を更新することができ、
ソースを一貫性のない状態にすることになります。
これらのオプションを使うときには、何をしているのかを理解していることが
仮定されています。

.Sh 使用例

.Bd -literal

cd ~cvs
/usr/sbin/ctm ~ctm/cvs-*

.Ed

`lib' 以下のすべてのソースを取り出してパッチを当てるには
以下のようにします。
.Bd -literal
cd ~/lib-srcs
/usr/sbin/ctm -e '^lib' ~ctm/src-cur*
.Ed
.Sh 診断

充分に説明的であるはずの沢山のメッセージが出力されます。
.Dq ノイズレベル
は
.Fl q ,
.Fl v ,
.Fl V
オプションで調整できます。

.Sh 関連項目
.Xr ctm_rmail 1 ,
.Xr ctm 5

.Sh 歴史

最初の試みは
.Fx 1.1.5
の作業中に行われました。そして、たくさんの
バグと手法について徹底的に議論されました。

.Nm
コマンドは
.Fx 2.1
から登場しました。

.Sh 作者

CTM システムは
.An Poul-Henning Kamp Aq phk@FreeBSD.org
によってデザインされ実装されました。

このマニュアルページは
.An Joerg Wunsch Aq joerg@FreeBSD.org
が書きました。

.Sh 日本語訳
野首 寛高(h-nokubi@nmit.mt.nec.co.jp): FreeBSD 用に翻訳