- 追加された行はこの色です。
- 削除された行はこの色です。
- Trac へ行く。
#freeze
''目次''
#contents
~
----
*構築 [#tce568f6]
左のメニューから下記の通り順繰りやっていけばOK。~
:[[CentOS 5.3]]|
:[[ntp]]|無くても問題ないがやっとけばベター。~
:[[OpenSSL 0.9.8k]]|外部からのアクセスを考えた際には必要かと。~
OpenSSHを使うなら必要。~
:[[zlib]]|yumでzlib-devel~
:[[OpenSSH 5.2p1]]|外部からのメンテを考えて。~
:[[Apache 2.2.12]]|
:[[Python 2.6.2]]|
%%Trac0.11ではmod_pythonを使うならPythonは2.5との事%%~
↑0.11.3で2.6にも対応(参考:[[trac 0.11.3 ReleaseNotes>http://trac.edgewall.org/browser/tags/trac-0.11.3/RELEASE]])
:[[mod_python 3.3.1]]|
:[[swig 1.3.29]]|
:[[subversion 1.6.3]]|
:データベースは選択|
--SQLite ← こっちが簡単かも~
---[[SQLite 3.5.9]]~
---[[pysqlite 2.4.1]]~
--PostgreSQL~
---[[PostgreSQL 8.3.7]]~
---[[psycopg2 2.0.11]]~
:[[clearsilver 0.10.5]]|
:[[Trac 0.10.4-ja-1]]|pluginは必要に応じて。~
[[XmlRpcPlugin]]はEclipseとの連携で必要になるので入れておく。~
----
*改造 [#z98f5e86]
-一度やっておけばTracプロジェクト全てに適用されるもの。~
**リポジトリブラウザでのコミット日時の表示 [#h48e9940]
-[[discypus.jp - [カスタマイズ] リポジトリブラウザの「コミット時期」にコミット日時の表示を追加>http://discypus.jp/wiki/?%A5%BD%A5%D5%A5%C8%2FBug%20Tracking%2Ftrac%2F%A5%E1%A5%E2#d20071211]]
# vi /usr/local/python-2.5.2/share/trac/templates/browser.cs
---<89行目>---
(コミッタ: <?cs var:file.author ?>, コミット時期: <?cs var:file.age ?> 前)
↓
(コミッタ: <?cs var:file.author ?>, コミット時期: <?cs var:file.date ?>, <?cs var:file.age ?> 前)
**チケットへの日時表示 0.10版 [#x00dc31e]
-[[discypus.jp - [カスタマイズ] ticket.csの修正>http://discypus.jp/wiki/?%A5%BD%A5%D5%A5%C8%2FBug%20Tracking%2Ftrac%2F%A5%E1%A5%E2#content_1_1]]より。
# vi /usr/local/python-2.5.2/share/trac/templates/ticket.cs
---<43行目>---
<p title="<?cs var:ticket.opened ?>">登録: <?cs var:ticket.opened_delta ?> 前</p><?cs
↓
<p>登録: <?cs var:ticket.opened ?> (<?cs var:ticket.opened_delta ?>前)</p><?cs
---<45行目>---
<p title="<?cs var:ticket.lastmod ?>">最終更新: <?cs var:ticket.lastmod_delta ?> 前</p>
↓
<p>最終更新: <?cs var:ticket.lastmod ?> (<?cs var:ticket.lastmod_delta ?>前)</p>
----
**チケットへの日時表示 0.11版 [#aabaa98a]
# vi /usr/local/python-2.5.2/lib/python2.5/site-packages/Trac-0.11.ja1-py2.5.egg/trac/ticket/templates/ticket.html
---<139行目>---
<p py:if="ticket.exists">登録: (${dateinfo(ticket.time_created)} 前)</p>
↓
<p py:if="ticket.exists">登録: ${format_datetime(ticket.time_created)} (${dateinfo(ticket.time_created)} 前)</p>
---<140行目>---
<p py:if="ticket.time_changed != ticket.time_created">最終更新: (${dateinfo(ticket.time_changed)} 前)</p>
↓
<p py:if="ticket.time_changed != ticket.time_created">最終更新: ${format_datetime(ticket.time_changed)} (${dateinfo(ticket.time_changed)} 前)</p>
----
以下はチケットの履歴で表示される日時
---<234行目>---
更新者: ${authorinfo(change.author)} (${dateinfo(change.date)} 前)
↓
更新者: ${authorinfo(change.author)} (${format_datetime(change.date)} [${dateinfo(change.date)} 前])
----
以下は添付ファイルの履歴で表示される日時
vi /usr/local/python-2.5.2/lib/python2.5/site-packages/Trac-0.11.ja1-py2.5.egg/trac/templates/macros.html
---<179,180行目>---
(${sizeinfo(attachment.size)}) - 登録者 <em>${authorinfo(attachment.author)}</em>
(${dateinfo(attachment.date)} 前).
↓
(${sizeinfo(attachment.size)}) - 登録者 <em>${authorinfo(attachment.author)}</em>
(${format_datetime(attachment.date)} [${dateinfo(attachment.date)} 前]).
----
*プロジェクトの新規作成 [#ae4cf4ce]
-プロジェクト名~
Sample Project~
-Subversionレポジトリ作成先~
/home/svn~
-Tracプロジェクト作成先~
/home/trac~
+''Tracプロジェクト用DB(PostgreSQL)の作成''
# su - postgres
$ createdb -O tracuser trac_sample-project --encoding=utf8
~
+''SVNリポジトリ作成''
# svnadmin create /home/svn/sample-project
# chown -R apache:apache /home/svn/sample-project ← apacheユーザーに所有権変更
~
+''Tracプロジェクト作成''
# trac-admin /home/trac/sample-project initenv
Project Name [My Project]> [Sample Project]
Database connection string [sqlite:db/trac.db]> [postgres://tracuser@localhost/trac_sample-project]
Repository type [svn]> [空Enter]
Path to repository [/path/to/repos]> [/home/svn/sample-project]
Templates directory [/usr/local/python/share/trac/templates]> [空Enter]
これでもOK↓
# trac-admin /home/trac/sample-project initenv "Sample Project" postgres://tracuser@localhost/trac_sample-project svn /home/svn/sample-project /usr/local/python/share/trac/templates
~
# chown -R apache:apache /home/trac/sample-project ← apacheユーザーに所有権変更
~
+''管理者権限を追加''
# trac-admin /home/trac/sample-project permission add abetake TRAC_ADMIN
~
+''[[Subversionとの連携の為の設定>http://www.abetake.com/index.php?Trac#q7623dbd]]を行う''
----
*プロジェクトの削除 [#d237853f]
-プロジェクト名~
Sample Project~
-Subversionレポジトリ作成先~
/home/svn~
-Tracプロジェクト作成先~
/home/trac~
+''Tracプロジェクト削除''
# rm -rf /home/trac/sample-project
~
+''SVNリポジトリ削除''
# rm -rf /home/svn/sample-project
~
+''Tracプロジェクト用DB(PostgreSQL)の削除''
# su - postgres
$ dropdb trac_sample-project
~
----
*Subversionとの連携の為の設定 [#q7623dbd]
SubversionのコミットログによってTracのチケットにコメントを残せるようになる。
+''Tracのソースからtrac-post-commit-hookをコピー''
# mkdir /path/to/trac/project/contrib
# cp /usr/local/src/trac-0.10.4-ja-1/contrib/trac-post-commit-hook /path/to/trac/project/contrib
~
+''コピーしたファイルに権限設定''
# chown -R apache:apache /path/to/trac/project/contrib
# chmod 755 /path/to/trac/project/contrib/trac-post-commit-hook ← 実行権限
~
+''post-commitの作成''
# vi /path/to/svn/repos/hooks/post-commit
---<以下内容>---
#!/bin/sh
TRAC_ENV="/path/to/trac/project" ← 連携させるTracプロジェクト
SVNLOOK="/usr/local/subversion/bin/svnlook"
PYTHON="/usr/local/python/bin/python"
export LANG=ja_JP.UTF-8
REPOS="$1"
REV="$2"
LOG=`$SVNLOOK log -r $REV $REPOS`
AUTHOR=`$SVNLOOK author -r $REV $REPOS`
${PYTHON} ${TRAC_ENV}/contrib/trac-post-commit-hook \
-p "$TRAC_ENV" \
-r "$REV" \
-u "$AUTHOR" \
-m "$LOG"
~
+''作成したファイルに権限設定''
# chown -R apache:apache /path/to/svn/repos/hooks/post-commit
# chmod 755 /path/to/svn/repos/hooks/post-commit ← 実行権限
~
+''コミット時''~
コメントに~
ref #??
のように書いておく