Windows 上の CVS フロントエンドソフトウェアといえば、WinCVS ごった煮... という考えがあったのですが、ここにきて、動作に問題が出ることが多くなってきました。 原因は Cygwin との兼ね合いのような気がするのですが... そこで、ふと見つけた TortoiseCVS を試してみることにしました。 これが使用感は抜群。早速このページで紹介することにしました。 ところどころ WinCVS との比較を記述しているかもしれませんが、 WinCVS の未使用者でもこのページを読むのに問題はありません。
なお、今回はローカルリポジトリに対する操作を前提にしています。 もし、記述内容に誤りがあれば、指摘よろしくお願いします。
WinCVS はというと、WinCVS というひとつのウインドウを持つソフトウェア を起動してそこから CVS モジュールを操作するものです。 一方 TortoiseCVS はエクスプローラと統合されています。
インストール前はエクスプローラに統合ということで、 やや抵抗がありましたが (人によるでしょう)、これが使いやすい。 機能的にも WinCVS でできることはおそらく一通りできるでしょう。 まだ、サーバ・クライアント間の文字コードの問題などまでは調査していませんが、 なかなか使えそうです。
TortoiseCVS は日本語化カスタマイズされたものが あろはだよ CVS において、kurihiro さんによって公開されています。有難くこれを使用させていただくことにしました。
TortoiseCVS1.6.14-SJIS-3 を上記サイトからダウンロードし、 展開〜インストールしてください。 途中 CVSNT2.0.14SJIS もしくは CVSNT2.0.41a との選択をおこないますが、 ここでは SJIS のほうを選択しています。 クライアントとしての利用であれば SJIS のほうで良いのではないでしょうか (なんの根拠もありません、勘です)。
なお、TortoiseCVS はエクスプローラと協調するためでしょうが、 再起動が必要ですので、一旦再起動します。 アイコンのオーバーレイを変更した際も再起動が必要になります。 以降、CVS を使ってよくおこないそうな操作を追って見ていきます。
まずはじめに CVS クライアントとしての共通的な設定をおこないます。 Windows スタートメニューから、[TortoiseCVS] の [Preferences] を起動します。
メインタブでは、CVS 処理 (アップデートやコミット) の進行時の 経過表示に関する設定と、エクスプローラのアイコンにオーバレイする アイコンの設定が可能です。
オーバーレイアイコンはいくつかの種類のアイコンから選択できます。 Windows XP の UI では、XPStyleRounded が良い感じです。 アイコンはファイルの状態を示すものですので、それぞれのわかりやすいものを 選択すると良いでしょう。煩わしければオフにすることもできます。
ポリシータブでは、CVS の動作に関する設定を行えます。 私は [空フォルダの削除] のチェックを外しています。 また、ローカルに CVS リポジトリを参照する ViewCVS などを 使用していないのであれば、[Web ログを解釈] のチェックも不要でしょう。
ツールタブでは、比較、マージなどに関する外部ツールを指定できます。 普段使用している diff ツールなどがあれば、ここで指定します。 以下ではとりあえず比較ツールとして DF を使用しています。 WinCVS 時代からの名残ですが、割とお勧めです。
そのほかのいくらかの設定がありますが、このあたりはそれぞれで 適当にしてください。とりあえず HOME フォルダの変更だけです (何に使用するのかな ?)。
なんだかタブの名称と中身が少しずつずれてきている気もしなくはないのですが、 アップデートなどをしたときに表示される情報の色分け設定です (よね)。
最後に無視ファイルでは、cvsigonore のデフォルト設定を記述します。 *~ などはデフォルトで対象外です。
基本設定が完了すれば、早速モジュールの登録を行ってみます。
TortoiseCVS におけるモジュールの登録 (import) は、 登録するトップレベルのフォルダアイコンの右クリックメニューから行います。 ここで、CVS をお使いの方であれば、リポジトリの用意は ?? と思われるかもしれません。 リポジトリは、はじめてモジュールを登録しようとしたときに作成できます。 もちろん既存のリポジトリを使うこともできるでしょう。
対象とするフォルダの右クリックメニューの [CVS] にある [モジュールの新規作成...] をクリックします。 ここでは、first.txt、second.txt、third.txt の 3 角ファイルを含む TestModule というモジュールを登録します。
もし、これが Tortoise のセットアップ後始めての利用であれば、 CVSROOT の履歴には何も表示されないでしょう。 [CVSROOT:] に、リポジトリの場所を指定します。 この段階でリポジトリが存在しなくてもかまいません。 [プロトコル:] にはローカルリポジトリであるので、[ローカル (:local:)] を指定します。 [OK] をクリックします。
リポジトリが存在しない場合、すぐに、TortoiseCVS Question というダイアログが開き、CVS リポジトリがないことが示されます。 ここで、[Initialize a new repositely here (makes a CVSROOT folder)] を選択して、[OK] をクリックすると、リポジトリが生成されます。 さらに、続けてモジュールの登録が行われます。
WinCVS ではインポート時には一度登録したフォルダを削除してチェックアウト しなおす必要がありましたが、TortoiseCVS では必要ありません。 よくよくログを見ると、テンポラリのフォルダを使用してモジュールを登録し、 その後チェックアウトがおこなわれていました。賢い。
一度エクスプローラで登録したモジュールフォルダの中身をみてください。 ここのファイルは 「?」 となっていて、まだ CVS 管理下に追加されていない ことがわかります。新しいファイルを追加する手順を必要とします。
新しいファイルを CVS 管理下におく場合、CVS では add コマンドを実行します。 これに相当することを TortoiseCVS でおこなうには、 対象ファイルの右クリックメニューから、[CVS 追加...] をクリックします。
追加するファイルの確認ダイアログが開きます。
[OK] をクリックするとモジュールにファイルが追加されます。 その後 WinCVS や通常のコマンド同様に実際にリポジトリに反映するためにコミット (commit) を実行する必要があります。
ためしに、png ファイルを追加してみました。確認の際に、 ファイル形式欄が [バイナリ] になっています。-kb オプションつきで add コマンドが実行されます。複数のファイルを追加するときは、 念のためファイル形式を確認することを忘れないようにします。
CVS 管理下に追加されたファイルのアイコンは 「+」 印に変わります。
この後、実際に CVS リポジトリに変更を反映するために コミット を実行します。
ファイルを追加したり、修正した後はコミットを行う必要があります。 これにより、CVS リポジトリに変更が反映されます。 コミットは対象のモジュールのフォルダの右クリックメニューから、 [CVS コミット...] をクリックします。
コミット時の設定ダイアログが表示されるので、 更新ログを記入します。下半分には追加もしくは修正するファイルの一覧と チェックボックスが表示されるので、コミット対象を確認します。 さて、日本語ログは通るでしょうか ?
変更履歴 を確認すると日本語ログが正しく 保存されていることがわかります。詳細に触れると、ログは SJIS で書かれているようです。CVS サーバを使用する場合で、ログが EUC-JP の場合には注意が必要かもしれません。
update コマンドもこれまで同様に右クリックメニューの [CVS アップデート] から実行します。
現在の CVS リポジトリと比較して、修正のあったファイルなどが確認できます。 ただ、TortoiseCVS では、アイコンでいつも判別できるのが便利なところです。 ファイルを修正すると下のようにアイコンが変わります。
second.txt を編集したので、アイコンが 「o」 に変わってます。 リポジトリに反映するために コミット が必要なのが一目瞭然です。
チェックアウト後の作業が完了すれば、作業用のモジュールのフォルダを削除します。コミット忘れがないかどうかをアップデートを実行して確認した後、 フォルダの右クリックメニューから、 [CVS] の [作業コピーの放棄...] をクリックします。
放棄の際のオプションが 3 種類ありますが、通常は [CVS 管理化のファイル・フォルダを削除 (-d)] で良いでしょう。 フォルダごときれいさっぱり削除したい場合は、 [CVS 管理外ファイルを含むフォルダを削除 (-d -f)] を選択します。
以前登録したモジュールを再び編集する場合などに、チェックアウトします。 エクスプローラでモジュールをチェックアウトしたいフォルダに移動し、 右クリックメニューから [CVS チェックアウト...] を選択します。
チェックアウトするモジュールを指定します。TortoiseCVS では過去にアクセスしたことのあるモジュールのリストが表示されているので、 以前に作成したモジュールなどは、それを選択するだけで、その下の CVSROOT やプロトコルは自動入力されます。これは便利です。
リビジョンタブではタグや日付によるチェックアウトも可能です。
オプションタブでは、[エクスポート] を選択することで、 export (CVS 管理を行わない、ファイルの取り出し) が可能です。 編集が目的の場合は [チェックアウト] のままにしておきます。 [UNIX 改行コードを使用] とすることで、ソースファイルの改行コードを LF 改行として取得します。 なお、リポジトリにファイルを登録する時点では、すべて LF 改行に変換 して登録されます。[UNIX 改行コードを使用] にチェックを入れない場合、 CRLF 改行で取り出されます。
ファイルの変更履歴を確認する場合、対象のファイルの右クリックメニューから、 [CVS] の [変更履歴...] をクリックします。
ダイアログにリビジョンとその更新情報が表示されます。 対象のリビジョンを右クリックして、作業ファイルとの比較や、 そのバージョンをファイルに保存することもできます。