知っておくと便利な運用設定

TracとSubversionの連携

Subversionのクライアント(TortoiseSVN等)にTracのチケットIDのリンクを表示する事が可能になります

Subversionのコミットから連動してTracのチケットのコメントの追加や自動クローズ

  1. trac-post-commit-hookをSubversionのリポジトリの実ディレクトリにある、hoooksにコピーします。
    • 直接、Tracのディレクトリを指しても可能ですが、ここでは念のため別にコピーしておきます。
  2. 同じディレクトリにpost-commit.pyを作成します。
  3. post-commit.pyを以下のように編集、保存します
    import sys, os
    
    repos = sys.argv[1]
    rev = sys.argv[2]
    
    #os.environ['PYTHONPATH'] = "D:/TracLight/python/Lib/site-packages"
    
    log = os.popen("svnlook log -r " + rev + " " + repos).read().strip()
    author = os.popen("svnlook author -r " + rev + " " + repos).read().strip()
    
    os.popen("D:/TracLight/python/python.exe 
      D:/TracLight/projects/svn/test1/hooks/trac-post-commit-hook -p 
      \"D:/TracLight/projects/trac/test1\"  -r \""
      + rev + "\" -u \"" + author + "\"  -m \"" + log + "\"")
    • パスは環境に合わせて適宜変更する事
    • 簡単に解説すると、pythonからsvnlookを呼びだし、ログとユーザ名を取得して、trac-post-commit-hookへの引数にしています。
    • コメントになっている
      #os.environ['PYTHONPATH'] = "D:/TracLight/python/Lib/site-packages"
      の行は、環境によっては必要になるので、エラーが発生したらコメントを外して下さい。
  1. 同じディレクトリにpost-commit.batを作成します。
  2. post-commit.batを以下のように編集、保存します
    D:/TracLight/python/python.exe D:/TracLight/projects/svn/test1/hooks/post-commit.py %1 %2
    • パスは環境に合わせて適宜変更する事
    • 先ほど作成したpost-commit.pyをbatから呼び出すようにしています。

参考リンク