![]() |
このドキュメントでは、あなたがマックにある程度慣れていることと、CVSソースコード管理システムのことを少しは知っているということを前提としています。CVSに関する情報は http://www.cyclic.com を参照してください。
MacCVS Pro はCVSソースコード管理システムのすべての機能を持ったクライアントです。これがあればネットワーク上のCVSリポジトリにファイルのチェックインやチェックアウトができます。他の CVS コマンド、例えばCVS Log やCVS Statusも同様です。加えて、MacCVS Pro はマルチスレッド化されているので、同時に複数の操作を実行することができます。
MacCVS Pro は使いやすく直感的であるようにデザインされているので、ユーザーがソフトウェア技術者であったり同じぐらいの知識を持っている必要はありません。
このドキュメントは MacCVS Pro クライアントの基本操作をカバーしています。またこのドキュメントは、あなたがCVS ソースコード管理システムに既に慣れていることを前提にしています。もしそうでないなら、始める前にオンラインのドキュメントを読むこと を勧めます。
加えて、MacCVS Pro は次の要件を必要とします。
後ろの3項目に関しては、システム管理者に相談する必要があるかもしれません。
MacCVS Pro を手軽に使ってみましょう。まずは"セッション" ファイルを作る必要があります。そこにはサーバーへのログイン名、パスワード、ファイルをローカルに保存するためのディレクトリなどの情報が格納されています。
ベテランの CVS ユーザなら"$CVSROOT" 変数に類似していると感じるかもしれません。それはサーバーアドレス、リポジトリのパス、ユーザ情報を格納するものです。
始めるためには、新しいセッションファイルを作らなければなりません。とにかく、MacCVS Pro のアプリケーションを実行して、メニューからFile:New を選択してください。
一旦新しいセッションファイルを作ったら、画面には空のプロジェクトウィンドウが開きます。メニューから Edit:Session Settings を選択して、セッション設定ウィンドウを表示してください。ここには、あなたがソースファイルをダウンロードするためのディレクトリを設定する必要があります。
Set ボタンをクリックしてあなたがソースファイルをダウンロードするためのディレクトリを選択してください。ダウンロードディレクトリを設定しないと、MacCVS Pro のコマンドはまったく利かなくなります。
次にはネットワークに関する設定が必要です。CVS をあなたのMacintoshで利用するには、MacCVS Pro がUnix やWindows NT 上で稼働しているCVSとコミュニケーションを取れなければなりません。その方法にはいくつかあります。
設定ダイアログのポップアップメニューから Remote Host Information を選択して、ネットワーク設定を表示してください。
これが最も簡単な方法です。"Server Hostname" のフィールドには、CVS サーバーが稼働しているマシンのDNS ネームかまたはIP アドレスを入れます。もしあなたのサーバーがCVS の標準ポート(2401)を聴いていない場合は、単純にアドレスに続けてコロンとポート番号を付けてください。
まず、 Authentication Method のポップアップメニューがPassword になっていることを確かめてください。他が選択されている場合は、いくつかのフィールドが入力できなくなるでしょう。
CVS User Name のフィールドにあなたのログイン名を、CVS Password のフィールドにあなたのパスワードを入力してください。
注意: バージョン2.5 以降では、パスワードを設定せずに、サーバーへの接続時にMacCVS Pro がパスワードを聞いてくるように指定できます。この機能は、セッションファイルにパスワードを格納したくないような状況では便利です。
CVS Root のフィールドにはUnix スタイルのパス名を入力してください。これが何だかわからない場合には、システム管理者に聞いてみましょう。
Network Time Out の設定はトラフィックの多いサーバーへの接続や、PPPによるダイアルアップのような遅い接続の場合には便利です。MacCVS Pro はネットワークの操作を"あきらめる" 前に、指定された時間だけ待ちます。
RSH を使いこなすのは、通常簡単ではありません。RSHを使用するのに次のことが必要です。
RSH は基本的にはリモートマシン上でコマンドを実行するための手段です。この手段を使えば、あなたの快適なMacintoshからUnixの箱の上でCVSコマンドを実行できます。しかしながら、".rhosts" ファイルをUnix のユーザディレクトリでセットアップする必要があります。それは認証とセキュリティ確保のためです。これはまぁ簡単なことです。
まずは CVS を実行したいUnixマシンへとログインします。vi や他のお気に入りのエディタを使って、ホームディレクトリに".rhosts" という名前の".rhosts" ファイルを作成します。このファイルのフォーマットは、IP アドレスまたはDNS 名、スペースに続けてあなたのユーザ名、そして改行です。IP アドレス(DNS 名)はあなたが接続しようとしているMacintosh のものです。ユーザ名は、あなたのUnix ログインアカウント名です。
一つの例として、IP アドレスが192.0.0.1 のMacintoshからRSHしたいとします。アカウントは "ramr"が既にあるとします。私の .rhosts ファイルは次のようになります。
192.0.0.1 ramr
もし私の Macintosh がDNS 名"ramrod"を持っていたなら、次のように書くでしょう。
ramrod ramr
複数記述することも可能ですが、1行に1エントリーになるようにします。例えば、
192.0.0.1 ramr
ramrod ramr
192.168.2.3 someuser
squid.netscape.com johnqpublic
これが完了したら、セッション設定ダイアログにおいて、リモートホストの情報をセットアップする必要があります。まず、 Authentication Method ポップアップメニューをRSHにしてください。次に、Server Hostname にRSHを使おうとしているUnixマシンの IP アドレスかまたはDNS 名を入力してください。CVS User Name のフィールドにはUnix ログイン名を入力します。
CVS Password のフィールドは未入力にしておけます。これはRSH では必要ありません。代わりに、".rhosts" ファイルが認証に使われます。
CVS Rootには、Unix スタイルのパス名を入力します。これがわからない場合には、システム管理者に聞かなければなりません。
最後に重要なのは、CVS Command が正しく設定されていることの確認です。通常ここを変更することはないでしょう。CVS バイナリに"cvs" 以外の名前が付けられているか、それが異なるディレクトリに置かれている場合には変更が必要です。
Tip: パス変数がCVS バイナリにアクセスできるように設定されているか確認しましょう。これが正しくないと、RSH は機能しません。あなたがUnix マシンにログインし、"cvs" と入力すれば、CVSが実行するはずです。"cvs - command not found"のようなエラーを受け取った場合、パスが正しく設定されていません。
Tip 2: いくつかのUnix の実装ではRSH 認証に関してはちょっと気難しかったりもします。Linuxのほとんどのバージョンにおいては、".rhosts" ファイルはファイル所有者のみにしか 読めないようになっているか、サーバーがすべての接続要求を拒否します。
MacCVS Pro が今のところビルトインでSSH プロトコルのサポートをしていないので、SSH 接続上でCVS接続を"tunnel"するために、 FSecureの SSH 製品 を見てみるといいでしょう。
私はこれらの製品を試していないし、推奨もしません。
はー!これ書いといたほうがいいと思う?もしそう言い切れるなら、あなたは自分が何をしているかを十分に理解しているでしょう。
M.I.T. にいる私たちの友人がKerberos 認証サポートを追加するという素晴らしい仕事を成し遂げました。しかしながら、私たちはUnited States の輸出規制があるおかげでKClient のコードを配布することがません。私たちはこの解決法を模索中です。もっと情報が必要なら私たちにコンタクトしてください 。
これで CVSを使うために必要なセッションファイルが作成できました。メニューから File:Save を選択してセッション設定の変更を保存してください。もし全部正しく設定されていれば、プロジェクトウィンドウはあなたのダウンロードディレクトリの内容を表示するはずです。
そろそろプロジェクトウィンドウを説明してもいいでしょう。プロジェクトビューは、あなたがセッション設定で指定したソースディレクトリの内容を単純に表示しています。MacOS のFinderによく似た感じの動き方をします。
もしセッションを作成したばかりなら、プロジェクトウィンドウには何のファイルも表示されないでしょう。(もちろんソースディレクトリに既にファイルが置いてあれば別です。)
プロジェクトビューはかなりわかりやすいものです。重要なのはステータス列とそこに表示される各ファイルのステータスを表すアイコンです。ステータスアイコンはプロジェクト内のファイルに関する重要な情報を表示しています。そして、ファイルに対して可能な操作も示しています。
以下にアイコンの説明をします。
|
このアイコンが示すのは、ファイルがチェックアウト済みで、まだ変更はされていないということです。私はよく "クリーンな" とか"壊れてない" 鉛筆と言います。一般に、あなたのディスクにあるファイルの複製は、サーバーにある(同じバージョンの)ものから変更されていない、ということを意味しています。 通常、このアイコンの付いたファイルには、CVS Add以外のほとんどの CVS コマンドを実行できます。 |
|
このアイコンが示すのは、ファイルがチェックアウトされてから、変更されているということです。私はよく "壊れた鉛筆" と言ってしまいます。本当は"壊れた鉛筆" アイコンは別にあるんですが。 通常この状態にあるファイルは Modified Read Only ファイルと呼ばれます。略してMRO です。ファイルが修正されたことを伝えています。(なにやら大昔の Projector 技術用語のようです) ファイルに対して次のコマンドが実行できます。CVS Update (条件付きで), Commit, Log, Status, などなど。 |
|
この "壊れた鉛筆" アイコンが示すのは、ファイルはCVSリポジトリからチェックアウトされているけれど、あなたのディスク上で移動されてしまい、正しい場所にないということです。 このアイコンの付いているファイルには、どんな CVS コマンドも使えません。 |
|
この "空ファイル" アイコンが示すのは、そのファイルにリビジョン情報が欠落しているということです。通常これはファイルがリポジトリに属していないか、または元あった場所から移動してしまったことによります。 このアイコンの付いているファイルには、CVS Add が可能です。 |
| このアイコンが示すのは、そのファイルのステータス情報が壊れているか不正であるということです。もしあなたが MacCVS 1.xからアップグレードしたのなら、このアイコンを見るかもしれません。というのは、そのバージョンではステータス情報のファイルフォーマットが異なっているからです。 |
チェックアウトと更新のコマンドは、もっともよく使うものです。標準の CVS にあるコマンドとほとんど同じように機能しますが、若干の違いもあります。
何かを最初にチェックアウトするには、メニューから Action:Check Out Module Toを選択します。するとダイアログが表れて、リポジトリからチェックアウトしたいソースファイルのモジュール名かパス名を入力できます。
チェックアウトしたいソースを指定するには、単純に Module のフィールドにモジュール名かパス名を入力します。
"Module" というラベルがフィールドに付けられているため、混乱する人もいるでしょう。その人はパス名が使えると直感的には考えないでしょう。しかし、CVS にあるモジュールはパス名のコレクションとして定義されているので、"Module" という用語は通常、チェックアウトしたい物がある場所を意味する一般的な用語として使われます。
Check Out To ポップアップメニューは、日付かタグのリビジョンを指定をすることができるようにします。Tip of Trunk オプションは(これがデフォルトです) 、最新のバージョンのソースファイルがチェックアウトされることを意味します。特定のリビジョンを指定するには、ポップアップメニューからOther Tag を選択して、標準CVS スタイルのタグ情報をダイアログで入力します。リビジョンに関する新しいメニュー項目はCheckout To メニューに追加されて行くでしょう。
CVS タグとリビジョンに関するより詳細な情報は、CVS ユーザドキュメンテーションを参照してください。
あなたは定期的にディスク上のファイルを更新したくなるでしょう。それには2つの方法があります、CVS Check Out コマンドを使う場合と、CVS Update コマンドを使う場合です。いくつかの理由で、これらは混乱しやすいのですが、違いは本当に単純です。
CVS Check Out コマンドは、あなたのローカルプロジェクト内に既にあるファイルを更新します。これはまた、新しいディレクトリのダウンロードもします。コマンドラインのCVS に慣れたユーザは、これを昔の"update -d" コマンドであると認識します。Check Out はディレクトリにおいてのみ機能します。
ディレクトリをチェックアウトするには、単にディレクトリを選択状態にして、メニューから Action:Check Outを選択します。メニューから Action:Check Out To を選択することで、異なったリビジョンへとディレクトリをチェックアウトすることもできます。
CVS Update コマンドだけが あなたのローカルプロジェクト内に既にある ファイルを更新します。一つのアイテムを更新するには、単にアイテムを選択状態にして、メニューからAction:Updateを選択します。メニューから Action:Update To コマンドを選択することで、異なったリビジョンへとアイテムを更新することもできます。Update はファイルとディレクトリの両方に機能します。
つまり要約すると、違いはこうです。
既に CVS に慣れているユーザにとっては"cvs update -d" に類似している。
Action メニューにはCheck Out Default Module と呼ばれるもう一つのオプションがあります。もしあなたがDefault Module のフィールドにモジュール名(またはパス名)を指定した上で、このアイテムを選択したなら、そのモジュールは自動的にチェックアウトされるでしょう。これはあるプロジェクトで(ほとんどいつも1つのモジュールで)作業する場合には便利です。すべてを素早く更新できます。
CVS Commit コマンドは、あなたがファイルに加えた変更をCVS サーバーへとアップロードするために使います。こうするには、コミットしたいファイルを選択状態にして、メニューからAction:Commit を選択します。コメントのダイアログが表れるので、コミットのコメントを入力できます。コメントを入力したら、Commit ボタンを押します。MacCVS Pro はリポジトリにファイルをコミットしようとします。
警告: 注意してやらないと、他の人の変更を消してしまうこともあります。CVS にはこのハプニングが発生する可能性を最小化するように安全装置が付いてます。しかし、あなたの常識も必要とされています。私が勧めるのは、あなたが変更をコミットする前に、ローカルファイルとリポジトリの複製との差異をまず確認するために、Status:Compare With Original コマンドをファイル(それがテキストファイルの場合)に対して使うことです。
また、コミット操作の中断にも気を付けてください。不自由な感じがするのもわかりますが、コミット操作を間違ったタイミングで中断すると、CVS はファイルにゲロを吐きます。これはめったにないことで、簡単に治せますが、その操作をちゃんと完了させることで回避できることです。
CVS Add コマンドはリポジトリに新しいファイルを追加するのに使われます。これは本当に簡単なことですが、異なるタイプのコンピュータとファイルを共有するために考慮すべき重要な点がいくつかあります。
CVS がテキストやバイナリを扱う方法は、多くの人がわかりにくく感じるようです。実際には、それは全く複雑な物ではありません。
私たちの目的のために、CVS はファイルを2つの方法で見せているに過ぎません。それは"テキスト" ファイルか"バイナリ" ファイルのどちらかです。もしファイルが"テキスト"なら、CVS は異なったバージョンをマージしたり、リビジョン情報を挿入したり、コメントのログを取ったり、改行コードを変更したり、といったあらゆる操作が可能です。もしファイルに"バイナリ"というマークが付いていたら、CVS はそれをただ格納します。"バイナリ" ファイルは、新しいリビジョンがコミットされてもマージされません。基本的に古い物が置き換えられます。
Macintosh の場合はもっと複雑で、リソースフォークを持ったファイルがAppleSingle, Binhex, MacBinary, などでエンコーディングされている必要があります。例えば、ResEdit のドキュメントをリポジトリに追加したい場合は、AppleSingle, Binhex, またはMacBinaryでエンコーディングされた "バイナリ" ファイルとして追加する必要があるでしょう。
JPEG やGIF といった画像ファイルは、リソースフォークはいらないので、単純にバイナリデータとして扱えます。この場合にはエンコードせずに"バイナリ"としてファイルを追加します。そうしないと他のプラットフォーム (例えば, Windows) を使っている人はそのファイルを使えなくなります。
Microsoft Word ドキュメントがもう一つの例です。このファイルはクロスプラットフォームのフォーマットで書かれています。(これはPCの Office 97 でも読むことができます。)そのため、これもエンコーディングなしのバイナリファイルとしてコミットされるべきです。
全般に、MacCVS Pro は全体のプロセスを扱いやすくしています。あなたがリポジトリに追加したいファイルを選んだら、MacCVS Pro は自動的にCVS にそのファイルをバイナリファイルとしてマークするように伝えます。などなど。
ここにあなたが扱いそうなファイルの例をいくつか挙げます。
File Type
Add As:
ソースファイルまたはテキストファイル
TEXT
JPEG またはGIF 画像ファイル
BINARY
CodeWarrior プロジェクトファイル
BINARY
Macintosh アプリケーション
AppleSingle, Binhex, またはMacBinary III
リソースファイル
AppleSingle, Binhex, またはMacBinary III
Microsoft Word ドキュメント
BINARY
MacWrite Pro ドキュメント
AppleSingle, Binhex, またはMacBinary III
リポジトリにファイルを追加するには、ファイルを選択状態にし、メニューから Action:Add コマンドを選択します。そのファイルはリビジョン情報を既に持っているはずがないので、プロジェクトビュー上のステータスアイコンはブランクファイルのアイコンになります。
ファイルを追加する際に、MacCVS Pro はファイルのエンコーディングオプションをたずねるダイアログを表示します。
3つのエンコーディングオプションから選ぶことができます。
AppleSingle オプションは控えめに使うべきです。これでエンコーディングされたファイルは他のプラットフォームでは使えないのですから。このことはクロスプラットフォーム環境で作業して、他のユーザとファイルを共有したい場合にはとりわけ重要です。
注意: MacCVS Pro 2.5からは、ファイルを Binhex 4.0 やMacBinary IIIで追加することも可能です。これらのオプションは本質的には AppleSingle と同様です。
ついでながら、一度リポジトリに追加したファイルのタイプを変更することはそんなに簡単ではありません。例えば、あなたがテキストファイルを追加し、後日それを削除します。その後そのファイルを AppleSingleとして追加したとします。これはうまくいきません。これは CVS 自身の妙な動作によります。通常この状況では、Unix のコマンドラインを使うべきです。"cvs admin" を実行してそのファイルをテキストからバイナリへ、またはその逆へ変更します。
CVS Remove はリポジトリからファイルを削除するために使用されます。サーバー上のファイルは実際には削除されずに、"アクティブでない"というマークが付けられるだけです。このコマンドで一日を台無しにすることもあります。気を付けましょう。
ファイルを削除するには、消したいファイルを選択状態にして、メニューから Action:Admin:Removeを選びます。警告ダイアログが消えたら、そのファイルはリポジトリから消えているでしょう。ローカルのコピーはまだあなたのディスク上にあります。それは自分で削除しなければなりません。
CVS はあなたがローカルで修正したファイルを削除させません。こうすると、うっかりリポジトリのコピーを削除して、ローカルのコピーをゴミ箱に入れる、つまりあなたの変更を失うような羽目には陥りません。
どちらの機能もまったく単純です。プロジェクトビューにあるソース管理されているファイル(鉛筆か壊れた鉛筆のステータスアイコン)を選択状態にして、メニューから Status:Get File Log かまたはStatus:Get File Status を選択します。
CVS Status のオプションは、特定のファイルのタグを決定するのにとりわけ有用です。残念なのは、CVS ステータスウィンドウがTextEditを使っているため、出力は約 30 kb 分のテキストに制限されます。
CVS Diff オプションはコマンドラインのCVSのように機能します。選択状態のローカルファイルとそのリポジトリにあるバージョンとの差異のテキスト出力を表示します。データを表示するのに TextEdit を使っているので、その出力は約30 kbに制限されます。
Compare With Original はおそらくMacCVS Proに関するもっともクールな機能の一つです。ローカルのソースファイルと遠隔リポジトリのバージョンとの差異をグラフィック的な表現で見るには、単純にファイルを選択状態にして、メニューから Status:Compare With Original を選択してください。
CVS Tag は正確にUnix の写しのように機能します。これを使うと、特定のリビジョンにアルファベットと数字によるラベルを"タグ付け" できます。後になってからその特定のバージョンを取り出すのに使えます。
ファイルにタグ付けするには、単純にソース管理下のファイルを選択状態にして、メニューから Action:Tagを選択し、好きなタグ名を入力し、OKボタンを押します。
これを試したら、すぐに気が付くと思います。リポジトリにあるファイルをタグ付けしてもローカルコピーは更新されません。ですので、ファイルにタグを付けて、ローカルコピーにもタグ付けしたいときには、メニューから Action:Update To を選択して、タグを更新しなければなりません。
リポジトリにあるファイルからタグを取り除きたい場合には Action:Admin:Delete Tag オプションを使います。この操作は十分に注意してください! うっかりディレクトリ構造全体にわたってタグを削除してしまうことになりかねません。そんなことになったら、ビルド担当エンジニアやプロジェクトマネージャは、あなたとあなたのペットに対して暴力行為に及ぶでしょう。
タグの削除は取り消しできません。他のタグ操作の実行中は例外ですが...そして 8,000 個のファイルのタグをはずしたなら...それはトラブルです。
あなたの人生のある部分を巻き戻してやり直せたら、すてきなことじゃないですか?私は高校時代の経験の数々が胸によみがえってきます。
残念なことに現実ではそうはいきません。しかし、CVS の世界ではこれができるのです!もしあなたが、あなたのディスク上のファイルにうっかり間違った変更をしてしまった場合、単純にメニューからAction:Revert File を選択して、サーバーから元のコピーをダウンロードします。あなたの古いローカルコピーは名前が変更されますが、同じディレクトリに残されます。
注意: MacCVS Pro 2.5 以降においては、このコマンドはRollbackと呼ばれています。
Find Lurkers はリポジトリにコミットされるべきファイルを見つけ出すための、簡単で速い方法です。大きなプロジェクトでたくさんのソースファイルをコミットする必要がある場合には、本当に便利です。プログラマは1,2個のファイルを忘れがちで、他のみんなのビルドを中断してしまうことになります。
Find Lurkers は論理的なファイル検索をサポートしています。タグを利用したり、修正の有無などを指定できます。注意すべきなのは、Find Lurkers は実際にCVS リポジトリの一部であるローカルディレクトリの中だけを検索するということです。'Search for files in...' ラジオボタンはFind Lurkers コマンドが指示されたときに、最全面のプロジェクトビューウィンドウで何が選択状態かによって、アクティベートが制御されます。
もしあなたが新しいファイルを見つけ出すようにチェックしたなら、Find Lurkers はCVS 情報を持っていないファイルを表示します。そして、それがリポジトリに追加されるべき新しいファイルであると決めつけます。エイリアスとMetrowerks CodeWarrior デバッガファイル(SYM ファイルとデバッガ設定の.dbg ファイル)は新しいファイルとしては表示されない ので注意が必要です。
Find Lurkers 検索をするときには、検索結果とともにプロジェクトウィンドウが表示されます。プロジェクトウィンドウと同様で、すべてのCVS 操作がこのウィンドウから行えます。
警告:もしあなたが特定の日付タグの付いたファイルを検索したいなら、正確な日付タグテキストを使用する必要があります。つまり、CVS 日付タグの出力を使用します。日付タグフォーマットではありません。なぜなら、Find Lurkers は単純に文字列を比較しているだけだからです。もしあなたが"03.03.98.10.47.23"という日付タグの付いたファイルを検索したいなら、"03.03.98.10.47.23"というテキストを使用する必要があります。ファイルをチェックアウトした日付では、ありません 。(例えば、 "Mar. 03, 1998")
ドキュメンテーションのページに戻る
Last modified: 99/04/12
Ram Rajadhyaksha