TortoiseCVS 質問集

Original: http://www.tortoisecvs.org/faq.html
Latest: http://www.tortoisecvs.org/faq.shtml

プロジェクトに関する質問


TortoiseCVS ってなんですか?
TortoiseCVS はすばらしい。寄付はどこにすればよいですか?

インストールに関する問題


アイコンが表示されないのはどうしてですか?
ときどきアイコンがぐちゃぐちゃになるのですが...?
アイコンがキモい! もっとオシャレなヤツないの?
Windows2000で、MSVCRT.dll のエントリポイントがないというエラーが出るんですけど・・・
TortoiseCVS をアンインストールするにはどうやればいいですか?

日常的な利用についての質問


あ! まちがってファイルを消しちまった・・・
ファイルを削除したときには、どうやって格納すればいいですか?
作業用コピーの修正を捨てて、リポジトリのバージョンに戻すにはどうすればいいですか?(チェックアウトを取り消して、元のリポジトリの内容に戻す)
外部diffプログラムで、おすすめのものってあります?
利用する外部diffプログラムの変更はどうやればいいですか?
WinCVS やコマンドラインの cvs と一緒に使うことはできますか?
別々のリポジトリにあるたくさんのモジュールを一度に扱うことってできますか?
TortoiseCVS は衝突をどんな風に扱いますか?

プロトコルの問題


TortoiseCVS を SSH と一緒に使うにはどうすればいいですか?
TortoiseCVS は SSH v2.0 をサポートしてますか?
SourceForge で作業する場合のコツは?
SSH を使うとき、いちいちパスワードを入力しなくていいようにするには?
Cygwin の SSH と一緒にTortoiseCVSを使っていますが、どうして動かないんでしょう?
SSH のポートを変える必要があるんですけど、TortoiseCVS はそんなことやらせてくれますか?
どうして :ntserver: はもうサポートしていないんですか? どうすればいいですか?
どうして RSH (.rhosts) はもうサポートしていないんですか? どうすればいいですか?

高度な利用方法


排他ロックをかけたり、アナウンス編集するにはどうしたらいいですか?
TortoiseCVS はバイナリファイルをどのように扱いますか?
サーバなしで、自分だけのリポジトリを設定するにはどうやればいいですか?
CVSに送るフラグをカスタマイズできますか?
隠し機能について教えてください!

TortoiseCVS って何ですか?

TortoiseCVS は、CVS バージョン管理下のファイルを ウィンドウズのエクスプローラで直接とり扱えるようにしたものです。 GPL公開ソースコードライセンスのもとで、自由に利用することができます。 この質問集のほとんどは、このソフトの技術的な問題や利用方法についての 回答です。もっと一般的な情報や、スクリーンショットがほしいときは tortoisecvs.orgを見て ください。

TortoiseCVS はすばらしい。寄付はどこにすればよいですか?

ありがとうございます! 3とおりの方法があります:

アイコンが表示されないのはどうしてですか?

ときどきアイコンがぐちゃぐちゃになるのですが...?

ウィンドウズのアイコンキャッシュは、どうもバグバグしてます。 以下のどれかで解決できます。

アイコンがキモい! もっとオシャレなヤツないの?

以下のどれかを使うこともできます:

Barracuda - Enhydra 用の Barracuda を作った人たちからのものです
Cosmin - Cosmin Smeu からのものです
Timo - Timo Kauppinen からのものです
Nikolai - Nikolai Devereaux からのものです
Bertels - Stefan Bertels からのものです
Tbf - Mathias Hasselmann からのものです

インストールするには Windows のアイコンキャッシュをなんらかの方法で 新しくしなくてはなりません。 アイコンキャッシュを再構築するには TweakUI (Windows XP バージョンも使えます) を使うか、手作業でやってください。

デフォルトで用意したアイコンは、ほかのアイコンの上に重なって見えるように 注意深く選んであります。よくある苦情としては、デザインがみっともない、色盲 の人たちには意味がない、衝突を示すアイコンは色が似すぎている、などです。 でも、デフォルトアイコンは、エクスプローラで小さなアイコン表示を選択した 場合や、ファイルが複雑なアイコン表示の場合でも、常に表示されます。

もし、独自にデザインしたものや、いまあるものを改良したものを持って いる人は、ぜひおくってください。TortoiseCVS 付属のデフォルトアイコンを 変更するのは素敵ですが、そうする前に、あるアイコンセットが本当によいもので あることを説得する作業が少し必要になります。

Windows2000で、MSVCRT.dll のエントリポイントがないというエラーが出るんですけど・・・

Windows 2000 のサービスパック 2 に アップグレードすれば解決します。

TortoiseCVS をアンインストールするにはどうやればいいですか?

ウィンドウズのコントロールパネルの、プログラムの追加と削除のところで 簡単にアンインストールできます。

あ! まちがってファイルを消しちまった・・・

recycle bin(ごみ箱?) のなかを探すか、 エクスプローラの編集メニューで、削除の取り消し (Ctrl+Z) を選んでください。 バージョン1.1.0からは、バックアップのファイルが同じディレクトリに、 .#filename.removed.extという形の名前で残ります。

ファイルを削除したときには、どうやって格納すればいいですか?

簡単。ディレクトリ全体を格納してください。 エクスプローラウィンドウのどれかのファイルの少し横で、マウスを右クリック して、格納を選択してください。私はほとんどの場合一番上の階層の ディレクトリで格納します。- これは再帰的にプロジェクト全体に対する 格納になります。

作業用コピーの修正を捨てて、リポジトリのバージョンに戻すにはどうすればいいですか?(チェックアウトを取り消して、元のリポジトリの内容に戻す)

CVS のサブメニューで特殊更新コマンドで、'Clean copy' オプション を選んでください。これは個別のファイルにも、ディレクトリに対しても使えます。

一度ファイルやフォルダを削除してから普通の CVSの更新を使っても、 同じように最新バージョンを取得することができます。

外部diffプログラムで、おすすめのものってあります?

フリーウェアの ExamDiff はすごいです。TortoiseCVS と協調してうまく動きます。オープンソースの WinMerge もすばらしい ので、ある時点で TortoiseCVS と統合したいと思っています。 ファイルタイプごとに、別の diff プログラムが必要な場合は、 ( たとえば、テキストファイルがあったり、バイナリ形式のワープロ ドキュメントがあったりするような場合... ) meta-diff を使うと いいでしょう。

利用する外部diffプログラムの変更はどうやればいいですか?

設定ダイアログを開いてください。スタートメニュー中に あります。CVS の 比較メニューのオプションをクリックする時にコントロール キーを押していることでもできます。

WinCVS やコマンドラインの cvs と一緒に使うことはできますか?

できます。WinCVS で、あるモジュールをチェックアウトしてから TortoiseCVS で使ったりその逆もできます。すでにコマンドラインの cvs クライアントプログラムをインストールしてある場合でもそれと組み合わ せて使うことができます。

よくウィンドウズでは、cvs クライアントによっては、夏時間やタイムゾーンを 正しく扱わないことがあります。 CVSNT を使うか、WinCVS の十分新しいバージョン を、TortoiseCVS のバージョン 0.48 以降と一緒に使ってみてください。特に NTFS ファイルシステム上ではそうしてみてください。

できないことのひとつに、Unix でチェックアウトしたリポジトリ上で作業 することがあります。これは、CVS/* ディレクトリにあるファイルの CR/LF 改行 文字に互換性がないためです。TortoiseCVS は、間違ってこれをやろうとすると 警告します。設定でこの警告を無効にすることができます。

別々のリポジトリにあるたくさんのモジュールを一度に扱うことってできますか?

はい、できます。これは CVS の標準的な機能 です。CVS でチェックアウトされたディレクトリは、それぞれ自分がどこから チェックアウトされたかを(CVS という名前のサブフォルダ中のファイルで)憶えて います。ぜんぜん別のところにある複数のモジュールを選択して、一度に更新や 格納処理することさえできます。

従来の CVS では、CVSROOT環境変数を変更してリポジトリ先を変更するたびに リブートしなくてはなりませんでしたが、TortoiseCVS ではこれをやる必要は ありません ! CVSROOT 環境変数を設定する必要はないんです。

TortoiseCVS は衝突をどんな風に扱いますか?

あなたが、リビジョン番号 1.4 のファイルをチェックアウトして編集を始めた とします。少しして誰か別の人が格納してリビジョン番号を 1.5 とし、更に 少しして 1.6 にしたとします。そこであなたが TortoiseCVS で更新を実行 すると、CVS は、あなたのローカルファイルに対して、1.4 から 1.6 の間に あったすべての変更を反映しようとします。

でも、1.4 と 1.6 の間の変更箇所が、あなた自身がその間にやった修正箇所と 非常に近いか、重なっているような場合には、CVS はこの衝突を検出して、 特殊なファイルを作ります。それは、重なっている行の両方のバージョンを 特別のマーカ文字列で区切った形で取り込んでいるものです。("衝突 ファイル" 参照)

この衝突ファイルをもとに、TortoiseCVS は一時的なファイルを二つ作ります:

  1. ひとつは、衝突のある部分をあなたのローカルファイルのものにしたバージョン。

    このファイルは、"tortoise.based_on_local." + ファイル名称 という名前です。 あなたが望んでいるのはもう一方のファイル(以下で説明)だろうということで、 こちらは読み込み専用ファイルにしてあります。

  2. もう一つはリビジョン1.6 の行があるバージョン。 このファイルは、"tortoise.new_based_on_1.6." + ファイル名称という名前です。 こちらはマージ後にあなたの新しいローカルファイルになるはずのものです。( 以下で説明します)
ふたつの一時的なファイルを作ったあと、TortoiseCVS は 外部の diff プログラム を起動します。ここで、衝突を起こしている場所の変更を手でマージすることに なります。ふたつめのファイルが新しいローカルファイルになるものである ことを思い出してください(だから、ファイル名称の中に "new" という文字列が あるわけです)。"...based_on_local..." から、"...new_based_on_1.6..." の 中に向けて重なっている部分のマージをする必要があります。

そんなわけで、マージをいっさいやらなければ、リビジョン1.6の方の行が保存され、 ローカルファイルの行は捨てられます。いっぽう、"...based_on_local..." の行全部を "...new_based_on_1.6..." に上書きすれば、あなたの変更は保存され、リビジョン 1.6 からの行は捨てられます。

マージ処理が済んだら、"...new_based_on_1.6..." を保存して、diff プログラム を閉じてください。確認のため、TortoiseCVS はマージ処理の結果であなたの ローカルファイル("衝突" ファイル)を上書きするかどうか聞いてきます。「はい」 を選択すれば、衝突ファイルは上書きされ、そのファイルの状態は、"衝突" から、 "変更" に変わります。これは、オーバーレイアイコンによって示されます。 「いいえ」を選択すれば、あなたのマージ処理結果は捨てられ、ファイルは、 "衝突" 状態のままにとどまりますが、エクスプローラのメニューを使って後で衝突を 解決することができます。

TortoiseCVS を SSH と一緒に使うにはどうすればいいですか?

リリース 0.49 から、SSH は、TortoiseCVS 経由で透過的にサポートされています。 CVSROOT に、"Secure shell (:ext:)" プロトコルを使ってチェックアウトすると TortoiseCVS は "Putty"(有名なSSHライブラリの名前です-訳者)を使って サーバに接続しようとします。SSH のサポートは以下のように動作します:

TortoiseCVS は SSH v2.0 をサポートしてますか?

はい。

SourceForge で作業する場合のコツは?

SSH を使うとき、いちいちパスワードを入力しなくていいようにするには?

公開鍵/プライベート鍵のペアを作る必要があります。公開鍵は、サーバに送られます が、プライベート鍵はあなたのハードディスクに置いておきます。これで、接続時 に、サーバはあなたが誰であるか確認することができます。あなたのプライベート鍵 を持っているのは、あなただけなわけですから。

ブライベート鍵をもっと強く保護したいときは、パスフレーズによって、 ハードディスク上のプライベート鍵を暗号化することができます。 パスフレーズを省略することもできますが、この場合パスワードを入力する 必要がないかわりに、そのコンピュータにアクセスできるひとはだれでも あなたの SSH CVS アカウントにアクセスすることができてしまいます。 SSH Agent(Pageantのような)を使うこともできます。これはひとつのセッション 中に限り、パスフレーズを記憶することができるもので、一度だけ入力する だけで使えます。

TortoiseCVS は、SSH クライアントに、あるバージョンの Plink を使って います。これは、公開鍵/プライベート鍵のペアの生成に PuTTYgen プログラム を、またプライベート鍵の場所の指定に、Pageant を使うことができるという ことです。このふたつは、あらかじめ PuTTY のウェブサイトからダウンロードしておいてください。

PuTTYgen と Pageant の使い方については、 PuTTY ドキュメント を見てください。 特に "8.2: Using PuTTYgen, the PuTTY key generator" と "9.3.1 Making Pageant automatically load keys on startup" を読んでください。

SourceForgeでの使い方は? PuTTYgen で公開鍵を作ったら、ウェブ インターフェースでアップロードする必要があります。SourceForge ウェブサイト にログインして、アカウント設定のページに行ってください。下のほうの、 "Shell Account Information" セクションに、"CVS/SSH Shared Authorized Keys" という場所があります。公開鍵をここに追加してください。

PlinkでSSH プロトコルバージョン2 を使う必要があるかも知れません。この場合は 設定の中の "SSH アプリケーション" を、"TortoisePlinkSSH2.bat" に変更して ください。

こういうことはどれもウザすぎると思わない? マシンの上にパスワードが そのまま保存されるのでセキュアではありませんが、こんな方法もあります。 TortoiseCVS の設定 -> SSH -> SSH アプリケーションに行って、 TortoisePlinkWithPassword.batを設定してください。それからこのファイル を編集して、"my_password" のところをあなたの SSH パスワードで 置き換えてください。でも、これはマジで SSH の不正利用法なんで、 何か質問されても答える気はないんで、そこんとこよろしく。

Cygwin の SSH と一緒にTortoiseCVSを使っていますが、どうして動かないんでしょう?

HOME 環境変数に空白やクオート、その他の 非アルファベット文字があると、Cygwin は動きません。修正してみてください。

SSH のポートを変える必要があるんですけど、TortoiseCVS はそんなことやらせてくれない?

理由は CVSNT にあります。TortoiseCVS での CVS 操作は全部 CVSNT に依存しているの ですが、ほかのプロトコルのように、CVSROOT 中で SSH プロトコルのポートを指定する ことができないんです。で、以下のようなウラワザ使うしかありません。
  1. ウィンドウズのエクスプローラのどこかで、右クリックします。
  2. "CVS --> 設定"。
  3. "SSH" タブを選択。
  4. "SSH アプリケーション" で、"TortoisePlink -P ##$" と入力。ここで ### は、ポート番号になります。

どうして :ntserver: はもうサポートしていないんですか? どうすればいいですか?

:ntserver: はすでに CVSNT では推奨されない方法なので、:sspi: プロトコルに変更 してください。こちらも ウィンドウズ の認証をサポートしていますが、もっと標準的な 方法にのっとっています。チェックアウトする時にもやはり :sspi: を使う必要があります。

すでにチェックアウトしたディレクトリがあって、そこでファイルを修正した場合、 ntserver から、sspi に変更することができます。これには、CVS/Root ファイルを テキストエディタで開いて、"ntserver" を "sspi" に変更します。これは自分が何をしようと しているか理解している人だけにオススメの方法です。そうでない人は、変更したファイルを バックアップして、チェックアウトしてあるディレクトリをいったん削除し、もう一度 チェックアウトしてください。

サーバ上で古いバージョンの CVSNT を実行している場合は、アップグレードが必要です。 これで :sspi: が利用できるようになります。

どうして RSH (.rhosts) はもうサポートしていないんですか? どうすればいいですか?

TortoiseCVS 0.49+ はもう、:server: プロトコルで RSH をサポートしていません。それは TortoiseCVS が CVS のメインバージョン ではなく、CVSNT を利用しているからです。 この問題を解決するのにいろいろやってみましたが、簡単に解決することが できずにいます。また、RSH ユーザからのサポートもありません。この問題の 解決には、いくつかの選択肢があります。

排他ロックをかけたり、アナウンス編集するにはどうしたらいいですか?

以下はどうやるかの概要です:

TortoiseCVS はバイナリファイルをどのように扱いますか?

CVS は同時にふたり以上の人が同じテキストファイルに変更を加えたした時には 自動的にマージすることができますが、バイナリファイルではそうなりません。 その場合は衝突があったことを単に通知し、あなたに両方のコピーを渡し、衝突 を解決させようとします。それで、できるだけテキストファイルを使うように してください。たとえば、HTML や、persuade Word は テキストXMLファイルと して保存してください。

TortoiseCVS はファイルをリポジトリに追加するときに、自動的にそのファイルが テキストかバイナリであるかを検出しようとします。 特定の拡張子をもったファイル、たとえば、.doc や、.exe は、常にバイナリ ファイルであると仮定します。それ以外のファイルについては、TortoiseCVS は、そのファイルの先頭の数バイトをチェックして、どちらのタイプかを決定します。 バイナリファイルは、CVS によって変更されずに保存されます。テキストファイルは オペレーティングシステムごとに行末の文字を変換し、キーワード展開する ので、あるファイルがいつ誰によって最終的に変更されたかを簡単に知ることが できます。ときどき TortoiseCVS はこの自動検出を確実に実行できない場合に、ファイル タイプをユーザに聞いてくることがあります。

テキスト/バイナリ自動検出機能を拡張したい場合は、CVS マニュアルの、 バイナリ ファイル に関する章を読んでください。そして、特定の拡張子をもつ ファイルをバイナリとして格納するための設定を cvswrappers ファイルに 追加してください。これは TortoiseCVS がファイルタイプを尋ねて くるのを止めることはできませんが、間違ってテキスト形式を選択した 場合でも、wrappers ファイルが拡張子によっては強制的にバイナリ形式だ とみなします。

サーバなしで、自分だけのリポジトリを設定するにはどうやればいいですか?

ローカルなリポジトリを作るために他のソフトをインストールする必要は ありません。単に以下のステップを踏んでください:

  1. バージョン管理したいファイルのあるフォルダを用意してください。
  2. そのフォルダで右クリックして CVS サブメニューから新しいモジュールの作成 を選んでください。
  3. "Locally mounted directory" プロトコルを選んでください。
  4. ディレクトリセクションで、リポジトリをどこに置くか指定してください。
  5. OK を選んだあと、新しいリポジトリを作るかどうかの確認を求められます。 確認のためにチェックボックスを選んで、OK をクリックしてください。
  6. これで、フォルダ内のファイルを CVS に追加することができるように なり、Daily Use Guideに書いてある方法で、 利用できるようになります。

TortoiseCVS を使って、許可されているリモートサーバ上に新しいリポジトリを 初期化することもできます。

CVSに送るフラグをカスタマイズできますか?

ある範囲で、これは可能です。 ホームディレクトリに、.cvsrcという名前のファイルを作ってください。 ホームディレクトリがどこかは、CVS の設定で調べることができます。 .cvsrcファイルの形式は、 ここに説明があります

たとえばタグを移動させるためにすべてのタグコマンドに -F オプションを つけたい場合、 .cvsrcファイルに "tag -F" という行を追加してください。

隠し機能について教えてください!

実験的な機能を有効にしたり、デバッグを助けるためのオプションがいくつかあります。 いずれも設定ダイアログの 'Quirky' タブにあります:

変更のあったディレクトリの表示 - ファイルに変更のあったディレクトリを ハイライト表示します。シブい機能ですが、エクスプローラで表示するすべての ディレクトリを再帰的にチェックするのでひどく遅くなります。

クライアントログ - TortoiseCVS ディレクトリの cvsclientlog.in と cvsclientlog.out ファイルに、サーバとのトランザクションの記録を書き出します。 これはサーバとの接続の問題をデバッグするときに有効です。

$Date: 2003/03/04 12:03:51 $