とりあえずブログ

とりあえずのブログ開設

オーマイニュース編集部用の業務システムサンプルの構築に関するメモ

2008-03-20 00:04:13 | Weblog
『オーマイニュース編集部用の業務システムサンプルを構築してみたw』で、プログラムやPC環境にそんなに詳しくない人でもがんばれば、フリーでワークフロー環境が構築できるように『Trac月+trac0.11bの説明』を公開してみたが、その後。

はっきり言って、プログラム開発環境の話で、オーマイニュースには関係ありませんw 失礼b

編集部業務用にはとりあえずミニマムセットで作ったが、これを自分のプライベートな用途にも使おうと思い、Eclipse+Mylyn+Subclipse+Trac月+trac0.11bという構成でトライ。Mylynは配布セットにもよるがEclipseに最初から含まれていますです。

まずSubclipseを導入して、Trac月に含まれているSubversionとの連結を試みるがこける。どうもSubclipseで使うSVNクライアントの選択に注意が必要のようだ。

次に、MylynをTracと連結させるために、Trac上でXML-RPCプラグインが必要とわかったので、なんとか動作するようにしたが、最初のうちエラー内容がわからず苦労した。素直にログを見ればよかった。やっぱ急がば廻れだな。XML-RPCプラグイン導入については、『Trac月+trac0.11bの説明』に追記したのでそちらをどぞ。

今まで、Mylyn使ってなかったが、便利だ。

感動!!

どんなものかを一言では説明しずらいが、例えばWindowsでもデスクトップ環境をある程度復元してくれるでしょ?例えば開いていたフォルダとか。そういうのを、"タスク"に結び付けて保存・復元してくれるような感じのよ。(Eclipse内に限っての話だけどね)

これだけだと、仮想デスクトップが複数存在するのと何が違うのというように思う人もいるだろうけど、この"タスク"自体が、タスクとして管理されたものになるわけよ。
具体的に何が便利かというと、複数のタスクを抱えていた場合に、それらを切り替えて"現在、とりかかっているタスク"として選択することにより、それを行うのに必要なリソースだけが見えるという感じ。
いろんな事を同時にこなしていても、何をどこまでやったんだっけ?という状態に陥りにくくなる。これなら割り込み仕事でも少しは気楽さ。

で、MylynとTracを結びつけると、Trac上のチケットをMylyn上のタスクとして扱えるようになるので、尚更便利(便利というより管理し易くなる)。

もうひとつ便利(怖い)のが、Eclipse上で作業していた時間をタスク毎に算出してくれる機能。アイドル時間とかも推定してくれるようだ。この機能は怖いw

Eclipse上ですべての作業ができたら幸せかもしれない。たまにはいろんなプラグインでもあさってみるか・・・
欲を言えば、スクリプト系の言語でもっと手軽かつ自由にカスタマイズできたらいいのにな。Emacsみたいに。


で、しばらく使っているとSubversionの取り扱い時にエラーが。
svn: Checksum mismatch for 'src/nagamasa/ohmyokome/Main.java'; recorded: 'ebdfc3d7691e3e46b05e141ca9b3736e', actual: '48da972fcebd0e57cb318fc85484778c'
update -r HEAD C:/Documents and Settings/nagamasa/workspace/OhMyOkome
At revision 687.

みたいなメッセージ。

原因がよくわからん。Subversionのリポジトリ自体、CVSからSubversion Importerを使ってコンバートして生成したものなので、この過程がまずかったのかもしれないし、Trac月に含まれているSubversionがおかしいのかもしれないし、Subclipseがおかしいのかもしれない。

いろいろ試して(この間、Eclipseがまるっきり立ち上がらなくなるという事もw)、たぶんSubclipseがおかしいのだろうという結論に達して、Subclipseを止めてSubversiveに乗り換える。その後正常そうなので、これで良しということにしている。

これで万事OKかというとまだあるw プログラムソースを変更後Subversionに対してコミットすると、Tracのチケットに対してもコメントを追加するはずなのに、そのようにはならない。

これもいろいろ調べた結果、"Trac月のインストールディレクトリ/projects/svn/プロジェクト名/hooks/post-commit.bat"あるいは"Trac月のインストールディレクトリ/bin/post-commit.sh"のいずれかが悪いということまで確かめる。

post-commit.batは下記の内容。(俺のところはCygwin入れている都合で最終行のみ少し修整しています)
SET TRAC_LIGHT_HOME=C:\ProgramFiles2\TracLight

::-----------------------------
::Call the TRAC post-commit hook
::
SET REPOS="%1"
SET REV=%2

FOR /F "usebackq delims==" %%i IN (`%TRAC_LIGHT_HOME%\python\python.exe -c "import sys,re;r=re.split('/',sys.argv[1]);print r[len(r)-1]" %REPOS%`) DO SET PROJECT=%%i

%TRAC_LIGHT_HOME%\bin\bash.exe %TRAC_LIGHT_HOME%/bin/post-commit.sh "%1" %2 "%TRAC_LIGHT_HOME%" "%PROJECT%"

ここにデバック用に "ECHO %2 >> \WORK\debug.log"とか入れてみるんだが、こける(そこで終了してしまう)。%2 の中味がわかんない。何故こけるかもわからん。
こんな風に%nを(全ての場合ではないが)参照した瞬間にこける原因を誰か知っていたら、後学の為に教えて欲しい!

んで、仕方がないので試行錯誤の結果、post-commit.shの方を以下のように修整した。
#!/bin/sh

REPOS="$1"
ARG2=$2
TRAC_LIGHT_HOME="/ProgramFiles2/TracLight"

REV=`(echo $ARG2 | gawk '{ print $1;}')`
PROJECT=`(echo $REPOS | gawk -F '/' '{ print $(NF);}')`


LOG=`svnlook log -r $REV "$REPOS"`
AUTHOR=`svnlook author -r $REV "$REPOS"`
TRAC_ENV="$TRAC_LIGHT_HOME/projects/trac/$PROJECT"

python.exe $TRAC_LIGHT_HOME/python-lib/trac/contrib/trac-post-commit-hook \
-p "$TRAC_ENV" \
-r "$REV" \
-u "$AUTHOR" \
-m "$LOG"

gawkはたぶん、Cygwinに入っている奴が動作しているはず。(俺っててきと~)

といろんな試行錯誤を経て、動作するようになりましたとさ。
俺の環境に依存して発生した事象かもしれないので、一般的な参考にはならないかもしれないが、メモとして。

誰かの何かの役に立てば幸いです♡

最新の画像もっと見る