aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/ctm.1
blob: 2639bb2075e99dba1d8997e968d14089d08e8437 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
.\"----------------------------------------------------------------------------
.\""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.9.2.2 1997/09/18 06:23:11 charnier 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 source code mirror program
.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 歴史

最初の試みは
.Xx 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 用に翻訳