すでに私はUbuntuは11.04に戻していますが、11.10では未だRabbitVCSが使えないようです。
では11.04でRabbitVCSを再び使うかというと、どうにもその気にはなれません。Nautilusでフォルダを開く動作が遅くなりすぎるんですよね。
そもそも私の場合、サーバーの開発ディレクトリをローカルにsshfsでマウントしていますから、ディレクトリ一覧もレポジトリもssh経由なため、RabbitVCSのようなUIではアイコンを描画にとてつもない時間がかかってしまうわけです。
仕方なく、しばらくコマンドラインでsvcと付き合いましたが、やっぱりGUIが欲しい・・・
.
■ nautilus-script-collection-svn
改めてググってみるとRabbitVCSをはじめTortoiseSVNクローンのGUIツールに混じって、Nautilusのスクリプトという、とってもシンプルなものを見つけたのでインストールしてみました。
sudo apt-get install nautilus-script-collection-svn
スクリプトをNautilusの個人フォルダへ移します。
cp -r /usr/share/nautilus-scripts/Subversion ~/.gnome2/nautilus-scripts/
こんな感じにコマンドを選択できるようになりました。

フォルダやファイルのアイコンにインジケータはありませんが、必要なときにUpdateをすれば良いだけのことです。どうせRabbitVCSだってUpateをしてあげなければ信用できない情報でした。
スクリプトの中身はZenityを使ったコマンドの結果をダイアログに表示するだけの単純なものです。自分でスクリプトを追加するときのサンプルにもなりますね。
.
■ Commitスクリプトの修正
しかし、さっそくCommitを試して硬直しました。
テキスト編集ダイアログが表示されるのは良いのですが、ここでコミットをキャンセルするにはどうすれば良いのだろうかと小一時間 www
スクリプトを確認すると、返り値$?で0を判定していますが、表示させているダイアログが複数行テキスト編集の –text-info –editableなのでキャンセルする方法がありません。OKを押そうがEscで閉じようが0が返ります。
そこで、以下のように1行入力ダイアログに変更しました。LOGMESSAGEの取得もifブロックの中に移す必要があります。
~/.gnome2/nautilus-scripts/Subversion/Commit (部分)
zenity --entry --title "Subversion: Commit" --width=600 --window-icon="$ICONPATH" > $LOGMESSAGEFILE
if [ $? -eq 0 ] ; then
LOGMESSAGE=`cat $LOGMESSAGEFILE`
svn commit -m "$LOGMESSAGE" "$@" > $LOGFILE
.
■ Meld の追加
svnコマンドの結果を表示するだけのDiffは苦手なので、以下のスクリプトを作成して追加してみました。
~/.gnome2/nautilus-scripts/Subversion/Meld
#!/bin/bash
if [ $# -ne 0 ]; then
if [ -d $1 ]; then
# サブディレクトリ選択時
cd $1
fi
fi
meld .
Meldは.svnフォルダを認識するので、 “meld .” とするだけでそのディレクトリ以下を再帰的に比較してくれます。
タグ: Nautilus
