読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

tags に入れたリリースバージョンをチケットの"バージョン"に追加する

Trac

使えるのかどうか、既にあるのかどうか知りませんが、今日の SF.jp のアノ機能もどきを作ってみました。
非常にざっくりなので、ツッコミお願いします(笑)

作ったもの

こうすると


こうなる


tags フォルダにコピーすると、そのフォルダ名でバージョンを追加する。
リリースバージョンは tags フォルダで管理してるのでこんな感じかな。

ソース

ぱいそんのソースと、それに情報を渡すバッチファイル。
ぱいそんのソースは project/svn/<プロジェクト名>/hook の下に入れました。

xmlrpc.py
import sys,re
import xmlrpclib

server = xmlrpclib.Server('http://<url>/trac/SampleProject/xmlrpc')

r=re.split('tags/',sys.argv[2])
if len(r) == 2:
    arg = {}
    server.ticket.version.create(r[1],arg)
post-commit.bat
SET TRAC_LIGHT_HOME=C:\TracLight

if not DEFINED TL_PROJECT_HOME set TL_PROJECT_HOME=%TRAC_LIGHT_HOME%\projects

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

REM 下4行が追加分
set file=changed.txt
svnlook changed %REPOS% -r %REV% >%file%
set/p CHANGE=<%file%

python.exe "C:\TracLight\projects\svn\SampleProject\hooks\xmlrpc.py" %CHANGE%


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 "%TL_PROJECT_HOME%" "%PROJECT%"

わからんところ

1. PythonXML-RPC の認証。

server = xmlrpclib.Server('http://ユーザ名:パスワード@<url>/trac/SampleProject/xmlrpc')

で、できなかった(認証エラー)。。。


2. コピー日時を元に、自動でリリース日時を入れたい


勉強もかねてパラメータを可変にするためにプラグインでも作ってみようかな。。。