スポンサーサイト

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

[Trac]Trac0.12のCommitTicketUpdaterでもコミットファイル列挙

今更ですがTrac0.12からマルチリポジトリに対応してるので
バージョンアップしようかな…とTracLightning3.1.3を入れてみたところ
post-commit-hookスクリプトが無くなってました。

でもrefsコマンドは動きます。
どうやらSVN連携はプラグインになったらしいです。(これも今更?)
trac 0.12.xの↓が有効なら動作します。

commit_updater

正確にはSVNのhookスクリプト(hooks/post-commit.bat)でチェンジセットを追加して
IRepositoryChangeListenerを実装したUpdaterがイベントを受け、コミットメッセージからコマンドを見つけて、チケットを更新する流れのようです。

また、マルチリポジトリでは複数のリポジトリを登録するので
当然リビジョン番号がかぶりますが

[リビジョン/リポジトリ名]

という形式で書くと、CommitTicketReferenceMacroによって
きちんとリポジトリ別にリンクが張られます。
CommitTicketUpdaterはこのあたりも勝手にやってくてれるので便利。
マルチリポジトリ環境でも、この情報の通りにhookスクリプトを用意すればOKです。
ちなみに、今まで通りの[リビジョン]では、デフォルトリポジトリ(廃止予定らしい)へのリンクになります。

で、以前[Trac]trac-post-commit-hookでコミットファイル列挙てなことを書いたので、
今回も一応、簡単ですが変更ファイルの列挙くらいはしてみようと思います。

今回変更するのは一カ所、上記プラグインのスクリプトだけ変更します。(バージョンは読み替えてください)

%TRAC_HOME%/python/Lib/site-packages/Trac-0.12.2.ja1-py2.6.egg/tracopt/ticket/commit_updater.py

チケットに書き込むコメントを変更します。(水色のところだけ変えてます)

def make_ticket_comment(self, repos, changeset):
"""Create the ticket comment from the changeset data."""
revstring = str(changeset.rev)
if repos.reponame:
revstring += '/' + repos.reponame

# チェンジセットから変更ファイルを取得して列挙
files = ''
for npath, kind, change, opath, orev in changeset.get_changes():
files += change + ':' + npath + '[[BR]]'


return """\
In [%s]:
{{{
#!CommitTicketReference repository="%s" revision="%s"
%s
}}}
%s
""" % (revstring, repos.reponame, changeset.rev,
changeset.message.strip(), files)


おおざっぱですがこれだけです。
SVN連携の動きを変えたければ、このスクリプトを弄る感じですね。
スポンサーサイト

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

自己紹介

煩悩即菩提

Name:煩悩即菩提


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

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

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

Pixivアカウント

カレンダー   
Recomend


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