スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Trac]trac-post-commit-hookでコミットファイル列挙

この情報はTrac0.11(TracLightning2.x)の話になります。
Trac0.12(TracLightning3.x系)のSVN連携はTrac0.12のCommitTicketUpdaterでもコミットファイル列挙に新しく書きました。



SVNのコミット時のhookスクリプトで、TracとSVNを連携させることが出来ますよね。
TracLightningをインストールした環境であれば。例えば

refs #[チケット番号]

↑という感じで、コミット時のコメントに書いておくと、チケットにはコミット時のコメントが書かれ、さらにリビジョン番号が追記される形になっています。
主な処理はtrac-post-commit-hookスクリプトで行っています、つまりこのスクリプトを変更すればいろいろ出来てしまうわけですね。

ということで今回、コミット時に書き込まれるチケットコメントにコミットファイルを列挙するように変更を加えました。その変更のメモです。

Tracのチケットビューワーからならばチェンジセット(リビジョン)に飛べるので問題ないのですが、Tracから自動配信されるメールからは、何のファイルがコミットされたのかわからないので、Tracのチケットコメントにそれらを列挙してしまおうということです。

二段階で変更を加えます。

①[TracLight]/bin/post-commit.shの変更
②[TracLight]/python-lib/trac/contrib/trac-post-commit-hookの変更

①[TracLight]/bin/post-commit.shの変更


#!/bin/sh

REPOS="$1"
REV=$2
TL_PROJECT_HOME="$3"
PROJECT="$4"


# LOG=`svnlook log -r $REV "$REPOS"`
LOG=`svnlook changed -r $REV "$REPOS"`
AUTHOR=`svnlook author -r $REV "$REPOS"`
TRAC_ENV="$TL_PROJECT_HOME/trac/$PROJECT"

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



svnlookでlog(コミットコメント)を取得している処理を、changed(コミットファイル)の取得に変更しています。問題ありそうな変更なのですが、trac-post-commit-hookでは、このLOGを渡している-m引数は使われて無かったのできっと平気。たぶん・・・
そんなわけで、このLOGは、trac-post-commit-hookに-mオプションの引数として渡ります。

②[TracLight]/python-lib/trac/contrib/trac-post-commit-hookの変更


def __init__(self, project=options.project, author=options.user,
rev=options.rev, url=options.url):
・・・
#self.msg = "(In [%s]) %s" % (rev, chgset.message)
self.msg = "(In [%s]) %s" % (rev, options.msg + chgset.message)
・・・



ここでは、-mで渡ってきた引数(options.msg)をチケットのコメントに追加しています。スクリプトを見ると、-m引数を使わずchgsetからコミットコメントを取得しているようです。むむ・・だから簡単に変更が加えられたのですが。。

以上で、チケットのコメントに変更ファイルが列挙されるようになります。
フォーマットは好きに変更すればOK。

------
2010/05/22 追記

日本語ファイルのコミットで文字コードがらみのエラーが出ます。
その際はエンコードを指定してunicodeに変換してください。(例はwin環境)

self.msg = "(In [%s]) %s" % (rev, unicode(options.msg, 'cp932') + chgset.message)

スポンサーサイト

theme : ソフトウェア
genre : コンピュータ

comment

管理者にだけ表示を許可する

自己紹介

煩悩即菩提

Name:煩悩即菩提


三流SEです。
開発は基本Javaです。
Androidアプリ作り隊。。

お絵かきを少々しとります。
こちらもぱっととしないのが悩みです。

bonnosokubodaiをフォローしてください

Pixivアカウント

カレンダー   
Recomend


ビデオニュース・ドットコム
検索フォーム
最新記事
最新コメント
月別アーカイブ
カテゴリ
最新トラックバック
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。