仕事でPerforceを使うことになったので、EmacsからPerforceを操作出来るようにしてみる。
Subversionとは違い、Perforceはロック指向のVCSで、ファイルを編集する場合は「チェックアウト」して編集中であることを明示しなければならない。ワークスペース(svnで言うところの作業コピー)のファイルは基本的に読み取り専用属性がついており、チェックアウトして初めて書き込みが可能になるという仕組み。故に、エディタとp4が連携してないと非常に使いづらい。
Emacsで使えるPerfoce拡張は以下の2種類があるようだ。
vc-p4.elはPerforce公式?の拡張で、EmacsのVersion Controlシステムに則ったものだそうだ。
対するp4.elはPerforceを熟知したユーザー向けの拡張で、Perforceの機能をフルに使えるのが特徴となっている。
今回はp4.elの方使ってみたいと思う。
MELPAから一発インストール可能。M-x list-packagesしてp4で検索すると出てくる。
尚、MELPAの設定についてはこっち→Emacs 24.3でMELPAを使う
ユーザー環境変数 P4FCONFIG を p4config に設定。
p4configファイルにデポへの接続設定を記述し、ローカルのワークスペースのルートに置いとくと、現在のワークスペースに合わせてp4クライアントが勝手に使い分けてくれる模様。
P4PORT=プロトコル:サーバ:ポート P4USER=ユーザー名 P4CLIENT=ワークスペース名 P4CHARSET=文字コード
Unicodeを使っている場合は、デポに繋ごうとすると「unicode server permits only unicode clients」というエラーが出るのでP4CHARSETの指定が必須。