変数 vc-cvs-global-switches に、すべての CVS
操作に渡す追加のコマンドラインオプションを指定できます。これらのスイッチは、cvs
コマンドの直後、実行する操作名の前に挿入されます。
リモートマシン上のCVSリポジトリを使用する場合、VCはネットワーク通信を最小限に抑えようとします。これは変数 vc-cvs-stay-local によって制御されます。vc-cvs-stay-local が only-file(デフォルト)の場合、VCはローカルのCVSサブディレクトリにあるエントリと、以前のCVSコマンドによって返された情報のみを用いて、各ファイルのバージョン管理状態を判定します。その結果、ファイルを修正し、かつ他の誰かが別の変更をチェックインしていた場合、コミットを試みるまで競合の通知は行われません。
vc-cvs-stay-local を nil
に変更すると、VC はローカルリポジトリの場合と同様に、vc-next-action (C-x v v) で何を行うかを決定する前にリモートリポジトリに問い合わせを行います。
また、vc-cvs-stay-local
にリポジトリのホスト名にマッチする正規表現を指定することもできます。これにより、そのパターンに一致するホストのリポジトリに限り、VC
はローカルで動作するようになります。
リモートリポジトリを使用する場合、Emacsは通常、編集した各ファイルのオリジナル版に対して自動バージョンバックアップを作成します。これらのローカルバックアップは、ファイルへの最初の変更を保存するたびに作成され、変更内容をリポジトリにコミットすると削除されます。(なお、これらは通常のEmacsバックアップファイルとは異なります。バックアップファイルを参照してください。)C-x v =やC-x v uなどのコマンドは、ネットワークへのアクセスを避けるため、可能であれば自動バージョンバックアップを利用します。
vc-cvs-stay-local を nil
に設定すると、バージョンの自動バックアップが無効になります。
自動バージョンバックアップの名称は file.~version.~ という形式になります。これは、C-x v
~ が旧バージョンを保存する名称(旧リビジョンの確認と比較
を参照)と同様ですが、バージョンの後にドット(‘.’)が追加されている点が異なります。関連する VC
コマンドでは、これら両方の種類のバージョンバックアップを使用できます。主な違いは、C-x v ~
によって作成された手動のバージョンバックアップは、コミット時に自動的に削除されない点です。
CVSはデフォルトではロックを使用しませんが、CVSREADやwatch機能を用いてロックのような動作を有効にする方法があります。詳細はCVSのドキュメントを参照してください。その場合、ロックベースのバージョン管理システムと同様に、EmacsでC-x v vを使用してロックの切り替えを行うことができます(ロックを用いた基本的なバージョン管理を参照)。