ログ日記

作業ログと日記とメモ

tracの初期設定と使い方

たまにtracwikiから飛んでくる人が居るので詳しく書いてみる。


Debianの場合です

# trac設定

apt-get install python-japanese-codecs 
apt-get install trac

# /var/local/trac 以下にプロジェクトを配置する場合の例
mkdir /var/local/trac
cd /var/local/trac 

trac-admin projectName initenv
# apache設定
<VirtualHost *>
DocumentRoot "/home/foo/public_html" # 関係ないので無くてもいいかも
ServerName trac.example.com

Alias /trac "/usr/share/trac/htdocs"

<Location "/">
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnvParentDir "/var/local/trac"
        PythonOption TracUriRoot "/"

        order deny,allow
        allow from all
</Location>
<LocationMatch "/[^/]+/login">
        order deny,allow
        deny from all

        AuthType Basic
        AuthName "trac user"
        AuthUserFile /var/local/trac/.htpasswd
        Require valid-user
</LocationMatch>


<Directory "/var/local/trac">
order deny,allow
allow from all
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
</Directory>

</VirtualHost>
# ユーザの作成
htpasswd .htaccess userName

必要な場合はアノニマスユーザの権限削除スクリプト作成

#!/bin/bash

if [ -z $1 ]
then
        echo
        echo "usage: ./anonymous_remove projectname"
        echo
        exit 1
fi

trac-admin /var/local/trac/$1 permission remove anonymous BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW 
MILESTONE_VIE REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_CREATE TICKET_MODIFY 
TICKET_VIEW TIMELINE_VIEW WIKI_CREATE WIKI_MODIFY MILESTONE_VIEW
# 日本語パッケージ作成

apt-get -u install trac/testing python-japanese-codecs python-docutils python2.3-clearsilver python2.3-setuptools enscript
apt-get -u install build-essential fakeroot devscripts
apt-get -u build-dep trac

mkdir package
cd package

wget http://www.i-act.co.jp/project/products/downloads/trac-*-ja-1.zip
apt-get source trac

cd trac-*
DEBFULLNAME='maintainer name' DEBEMAIL='maintainer@example.jp' uupdate ../trac-*-ja-1.zip *-ja-1

cd ../trac-*-ja-1
head debian/changelog

dpkg-buildpackage -us -uc -b -rfakeroot

cd ..
dpkg -i trac_*-ja-1-1_all.deb


プロジェクトの設定

  • trac-admin projectName initenv
  • trac-admin projectName
  • milestone list
  • milestone remove で初期設定を削除
  • milestone add でマイルストーンを作成
    • milestone add "リリース1" 等
  • 同様にversion remove、version add でバージョンを設定する
    • version add 1、version add 0.1 等
  • 同様にticket_type も不具合、機能追加、タスクなどを登録する
  • 同様にcomponent も登録する(分類が不要ならcoreとでも登録しておく)
  • projectName/conf/trac.iniの編集
[header_logo]
link = http://trac.example.com/

[trac]
default_charset = japanese.euc-jp

[ticket]
; UTF-8なら日本語が使えるのでデフォルト値を設定

使用方法の一例

  • バグが見つかった場合
    • 数行で直るバグでも取り敢えずチケットを登録する
    • ソースを修正してsvn commit、コメントにticket:1などと書いておく
    • チケットの解決でコメントにr3(上でコミットしたリビジョン)などと書いておく
  • 未完成のシステムを作成中の場合
    • チケットの登録で必要な機能を登録していく
      • できるだけ細かくする(ログイン機能、ログイン状態保存機能、など)
      • タイトルだけで分かるものは説明を書かずに取り敢えず登録
    • ソースコード記述してsvn commit、コメントでticket:1などと書いておく
    • チケットを解決にするときにr3などと書いておく
    • 管理者にpermission add TRAC_ADMIN の権限を与えておいて、マイルストーンの細かい情報を書く(先に書いても良いが後の方が楽)
  • ロードマップの棒グラフが進んでいくのを見てにやにやする

ついでにsubversionの使い方を。

/var/local/svn/projectName/trunk
                          /branches
                          /tags

となっていることを仮定する。

  • svn commit (何らかの機能が完成した)
  • svn cp file:///var/local/svn/projectName/trunk file:///var/local/svn/projectName/branches/1.0 (1.0.0バージョンをリリースする場合)
  • svn cp file:///var/local/svn/projectName/branches/1.0 file:///var/local/svn/projectName/tags/1.0.0

バグの修正

  • trunkでコミット
  • svn switch file:///var/local/svn/projectName/branches/1.0
  • svn merge file:///var/local/svn/projectName/trunk@バグ修正前のリビジョン file:///var/local/svn/projectName/trunk@バグ修正後のリビジョン
  • svn commit
    • 作業が重複していない場合は単純に svn merge file:///var/local/svn/projectName/branches/1.0 file:///var/local/svn/projectName/trunk
    • branches/1.0でバグ修正してtrunkに反映する場合はmergeを逆にする
  • svn cp file:///var/local/svn/projectName/branches/1.0 file:///var/local/svn/projectName/tags/1.0.1

バグ修正版の1.0.1が完成。
タイムラインの表示で、前回のバージョンから今回のバージョンにかけての変更点を眺める。それを更新履歴として記述。
逆に言うと、commitするときは更新履歴として書きやすいコメントや、一覧で眺めて作業の流れが見えるようなコメントを書くように心がける。