jigen, Hirotomo Kunimatsu
Tokyo, Japan
mailto: microformat hcard
Page 1 / 212»
top

mootoolsのwikiがいつの間にかtracに・・・

(写真):mootoolsのwikiがいつの間にかtracに・・・いつの間にかmootoolsのwikiがtracになっとる・・・。

スポンサードリンク

前使っていたwikiサービスが停止でもしたんだろうか。tracは使い慣れてるから良いけど、なんだか心配だ。


2006/12/14 12:53:49200612:53

CentOSでyumからTracをインストール

(写真):CentOSでyumからTracをインストール野暮用で、Tracを再インストールする事になったんだがOSをDebianしか使ったことが無かったために今度新しく用意したOSのCentOS側でライブラリとかを色々と一から用意するの面倒だなぁ・・・と思っていたら、パッケージ管理のyumからインストール出来る方法があったので( ..)φメモメモ

まぁ簡単に言えばyumのリポジトリを追加するだけなんですけどね・・・。以下はウェブサーバは「Apache」、バージョン管理は「Subversion」、Tracの使うDBは「sqlite」として全てsu(root)にて作業。

yumにリポジトリを追加

以下のファイルを開く。

trac-admin /path/to/trac/project initenv

んで、ファイルの最後の部分に以下を追加。

[dag]
name=Dag RPM Repository for Redhat EL4
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

yumからインストール

上記作業が終わってからyumからtracをインストール。途中にy/nと聞かれるがもちろん「y」で。

yum install trac
スポンサードリンク

せっかくなのでTracのプロジェクトを・・・

さて、次にTracのプロジェクトを作る。作られたフォルダはApacheから読み書きが出来るように設定する。プロジェクトファイルを保存する場所を指定して

trac-admin /path/to/trac/project initenv

4回程入力を求められるが、リポジトリとプロジェクト名以外はエンターキーでOK。

Project Name [My Project]> project (プロジェクト名を書く、後で変更可能)
Database connection string [sqlite:db/trac.db]> (ここはエンターでOK)
Repository type [svn]> (ここはエンターでOK)
Path to repository [/path/to/repos]> (svnリポジトリの場所)

Apacheの設定

VirtualHostで設定する例。複数プロジェクトを設定する場合は「PythonOption TracEnvParentDir」にプロジェクトファイルの上の階層を指定する。

<VirtualHost *>
        DocumentRoot /path/to/trac
        Alias /project "/path/to/trac/project/htdocs"
        <Directory />
                Options -Indexes FollowSymLinks
                AllowOverride None
        </Directory>
        <Location />
                Options -Indexes FollowSymLinks
                AllowOverride None
                Order allow,deny
                allow from all
                SetHandler mod_python
                PythonHandler trac.web.modpython_frontend
                PythonOption TracUriRoot "/"
                PythonOption TracEnvParentDir /path/to/trac
        </Location>
</VirtualHost>

後はApacheを再起動してメデタシメデタシ。


2006/11/14 00:02:49200600:02

複数リポジトリを1つのTracで

trac_big

スポンサードリンク

Tracではリポジトリは1つしか扱えない。例えば【1つのリポジトリを複数のTracで利用する】の事は出来るようだが、逆に【複数リポジトリを1つのTracで動かす】のは色々検索したが見つからなかった。

例えば、社内に複数のリポジトリがあってそれを1つのTracで管理したい場合。こんなのありそうだが・・・Trac 0.10xとかで機能追加されるのかな(?)。これがまた私の方でこのようなケースを自分で作り出してしまって困ったので…。無理やりではあるがSubversionのリポジトリ側で統合をしてみた。クレバーじゃぁないが、忘れそうなのでメモ。ちなみに、外部からのアクセスに関してはsvnserve、Tracで使うWebサーバはApacheだった場合を想定です。
なんかクレバーな方法あったら教えてください。m(_ _)m

大まかな説明

下記にあるシェルスクリプトをcronで回す。流れは以下。

  • 統合させたい複数リポジトリをダンプ。
  • 【統合リポジトリ】を作成する(しなおす)。
  • ダンプしたファイルを【統合リポジトリ】にダンプをインポート。
  • Tracにて【統合リポジトリ】を読み込み直す。
  1. #!/bin/sh
  2. SVN_USER=user
  3. SVN_PASS=password
  4. SVN_REPO=/path/to/svn-basic
  5. TMPLOG=/path/temppath
  6. SVNSERVE_CONF=/path/to/svnserve-conf
  7. TRAC_PATH=/path/to/trac
  8. TRAC_PROJECT=(project1 project2 project2)
  9. TRAC_ALL_PROJECT=all
  10. APACHE_USER=www-data
  11. APACHE_GROUP=www-data
  12. # 統合するリポジトリをダンプする。
  13. for i in ${TRAC_PROJECT[*]} ; do
  14. svnadmin dump $SVN_REPO/$i > $TMPLOG/$i.log
  15. done
  16. # 作業フォルダを全て削除。
  17. rm -fr $SVN_REPO/all
  18. rm -fr $TMPLOG/all
  19. # 新リポジトリを作成して、confを入れる。
  20. svnadmin create $SVN_REPO/$TRAC_ALL_PROJECT
  21. cp -fR $SVNSERVE_CONF/* $SVN_REPO/$TRAC_ALL_PROJECT/conf/
  22. # 統合するリポジトリを入れるフォルダを作成。
  23. cd $SVN_REPO
  24. svn \
  25. –username $SVN_USER \
  26. –password $SVN_PASS \
  27. co \
  28. file://$SVN_REPO/$TRAC_ALL_PROJECT $TRAC_ALL_PROJECT
  29. cd $SVN_REPO/all
  30. for i in ${TRAC_PROJECT[*]} ; do
  31. svn mkdir $i
  32. done
  33. svn commit -m “Dump Message”
  34. # 作業フォルダを削除。
  35. rm -fr $TMPLOG/$TRAC_ALL_PROJECT
  36. # 旧リポジトリを入れ込む。
  37. for i in ${TRAC_PROJECT[*]} ; do
  38. svnadmin load $SVN_REPO/$TRAC_ALL_PROJECT –parent-dir $i \
  39. < $TMPLOG/$i.log
  40. done
  41. # リポジトリを復旧
  42. svnadmin recover $SVN_REPO/$TRAC_ALL_PROJECT
  43. # 権限設定を変更する。
  44. chown -R $APACHE_USER:$APACHE_PASS $SVN_REPO/$TRAC_ALL_PROJECT
  45. # trac変更を読み込ませる。
  46. trac-admin $TRAC_PATH resync

設定項目

SVN_USER
Subversionを操作するユーザ
SVN_PASS
Subversionを操作するユーザパスワード
SVN_REPO
元になるSubversionリポジトリパス
TMPLOG
ダンプの一時ファイルを作るフォルダ
SVNSERVE_CONF
Svnserveのコンフィグファイル(あらかじめ作っておく)。
TRAC_PATH
Tracのパス。
TRAC_PROJECT
統合するリポジトリ名(配列で入れる)
TRAC_ALL_PROJECT
統合リポジトリ名
APACHE_USER
Apacheユーザ
APACHE_GROUP
Apacheユーザパスワード

問題点

リビジョン番号
3つの複数リポジトリを統合した場合、Tracで表示されるRevisionは3つのリポジトリを足した番号になる。例えば以下のような感じ。
project1 (rev3) — Tracだと –> (rev3)
project2 (rev5) — Tracだと –> (rev8)
project3 (rev2) — Tracだと –> (rev10)
リアルタイムには反映できない
シェルで定時で同期を取るのでリアルタイムには反映されない。また、リポジトリを更新する際にソース表示関連のもの(リポジトリを利用する機能)は使えなくなる。大体長くて5分~10分程度なので3時間毎でもいいかも知れない。

参照させて頂いたサイト


$TMPLOG/$i.logdone # 作業フォルダを全て削除。 rm -fr $SVN_REPO/allrm -fr $TMPLOG/all # [...]" dc:creator="jigelog" dc:date="2006-04-26T03:56:49+09:00" trackback:ping="http://jigen.aruko.net/2006/04/26/how-to-which-gathers-up-plural-repositories-in-one-trac/trackback/" />
2006/04/26 03:56:49200603:56
Page 1 / 212»
アリ「ここからメニューだすよ」
アリ「ごちそういっぱーい」
アリ「腹へったー」
アリ「働けー働けー♪」