研究室の学生やプロジェクトごとに設定が面倒なので雛形のプロジェクトを作成してそれをコピーする。もともとの設定や雛形プロジェクトの作成方法はDebian GNU/Linux Wheezyで Trac 0.12.2を参照のこと。
前提
- 雛形プロジェクト
- プロジェクトディレクトリ:/var/trac/sites/template
- Subversionリポジトリ:/var/subversion/template_svn
Subversionのリポジトリの中身は以下のように作っておく。
% mkdir project % mkdir -p project/trunk % mkdir -p project/branches % mkdir -p project/tags % sudo svnadmin create /var/subversion/template_svn % sudo svn import project /var/subversion/template_svn % sudo chown -R www-data:www-data /var/subversion/template_svn % sudo vi /var/subversion/template_svn/hooks/post-commit % chmod 755 /var/subversion/template_svn/hooks/post-commit
全プロジェクトで同じDigest認証ファイルを使う予定なので
コピーの手順
- コピー先プロジェクト
- プロジェクトディレクトリ:/var/trac/sites/project1
- Subversionリポジトリ:/var/subversion/project1_svn
% sudo cp -pr /var/trac/sites/template /var/trac/sites/project1 % sudo cp -pr /var/subversion/template_svn /var/subversion/project1_svn % sudo trac-admin /var/trac/sites/project1 repository remove template_svn % sudo trac-admin /var/trac/sites/project1 repository add project1_svn /var/subversion/project1_svn svn % sudo trac-admin /var/trac/sites/project1 repository resync project1_svn % sudo vi /var/subversion/project1_svn/hooks/post-commit
/var/subversion/project1_svn/hooks/post-commitの編集内容は以下のとおり。
#!/bin/sh REPOS="$1" REV="$2" ENV="/var/trac/sites/project1" /usr/bin/trac-admin $ENV changeset added "project1_svn" $REV
あと、Subversionのリポジトリの編集権限を修正する。
% sudo vi /etc/apache2/dav_svn.authz
[groups] devteam = next49, bob, barry, brett [/] @devteam = r # 各プロジェクトごとの設定は、 # [プロジェクトディレクトリ:制御したいディレクトリ] # と記述する。 [project1_svn:/trunk] next49 = rw [project1_svn:/branches] @devteam = rw [project2_svn:/branches] @devteam = r
Webブラウザから起動し、
- プロジェクト名を新しいものに変える。
- TracAccountManagerのRegistrationModuleをオンにする。
- 新たなユーザーが加わったら /etc/apache2/dav_svn.authz に追記する。