CentOS7へtracをインストール
もの凄く久しぶりにtracをインストールしてみた。
今はあまり使われなくなったのか、書いてある手順通りに実施してもインストールできるページがなかなか見つからない。。。
easy_install trac
とか打っても
Couldn't find index page for 'Trac' (maybe misspelled?)
とか出てインストールできない。
easy_installではなく、こちらページのepelパッケージインストール方式で割とすんなり入りました。
SVN組み込みですが、
CentOSにyumでsubversion subversion-python mod_dav_svn あたりをインストールして
svnのルートディレクトリにApacheの認証設定を入れたあと、
取り合えずTracの画面に「branches」「Tags」「trunk」を表示させたい場合は
mkdir /var/www/svn/repo/sample svnadmin create /var/www/svn/repo/sample
※こちらを参考に
sampleレポジトリに
「branches」「Tags」「trunk」のディレクトリを作成して
svn list file:///レポジトリのパスで
「branches」「Tags」「trunk」
が表示されるようにしておく
レポジトリをまず作って、その配下に「branches」「Tags」「trunk」のディレクトリを作成というやり方は
某バージョン管理サービスを利用した時のデフォルト設定になっていたので、
恐らくこれでよいのだろうと思います。
後はそれぞれの運用で。
Tracの管理画面で
管理→プラグイン→★を有効にして、変更を適用
tracopt.versioncontrol.svn.svn_fs.* — Note about Unicode ——————
★SubversionConnector
tracopt.versioncontrol.svn.svn_prop.*
★SubversionMergePropertyDiffRenderer
★SubversionMergePropertyRenderer
★SubversionPropertyRenderer
Tracの管理→リポジトリ→リポジトリの追加で
名称:sample
種別:default
ディレクトリ:/var/www/svn/repo/sample
で追加
表示される
trac-admin パス repository resync "sample"
をターミナルで実行
うまくいっていれば、tracでリポジトリブラウザを表示した時に「branches」「Tags」「trunk」が表示されるはず。
しかし、このままだとTortoiseSVN等でコミットしてもtracと同期しないのでcommit時に実行されるスクリプトを以下で設定します。
レポジトリのパス/hooks配下で
cp -p post-commit.tmpl post-commit vi post-commit
最下行に以下を追加
trac-admin tracのプロジェクトディレクトリ changeset added "sample" $REV
編集が終わったら実行権限を付与
chmod +x post-commit
コミットした後にtracを見て更新されていることを確認します。
ちなみに「branches」「Tags」「trunk」の意味はサイトによって色々説明が違うのですが・・
trunk→コミットするメインの場所
branches→補助的な場所 trunkから作成する こちらでコミットし最終的にtrunkにマージする 基本こちらで変更する
tags→区切りがよいタイミングで保存する場所 trunkから作成し、リリースはこちらから コピーのみで 変更しない
単にExcelとかをローカルからリビジョンごとに保存したい場合はtrunkのみ使用とかなのかな。
※subversionにTortoiseSVNでアクセスした時にエラーが出てハマる
例えばSVNで/var/www/svn/repo/sample
でSVNレポジトリを作った場合、httpd/conf.d
以下に作成する設定ファイルはこんな感じ
DAV svn SVNParentPath /var/www/svn/repo AuthType Digest AuthName "sample" AuthUserFile tracのプロジェクト/.htdigest Require valid-user
でアクセスするURLは
https://〇〇/svn/sample
なるのでよろしく(笑)
あと、TortoiseSVNでアクセスするのにhttp/httpsでアクセスするので
svnservは稼働していなくてもよく、portを開ける必要もなし。