最終更新日 2002/08/17(Sat)
[HOME] / [Emacs] / PCL-CVS

PCL-CVS で履歴管理

履歴管理に CVS を使用している人は、PCL-CVS を導入すると Meadow から 簡単に操作できるようになります。 また、Emacs に標準で組み込まれている VC(Version Control:MS 製の IDE ではない) も併用すると良いでしょう。

なお、このページでの説明は、 cygwin および cygwin 版 CVS がインストールされていることが前提となります。

インストール

Meadow でのインストール手順は以下のようになります。
なお、Emacs 21 には標準で組み込まれているので、 インストール作業は必要ありません。

ダウンロード

以下のパッケージをダウンロードする必要があります。

Elib のインストール

PCL-CVS が必要とするのでとりあえずインストールしてしまいましょう。

Makefile の編集

Makefile を以下のように編集します。 例は d:/usr/local/ 以下にMeadow をインストールしている場合です。

prefix = d:/usr/local
datadir = $(prefix)/share
locallisppath = $(prefix)/Meadow/1.14/site-lisp
# This will fail if locallisppath is anything but a single directory.
# That is all right, since that is the default behaviour of Emacs; those
# that know how to change it, should know how to change this file.  And
# if this is accepted into GNU Emacs, the files should end up inside
# the normal lisp directory.
ELIBDIR = $(locallisppath)/elib
infodir = $(prefix)/Meadow/1.14/info

EMACS = d:/usr/local/Meadow/1.14/bin/meadowNT.exe
                                    ↑(9X 系列の場合は、meadow95.exe とする)

あとは、make を実行するだけです。

bash-2.05b$ make
bash-2.05b$ make install

cygwin のバージョンなどによっては、 インストール中に install-info コマンドがエラーを起こす場合があるようです。 この時点で elisp のインストール自体は成功しているはずので、 info が必要なければこのままでも問題ないと思います。 気になる人は以下のように Makefile を修正しましょう。

install-info: elib.info
        $(INSTALL_DATA) elib.info* $(infodir)
        if $(SHELL) -c 'install-info --version' \
                >/dev/null 2>&1; then \
                install-info --info-dir=$(infodir) elib.info; \
                ↑先頭のハイフンを削り、オプション --infodir を --info-dir にする
        else true; fi

PCL-CVS のインストール

Makefile を以下のように編集します。

# set up the usual installation paths
prefix  = d:/usr/local
datadir = $(prefix)/share

# the directory where you install third-party emacs packges
lispdir = $(prefix)/Meadow/1.14/site-lisp

(略)

# the directory where you install the info doc
infodir = $(prefix)/Meadow/1.14/info

docdir = $(prefix)/doc

EMACS	= $(prefix)/Meadow/1.14/bin/meadowNT.exe

あとは、make を実行するだけです。

bash-2.05b$ make
bash-2.05b$ make install

.emacs の設定

上記手順でインストールしていれば .emacs に何も設定しなくても動作しますが、 以下の設定をしておくと良いでしょう。

;; log 入力の改行コード対応
(modify-coding-system-alist 'process "cvs" '(undecided . undecided-unix))

;;
;; 以下は Meadow 用の設定です、Emacs 21 では必要ありません。
;;

;; cvs.exe に引数を与えるときの設定
(define-process-argument-editing
  "/cvs\\.exe\\'"
  (lambda (x)
    (let ((command (car x))
          (argument (cdr x)))
      (setq argument (cygnus-process-argument-quoting argument))
      (concat
        (unix-to-dos-filename command) " "
        (unix-to-dos-argument (mapconcat (function concat) argument " ")
                              nil nil nil nil)))))

;;
;; cvs が ediff を利用する際に buf1 の coding-system を buf2 に合わせる
;; ShiftJIS コードのファイルのみを管理する場合は必要ありません。
;;
(defadvice cvs-ediff-diff (before cvs-ediff-diff-change-coding activate)
  "convert coding system before cvs-ediff-diff"
  (save-excursion
    (let ((buf2 (ad-get-arg 1)))
      (set-buffer buf2)
      (let ((buf1 (ad-get-arg 0))
            (coding-system buffer-file-coding-system))
        (set-buffer buf1)
        (set-buffer-file-coding-system coding-system)))))

使い方

セットアップが終了したら、早速使ってみましょう。 なお、このページでは CVS の使い方そのものは説明しません(長くなるので)。 以下のページが参考になると思います。

起動方法

まだ checkout していない場合

M-x cvs-checkoutで、checkout 可能です。モジュール、 ワーキングディレクトリの置き場をそれぞれ入力すれば、checkout が実行されます。 そして *cvs* バッファが作成されます。

すでに checkout している場合

M-x cvs-examine と入力してワーキングディレクトリを指定します。 すると *cvs* バッファが作成されます。

基本操作

キー操作は以下のとおりです。

表. 主なキー操作
キー 動作
h ヘルプ(簡易版:ミニバッファに表示される)
? ヘルプ(Meadow: h と同じ Emacs21:*Help* バッファに表示される)
p カーソルを上に移動
n カーソルを下に移動
f ファイルを開く
o ファイルを別ウィンドウに開く
q 終了する(実際にはバッファはまだ存在する)
= diff を表示
d e ediff による diff 表示
m マークする(l 以下のコマンドはマークしたファイル全てが対象となる)
u マークを外す
l ログの表示
s status の表示
+ ツリーを表示する
C commit する
c commit する(前回のコメントがバッファに入力された状態になる)
U ワーキングファイルでの変更を破棄し、 レポジトリに格納した内容に戻す
a add する
r remove する
x すでに commit したファイル (Up-To-Date なファイル)を表示対象から外す

終了方法

q キーで終了します。 ただし、この場合はバッファ自体はそのまま残ります。 バッファを切り替えれば継続できます。

終了時にバッファも削除したい場合には、 M-x cvs-mode-quit で終了します。 本当に終了するかどうか確認しますので、"y" で終了します。 (Emacs 21 の場合には z で強制終了が可能です)

[HOME] / [Emacs] / PCL-CVS