svn-mode for xyzzy は、xyzzy上でSubversionリポジトリに格納されているファイルをチェックアウトしたりチェックインしたり出来るマイナーモードです。
あまり難しいことは出来ませんが、簡単な事なら十分使えるのではないかと思います。ここでは、svn-mode for xyzzyのインストールの仕方や簡単な操作方法を説明します。
なお、Subversionは既にインストールしてsvnコマンドが普通に使える状態になっているものとします。
svn-modeをインストールする前に用意するものがあります。svn-modeはxml-parser-modoki.lに依存しており、svn-modeをインストールする前にxml-parser-modoki.lをインストールする必要があります。
xml-parser-modoki.lはNetInstallerからインストールしましょう。
NetInstallerの説明や入手方法については割愛させていただきます。分からない方はhttp://xyzzy.s53.xrea.com/wiki/?QuickTour%2Fext%2FNetInstallerを参考にしてインストールしてください。
xml-parser-modoki.l(xmlpm)のインストールが終わったら、そのままNetInstallerでsvn-modeもインストールしてください。
svn-modeをインストールするためのNetInstaller用パッケージリストは http://www5d.biglobe.ne.jp/~lostland/xyzzy/packages.l です。
NetInstallerからインストールしたら即使える……ようになっていれば便利なんですが、あいにくとsvn-modeはそんなに便利ではありません。インストール後に環境設定が必要です。といってもそんなに難しい設定が必要なわけではありません。xyzzyの初期設定ファイル~/.xyzzyかsiteinit.lに以下を記述するだけです。
(require "svn/svn")
上の1行を記述したらそのまま保存し、xyzzyを一度終了させて、もう一度立ち上げなおすだけで環境設定は終了です(siteinit.lに記述した方は、ダンプファイルの再作成が必要です。siteinit.lに記述し、保存した後、xyzzyを終了するまでは一緒ですが、xyzzyを再度立ち上げる際にShift+Ctrlキーを押しながら立ち上げてください。そうすることによってダンプファイルを再作成するはずです)。
インストールが終了したら、さっそく使ってみましょう。
Subversionのリポジトリからファイルを取り出します。CVSのcheckoutと同じですね。
svn-checkoutが終了するとこのようにチェックアウトしたファイルの一覧が表示されます。
ディレクトリにもきちんとチェックアウトされています。
ワーキングコピーの変更したファイルをリポジトリにコミットします。CVSのcheckinと同じです。
ワーキングコピーのファイルをリポジトリのファイルと比較して最新の状態にします。
ワーキングコピー全体をアップデートするには、アップデートしたいディレクトリの中のファイルを一つ開いて、C-c Uします。
svn add C-c a svn delete C-c " svn copy C-c = svn move C-c -
変更を加えたいバッファ上で入力してください。サブコマンドの詳細についてはSubversionのマニュアルなどを参考にしてください。
svn checkoutでチェックアウトしたファイルをロックするには、ロックしたいファイルを開いて、開いたファイルのバッファ上でC-c Kします。ミニバッファにロック時のコメントを入力して、Enterを押します。問題がなければロックが成功します。
ロックしたファイルは--no-unlock
オプションが指定されていない限りコミットするごとに自動的に解除されますが、コミットせずにロックを解除するためには、ロックを解除したいファイルバッファ上でC-c Uします。
他の人がかけたロックを横取りするには、svn lockコマンドの実行時に--force
オプションを指定します。
ファイルのステータスを確認するにはC-c s及びC-c S
表示される情報はsvn statusで表示される情報と同じです。ただし、~/.xyzzyなどで
(setq *svn-use-parse-status* t)
とした場合にはsvn statusの出力を解析してもう少しだけ情報を増やして表示させることが出来ます。
この画面の見方についてですが、表示の仕方は違うものの、基本的にsvn statusコマンドで表示される情報と一緒です。左から順にファイル、もしくはディレクトリの状態を表し(CONDITIONカラム)、次にファイル、もしくはディレクトリの属性の状態(PROPERTYカラム)、作業コピーがロックされているかどうか(LOCK-Cカラム)、追加予告されているかどうか(SCHEカラム)、ファイル、もしくはディレクトリがsvn switchによって切り替えられているかどうか(SW-Cカラム)、作業リビジョン/最後にコミットされたリビジョン(Rev/Lastカラム)、最後にコミットしたユーザー(AUTHORカラム)、ファイル、もしくはディレクトリ名(FILE/DIRカラム)となります。
また、ファイルがロックされている場合、ファイル名の前にロックされていることを表す[K]
というマークが表示されます。
ワーキングコピーのファイルをリポジトリのファイルと比較するdiffを実行するコマンドはC-c dです。
xyzzyのdiff-modeを使う場合はC-c Dです。
特定のリビジョンとの差異を調べるにはC-u C-c dでリビジョン番号を入力します。あるいはC-u C-c Dでリビジョン番号を入力します。
ファイルの変更を取り消す場合には、C-c rで改めて変更を取り消すかどうか聞いてくるので、取り消す場合はyを入力します。
xyzzyの設定ファイル(~/.xyzzy, siteinit.l)等で指定します。指定方法は、
(svn-set-option OPTION-NAME [OPTION-VALUE])
となります。
OPTION-NAMEにはsvnスイッチをそのまま記述し、OPTION-VALUEにはOPTION-NAMEが"--username"や"--password"などのときにユーザIDやパスワードを入力する際に使います。
例 ユーザID、パスワード、--verboseオプションを設定する場合
~/.xyzzyやsiteinit.lに以下を記述します。
(svn-set-option "--username" "LKPTeam") (svn-set-option "--password" "hogehoge") (svn-set-option "--verbose")
使用できるスイッチの一覧がsvn-misc.lにあります(*svn-options*)ので、参考にしてください。
また、svnのスイッチとは別にsvn-modeのオプションもあります。文字や背景の色設定が主ですが、svn-parse.lやreadme.txtに指定できるオプションの一覧や設定方法がありますので、設定する場合は~/.xyzzyやsiteinit.lに記述してください。
Subversionリポジトリの中をemacsのdiredのように表示するモードです。ただし、emacsにあるようなdiredやdired-xのように機能豊富なわけではありません。
svn-diredで使えるコマンドは以下の通りです。
key binding --- ------- RET svn-dired-enter サブディレクトリ上で実行した場合、 そのサブディレクトリを表示します SPC svn-dired-enter 上記と同じです " svn-dired-delete svn deleteと同じです = svn-dired-copy svn copyと同じです E svn-dired-export-force svn export --forceと同じです ] svn-dired-cat svn catと同じです b svn-dired-blame svn blameと同じです c svn-dired-checkout svn checkoutと同じです d svn-dired-diff svn diffと同じです e svn-dired-export svn exportと同じです k svn-dired-mkdir svn mkdirと同じです l svn-dired-log svn logと同じです m svn-dired-move svn moveと同じです p svn-dired-proplist svn proplistと同じです q svn-dired-exit svn-diredを終了します r svn-dired-reload-list Subversionリポジトリに対してsvn listします u svn-dired-up-dir 可能ならば一つ上のディレクトリに移動します
svn-diredで使えるコマンドは全てリポジトリに直接作用するコマンドですので、削除や移動などのコマンドを使う際には十分気をつけてください
svn-mode0.0.1.9における既知の問題として、--show-updatesオプションを指定し、*svn-use-parse-status*
変数がt
であるときにsvn statusコマンドの実行結果に必要のない文字が表示されます。動作に支障はありませんが、回避する方法を以下に示します。
*svn-use-parse-status*
変数をnil
にする--show-update
オプションを指定しない
svn diffコマンド実行時に比較するファイルのリビジョンを表示する箇所の文字が文字化けする
これらの問題は次のリリース時に修正される予定です。
バグレポート等は ykaltenative@mue.biglobe.ne.jp まで。
For svn-mode0.0.1.9 $Id: svn-mode.html 13 2005-07-06 13:46:34Z lkpteam $