FC2ブログ

WindowsでTrac-Subversion連携でコミットログ/チケット連携のトラブル

そんな野望を抱いてこの辺りを参考にさせていただきつつ。

WindowsにTracをインストールしてみる - ITレシピ
WindowsマシンにTracの環境を構築してみる --- その1 (でぃべろっぱーず・さいど)

で、なんとかTracが動いて、リポジトリブラウザも動いてと言うところまではいけたのですが、肝心要の「コミットログとチケットの連携」でしばらく悩んだりして。tracのcontribフォルダにある「trac-post-commit-hook」をhooksフォルダにコピー後、[repository_dir]\hooks\post-commit.batにこんな感じで書いて。

[python_path]/python.exe [repository_dir]/hooks/post-commit.py %1 %2

その中で呼び出されているpost-commit.pyとかはこちらのリンク先に具体例が書いてあります。まー、リビジョン番号とかコミットログとかユーザ名を「trac-post-commit-hook」に渡す処理をしていますね。

Subversionコミット時にtracチケットの自動クローズ、をWindowsで - ベイダー日記

で、これで大丈夫と思ってTortoisSVNからコミットログに「refs #1111」とか書いて、コミットしてみたがまったくチケットに反映されねー。

しかも、コマンドプロンプトからだとちゃんとpost-commit.pyを実行した結果、チケットにコミットログが関連づけられていたのですよ。

なんでだーと、post-commit.bat、post-commit.pyにログ出力処理をかまして確認して行ったら、結局のところpost-commit.pyのos.popenでこけてたと言うことで。

ちなみに、Pythonこれっぽっちも分かりませんでした。ので、こちらを参考にして「os.popen」を「popen2.Popen3」に置き換えて、標準エラー出力をログに吐き出させました。

popen 諸々 - nelnal@programing
Pythonで外部プロセスを起動して出力と戻り値を処理する - 試験運用中なLinux備忘録

そしたらこんなエラーが。

TracError: Unsupported version control system "svn"

あれー、どっかでみたことのあるエラー。。

そうだ、Trac環境構築時にも出くわした。で、こちらを参考にしたのでした。

TracModPython - MIST Project - Trac

Trac でコマンドライン、 TracStandalone で使用しているときは動くのに、 mod_python を使用しているときのみ、 Unsupported version control system "svn" というエラーが出力される場合、 PythonPath ディレクティブに Python bindings へのパスを追加するのを忘れている可能性があります。 (Python の site-packages ディレクトリに Python binding へのパスをはるか、 .pth ファイルを作っておくのがベターです。)

てーことはあれだ、スクリプト実行時に環境変数としてPython bindingへのパスが通ってないってことかー。

と言うことで、スクリプト(post-commit.py)に以下の一行を追加。

os.environ['PYTHONPATH'] = [Python の site-packages ディレクトリ]

これで動くようになりました。良かったー。

と、TortoiseSVNのカスタマイズはこの辺を参考にして、コミットログに直書きしなくて済むようにしました。

ソフト/Bug Tracking/trac/TortoiseSVNやSubclipseとチケットを連動 - discypus

チョー便利すなー。あ、上記の設定ではフォルダに属性を再帰的に適用しないと駄目ですね。
スポンサーサイト




実験@2008/10/07 20:09   | 1 comments | 0 trackbacks |

コメント

承認待ちコメント

このコメントは管理者の承認待ちです

2015/01/01(木)13:59| | # [ 編集]

コメントの投稿


秘密にする

«  | HOME |  »

いろいろ作ったり

プロフィール

icot

Author:icot
総合電気メーカで働く会社員でしたがいい年にも関わらずコンサルに転職。お酒、ジョギング、音楽、本、料理をこよなく愛してます。ここでは、日々感じた事を書き連ねるとともに、いろいろ実験してみたりしてます。
icotfeels[at]gmail.com

これまでに感じたこと