リポジトリを共有しない場合で隣のプロジェクトへコミット時のメッセージをつける
以前の記事では,Tracのプロジェクトを共有する場合に,隣のプロジェクトにコミットメッセージをつける方法を書きましたが,チェンジセットへのリンクを少し変更すれば,リポジトリを共有しない場合でも使えることに気づきましたので,その方法について書いてみます.
この内容はShibuya.trac勉強会第4回の発表のなかで少し触れる予定です.
前回のものは次のようになっていましたが
(In [1]) refs tr2:#1
今回は次のように変更します
(In [tr2:changeset:1 1]) refs tr2:#1
1. プロジェクトを作成します
Tracのコマンドプロンプトを開き次のコマンドでプロジェクトを二つ作ります.
C:\TracLight\bin>create-project tr1
C:\TracLight\bin>create-project tr2
2. InterTracの設定を追加します
次の二つのファイルの最後のところに
C:\TracLight\projects\trac\tr1\conf\trac.ini
C:\TracLight\projects\trac\tr2\conf\trac.ini
次のものを追加します.
[intertrac]
tr1.title = Trac Test Project 1
tr1.url = http://192.168.1.8/trac/tr1
tr2.title = Trac Test Project 2
tr2.url = http://192.168.1.8/trac/tr2
3. trac-post-commit-hookを修正します.
設定しないほかのプロジェクトには影響しないようにC:\TracLight\python-lib\trac\contrib\のtrac-post-commit-hookをコピーし,trac-post-commit-hook2を作成します.前回からの変更の概略は次のようにコミットメッセージをInterTrac形式のメッセージに変更します.
tracproj = project[str.rfind(project,'/')+1:]
中略self.msg = "(In [%s:changeset:%s %s]) %s" % (tracproj, rev, rev, chgset.message)
前回の修正も含んだ「trac-post-commit-hook2」をダウンロード
4. プロジェクトごとに使うかどうかを設定できるようにします
C:\TracLight\projects\svn\tr1\hooks\post-commit.bat
を,post-commit2.shを呼ぶために次のようにします.
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
echo %1 >> c:\trac-svn.log
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-commit2.sh "%1" %2 "%TL_PROJECT_HOME%" "%PROJECT%"
上の変更から呼ばれるようになったファイルのC:\TracLight\bin\post-commit2.sh
をpost-commit.shを元にして,trac-post-commit-hook から trac-post-commit-hook2に変更します
REPOS="$1"
REV=$2
TL_PROJECT_HOME="$3"
PROJECT="$4"
LOG=`svnlook log -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-hook2 \
-p "$TRAC_ENV" \
-r "$REV" \
-u "$AUTHOR" \
-m "$LOG"
5. 確認
リポジトリに何か登録しコミットします
svn co http://192.168.1.8/svn/tr1
cd tr1
mkdir trunk
svn add trunk
echo aaaaa > aaaa.txt
svn add aaaa.txt
svn ci -m "refs tr2:#1"
tr2:#1をブラウザで開きます.
チェンジセットのリンク部分をクリックして,チェンジセットを確認します.
リポジトリを共有しない場合でもチェンジセットへのリンクを張ることができました.
インストール先とか環境に依存するものは適切に設定してください.
| 固定リンク
「Trac」カテゴリの記事
- Dockerでkanon(Trac)を動かしてみた2 - イメージの作成(2017.08.27)
- Dockerでkanon(Trac)を動かしてみた(2017.08.27)
- TracLightningにコバンザメしてKanonと同様にPluginをインストールする(2014.04.13)
- kanonをTrac1.0.1+MySQL対応に変更してみた(2013.11.24)
- kanonをTrac1.0.1対応に変更してみた(2013.11.11)
「SVN」カテゴリの記事
- メールで受け取ったファイルをSVNに登録する(2012.01.22)
- 今までTrac関係で作ったものの関係をまとめる。(2009.08.23)
- Shinjyuku.trac勉強会第4回発表資料(2009.08.23)
- リポジトリを共有しない場合で隣のプロジェクトへコミット時のメッセージをつける(2009.06.15)
- SVNリポジトリを複数のTracから共有し,post-commitでのコメントをそれぞれに振り分ける(2009.05.30)
この記事へのコメントは終了しました。
コメント