admin
Synopsis: admin [OPTIONS] [FILES]
- Alternate names - adm, rcs
- Requires - Working copy, repository
- Changes - Repository
このコマンドはさまざまな管理作業のためのインタフェースです。とりわけ、
キーワード展開のモードを変更したり、コミットしてしまったあとにログメッ
セージを変更したりするような、リポジトリ内の個別のRCSファイルを対象と
する作業を受け持ちます。
引数にファイルを指定しなければ admin は(カレントディレクトリから)再帰
的に動作するのですが、ファイル名を明示的に指定するのが普通です。あるプ
ロジェクト内あるいはディレクトリ内のすべてのファイルに対して、1回の
admin コマンドで意味のある作業はまず行えないでしょう。ですから、以下の
説明の中で「ファイル」とあったら、admin コマンドの引数として指定したフ
ァイルのことを指していると考えてください。
リポジトリマシンのシステムに cvsadmin
という名前のグループがあ
る場合、そのグループのメンバーのみが admin コマンドを実行できます
(cvs admin -k
は例外で誰でも実行できます)。ですから、メンバー
を持たない cvsadmin グループを作成すれば、すべてのユーザに admin コマ
ンドを実行させないよう設定できます。
オプション:
- -AOLDFILE - (Obsolete) OLDFILE の RCS アクセスリストを admin コマンド
の引数に指定したファイルのアクセスリストに追加します。CVS は RCS アク
セスリストを見ないのでこのオプションは意味がありません。
- -a USER1 [,USER2...] - (Obsolete) 指定したファイルのアクセスリストに
ユーザを追加する。-A と同様このオプションは CVS では意味がありません。
- -bREV - そのファイルのデフォルトブランチ(通常はトランク)のリビジョン
を REV にする。スティッキータグを使えば必要なリビジョンを取得できます
ので普通はこのオプションは必要ないと思いますが、ベンダブランチを使用し
ている場合に、あるベンダバージョンを元に戻すために使うことがあると思い
ます。-b とその引数の間に空白があってはいけません。
Sets the revision of the file's default branch (usually the
trunk) to REV. You won't normally need this option, because you can
usually get the revisions you need via sticky tags, but you may use it
to revert to a vendor's version if you're using vendor branches. There
should be no space between the -b and its argument.
- -cCOMMENT_PREFIX - (Obsolete) そのファイルのコメントリーダを
COMMENT_PREFIX に設定する。CVS や最近の RCS では、コメントリーダは使用
されませんのでこのオプションは意味がありません。単なる下位互換性確保の
ためのオプションです。
- -eUSER1[,USER2...] - (Obsolete) RCS ファイルのアクセスリストからユー
ザ名を削除します。-a や -A と同様、 CVS では意味のないオプションです。
- -i or -I - これら2オプションは廃止されており、何であったか説明するま
でもないと思います。(興味おありのかたは Cederqvist マニュアルを参照し
てください。)
- -kMODE - そのファイルのデフォルトキーワード展開モードを MODE に設定し
ます。add コマンドの -k オプションと同じような動作をします。add してし
まった後でモードを変更できる、というところが違うだけです。(指定できる
モードについては、この章でのちほど出てくる Keyword Substitution (RCS Keywords) の節を参照してください。) -k と引数の間に空白があって
はいけません。
- -L - ロックを
strict
に設定します。 (下記の -l を参照のこと)
- -l[REV] - そのファイルのリビジョンを REV にロックします。REV が省略さ
れた場合、デフォルトブランチ(通常はトランク)の最新のリビジョンにロック
します。REV がブランチであれば、そのブランチの最新のリビジョンにロック
します。
Locks the file's revision to REV. If REV is omitted, it
locks the latest revision on the default branch (usually the trunk). If
REV is a branch, it locks the latest revision on that branch.
このオプションの目的は、予約チェックアウト(reserved checkouts)、
を実現することです。予約チェックアウトとは、そのファイルを同時に1人だ
けが編集できるようにすることを指します。筆者としては、これが本当に役に
立つのか疑問だと思いますが、もし試してみたいと思ったら CVS のソースデ
ィストリビューションの contrib/ ディレクトリに入っている rcslock.pl ス
クリプトを一緒に使うべきです。詳しくはそのスクリプトのコメントをご覧く
ださい。ロックは strict
にセットされていなければならないと書い
てあります。(-L を参照のこと。) -l と引数の間には空白を入れてはいけま
せん。
- -mREV:MESSAGE - リビジョン REV のログメッセージを MESSAGE に変更しま
す。便利ですね、-k オプションとともに最も良く使われる admin オプション
だと思います。オプションと引数の間、また2つの引数の間のコロンの前後に
は空白を入れてはいけません。もちろん MESSAGE は空白を含むこともありま
す(そのような場合はクオートで括り、それがひとまとまりであることをシェ
ルに知らせてやりましょう)。
- -NNAME[:[REV]] - -n と同様ですが、シンボル名 NAME を割り当てる際に既
存のものがあった場合、エラーで終了せずに上書きするところが違います。
- -nNAME[:[REV]] - タグづけ、タグ名変更、タグ削除に関する汎用のインタフ
ェースです。tag コマンドや他のオプション(-d, -r, -b, -f などなど) では
なく、これをわざわざ選ぶ理由というのは、筆者の知る限り思い当たりません。
tag コマンドを使うことをお勧めします。NAME とオプションの REV は次の組
み合わせがあります:
- NAME 引数のみ指定の場合、シンボル名(タグ) NAME は削除されます。
If only the NAME argument is given, the symbolic name (tag) named NAME
is deleted.
- NAME: という指定で REV がない場合、デフォルトブランチ(通常はトランク)
の最新リビジョンに NAME が割り当てられます。
- NAME:REV という指定をした場合、指定リビジョンに NAME が割り当てられま
す。REV 自身をシンボル名で指定することもできます。その場合はまずリビジ
ョン番号に変換されます(ブランチ番号になることもあります)。
- REV がブランチ番号で最後にピリオド(
.
)がついていた場合、NAME は
そのブランチの最新リビジョンに割り当てられます。REV が $ の場合、NAME
は作業コピーのキーワード文字列にあるリビジョン番号に割り当てられます。
NAME を割り当てる際、すでに NAME というタグが存在していれば CVS はエラ
ー終了します(但し -N を参照のこと)。-n と引数の間に空白を入れてはいけ
ません。
- -oRANGE - RANGE で指定した範囲のリビジョンを削除します(-o は "
outdating")。範囲指定方法は次のうち1つです:
- REV1::REV2 - REV1 と REV2 の間のリビジョンをすべて削除します。結果と
してリビジョン履歴では REV1 の直後に REV2 が来ることになります。この操
作をした後は2つのリビジョンの間のリビジョンは存在せず、リビジョン番号
の順序に飛びができます。
- ::REV - REV リビジョンの存在するブランチ(トランクの場合も有ります)の
最初のリビジョンから REV までのリビジョン(REV は含みません)をすべて削
除します。REV はそのブランチで最初のリビジョンになります。
- REV:: - REV リビジョンのブランチ(トランクの場合もあります)の REV 以降
のリビジョンをすべて削除します。REV はそのブランチで最新のリビジョンに
なります。
- REV - REV リビジョンを削除します(-o1.8 は -o1.7::1.9 と等価です)。
- REV1:REV2 - REV1 から REV2 のリビジョンを削除します(両端含む)。両リビ
ジョンは同じブランチ上になければなりません。この操作の後、 REV1, REV2
とその間のリビジョンにはアクセスできなくなります。
- :REV - REV のブランチ(またはトランク)の最初のリビジョンから REV まで
を削除します(REV 含む)。(前述の警告を参照のこと)
- REV: - REV のブランチ(またはトランク)の REV から最新リビジョンまでを
削除します(REV 含む)。(前述の警告を参照のこと)
削除されるリビジョンにはブランチやロックがあってはいけません。リビジョ
ンにシンボル名がついているようなら、まず最初に tag -d か admin -n で削
除しておく必要があります。(実際現時点では、CVS は :: を使った指定時の
みシンボル名のついたリビジョンを削除するのを防止しているだけですが、ま
もなく : の指定でも同じように動作するようになります。)
まずいコミットを元に戻すためにこのオプションを使うより、まずい変更を元
に戻した新しいリビジョンをコミットするべきです。-o オプションと引数の
間に空白を入れてはいけません。
- -q - 静かに動作するよう指定します。診断メッセージを出力しません(グロ
ーバルオプションの -q と同様です)。
- -sSTATE[:REV] - リビジョン REV の状態属性を STATE にセットします。REV
を省略すると、デフォルトブランチ(通常はトランク)の最新リビジョンが対象
になります。REV がブランチタグまたはブランチ番号の場合は、そのブランチ
の最新リビジョンが対象になります。
STATE には文字数字を使った任意の文字列を指定できます。よく使われるもの
をいくつか挙げると Exp (experimental, 実験用), Stab (stable, 安定版),
Rel (released, リリース版) などがあります。(実際、ファイルが生成された
ときには CVS が Exp を設定します。) 但し、CVS が管理目的で状態 dead を
使用するので、これは指定しないように注意してください。
状態は cvs log の出力や、RCSキーワードの $Log, $State に使用されます。
-s と引数の間に空白を入れてはいけません。
- -t[DESCFILE] - 指定ファイルの説明(生成時メッセージ)を DESCFILE の内容、
DESCFILE が指定されなければ標準入力からの内容に置き換えます。
この便利そうなオプションは残念ながらクライアント/サーバ型の CVS では正
常に動作しません。さらに、クライアント/サーバ型の CVS で DESCFILE を省
略してこのオプションを実行したとすると、そのファイルの既存の説明が消去
され、空文字列で上書きされてしまいます。そのファイルの説明を書き直す場
合には、リポジトリのあるマシンでローカルCVSを使うか、 -t-STRING(下記参
照) を使うしかありません。 -t と引数の間には空白を入れてはいけません。
DESCFILE はハイフン(-
)で始まっていてはいけません。
- -t-STRING - -t と同様ですが、説明文字列として直接 STRING を登録します。
クォートで括れば STRING に空白を含めることもできます。-t と違い、クラ
イアント/サーバ型でも正常に動作します。
- -U - ロックを非 strict にセットします。(これまでに述べた -l, -L オプ
ションを参照してください。)
-
-u[REV] - リビジョン REV のロックを解除します。(-l を参照のこと。)
REV が省略された場合は、このコマンドを発行したユーザが最後に取得したロ
ックを解除します。REV がブランチ番号の場合そのブランチの最新リビジョン
のロックを解除します。あるロックを、そのロックの所有者以外のユーザが解
除すると、元のロック所有者あてにメールが送信されます。メールの内容はロ
ックを解除する際の標準入力で要求されます。-u と引数の間には空白を入れ
てはいけません。
-
-VRCS_VERSION_NUMBER - (Obsolete) CVS に対し、以前のバージョンの RCS
解釈可能な RCS ファイルを生成するように指示する。現在 CVS で使用されて
いる RCS フォーマットはすでに RCS で使われているフォーマットからは外れ
てきていますのでこのオプションには意味がありません。このオプションを指
定するとエラーになります。
- -xSUFFIX - (Obsolete)
このオプションは理論上は RCS ファイル名のサフィックスを指定するものな
のですが、 CVS とその関連ツールはすべてデフォルトのサフィックス(,v)に
依存しているので、このオプションは実際には何もしません。