Greasemonkeyの開発環境

backlog2slimtimer(ベータ版) リリース! - @ikikko のはてなダイアリーの通り、ここのところグリモンを触っています。で、グリモンって皆どうやって開発しているのかな?エディタもそうですが、バージョン管理とかはどうやってるのかな?

それらしき単語でググってもなかなかヒットしなかったので、自分はこういう感じでやってますよというのを晒しておきます。私はEclipse + Subversive + Google codeの環境でやってますが、Subversionが使える環境だと基本変わりないでしょう。


ディレクトリ構成

Subversionレポジトリ構成は、trunk/tags/branchesの基本構成ですね。
f:id:ikikko:20091005235137p:image

一方、Greasemonkeyのディレクトリ構成は、以下のようになってます。[Firefox > Profiles > xxxxxxxx.default > gm_scripts]の下に各スクリプトのディレクトリが作成されています。
f:id:ikikko:20091006003714p:image

上記構成で、trunkを起点としてgm_scripts直下にチェックアウトします*1。その際、名前をスクリプト名(例ではbacklog2slimtimer)に変更してやります。
f:id:ikikko:20091006003715p:image

こうすることによって、Subversion/Greasemonkey双方の標準構成のもとで、バージョン管理下でスクリプト開発を進めることができます。

新規開発時・メタデータ修正時

基本的には上記の構成で進めていくのですが、スクリプトの新規作成時や(@includeといった)グリモンのメタデータを修正した場合は、これだけではうまくいきません。というのは、gm_scriptsにあるconfig.xmlメタデータの管理を行っているので、メタデータを修正した場合にはこちらも修正する必要があるからです。

実際の手順は、↓のように進めています。

  1. スクリプトをアンインストール
  2. スクリプトディレクトリ削除
    • これを行っておかないと、スクリプトを再インストールした際に「スクリプト名 + 連番」のディレクトリ名が作成されてしまう
    • (.svnなどの)余計なファイルが無い場合は、アンインストールと同時に削除されている場合もあり
  3. メタデータを修正した)スクリプトを再インストール
  4. svnリポジトリからスクリプトディレクトリにチェックアウト
    • (.svnなどを追加して)スクリプトディレクトリをバージョン管理対象とするため


今はこのようにやっていますが、何かもっといいやり方があるなら教えてくださいな。特に、メタデータのconfig.xmlへの反映といったあたりは、自分でも煩雑やなぁと不満に思っているところなので。

*1:.svnや.projectなど、グリモンに関係ないファイルも作成/チェックアウトされますが問題ないでしょう、多分。