Trac on Windows(4)

id:ooparts77:20060428#p1(Trac on Windows(2))の修正。Eclipseのプロジェクト単位にSubversionTracリポジトリを登録する方法をまとめる。以下、Eclipseのプロジェクト名を[project]とする。またSubversionTracリポジトリはそれぞれc:\svnrepos, c:\tracの下へ配置する。

     c:\svnrepos                             c:\trac
          |                                      |
          +-- \[project]--+-- trunk              +-- \[project]
                          |
                          +-- branches
                          |
                          +-- tags

Tracプロジェクトのディレクトリ作成

Apacheのドキュメントルート、つまりhttpd.confのDocumentRootで定義されたディレクトリ下にTrac用のディレクトリprojectsを作成する。手順としては、もし

DocumentRoot "C:/www"

となっているなら

mkdir c:\www\projetcts

とするか、エクスプロラーでc:\wwwの下に新規フォルダprojetcts作成。そしてこのprojetctsの下に

  1. index.htmlファイル(この時点では空っぽで良い)
  2. C:\Python23\share\trac\cgi-bin\trac.cgiをここへコピー

する。

Subversionリポジトリの作成

以下のコマンドで作成。trunkはEclipseから登録したとき作成する(Subclipseは同名dirがあるとエラーになるため)

SET SVN_EDITOR=notepad.exe
svnadmin create d:/svnrepos/[project]
svn mkdir file:///d:/svnrepos/[project]/branches file:///d:/svnrepos/[project]/tags

admin.pyのrestore

Resolutionの日本語で更新されたadmin.pyだとエラーが起きるので、更新前のものに戻す。

対象はD:\Python23\Lib\site-packages\trac\scriptsの

  • admin.py
  • admin.pyc

Tracリポジトリの作成

手順はD:\Python23\Scriptsへcdしてadminを実行する。

(1)python trac-admin d:/trac/[project] initenv

(2)Project Name [My Project]> に対して [project]

(3)Database connection string [sqlite:db/trac.db]> に sqlite:db/[project].db

(4)Path to repository [/var/svn/test]> に d:/svnrepos/[project]

(5)Templates directory [C:\Python23\share\trac\templates]> は ENTERのみ

(6)d:\trac\[project]\conf\trac.iniを変更

default_charset = iso-8859-15
↓
default_charset = MS932
[notification]
always_notify_owner = true
smtp_port = 25
smtp_password = 
smtp_enabled = true
smtp_replyto = trac@localhost
smtp_always_cc = 
always_notify_reporter = false
smtp_from = **********
smtp_server = ***.***.***.***
smtp_user = 

admin.pyの戻し

上記でrestoreしたものを戻す。

対象はD:\Python23\Lib\site-packages\trac\scriptsの

  • admin.py
  • admin.pyc

パスワードファイルの作成

各プロジェクト用パスワードファイルを作成。このファイルでアクセスできるユーザを定義する。手順としてはApacheBasic認証用ファイルを作るのと同じ。

d:\Apache2\bin>htpasswd -c -m [project]_passwd user1
New password: *****
Re-type new password: *****
Adding password for user user1

2人目からは-cつけない。できたらD:\svnrepos\confへ置く。

httpd.confの調整

以上の内容をもとにhttpd.confへ定義を追加する。すでにSubversion, Tracに関する設定が記載されている場合は、それらと干渉しないか確認。

# Subversion
<Location /svnrepos/[project]>
 DAV svn
 SVNPath d:\svnrepos\[project]
 AuthType Basic
 AuthName "svn [project]"
 AuthUserFile d:\svnrepos\conf\[project]_passwd
 Require valid-user
</Location>

# Trac
<Directory "C:/Python23/share/trac/htdocs">
  Options Indexes MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

RewriteEngine on
RewriteRule ^/projects/+$			/projects/index.html [L]
RewriteCond c:/trac/$1			-d
RewriteRule ^/projects/([[:alnum:]]+)(/?.*)	/projects/trac.cgi$2 [S=1,E=TRAC_ENV:c:/trac/$1]
RewriteRule ^/projects/(.*)			/projects/index.html

<Directory "c:/www/projects">
	AllowOverride None
	Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
	AddHandler cgi-script .cgi
	Order allow,deny
	Allow from all
</Directory>

<Location "/projects/[project]">
	#mod_pythonが有効な場合
	SetHandler mod_python
	PythonHandler trac.web.modpython_frontend 
	PythonOption TracEnv c:/trac/[project]
	#PythonOption TracUriRoot /projects/[project]
	
	AuthType Basic
	AuthName "trac [project]"
	AuthUserFile c:\svnrepos\conf\[project]_passwd
	Require valid-user
</Location>

最後にrewrite_moduleを有効にする。

#LoadModule rewrite_module modules/mod_rewrite.so
                 ↓
LoadModule rewrite_module modules/mod_rewrite.so

これでApacheを再起動すれば準備OK。

プロジェクトへログイン

上記の設定によりhttp://[サーバ名]/projects/[project]でアクセスできるようになる。このときBasic認証のダイアログが表示されるので、所定のユーザ名/パスワードを入力する。ログイン後、リポジトリブラウザをクリックしてもこの段階では、空のbranches/tagsしかない。

Eclipseからのプロジェクトをチェックインする

Subclipse0.9.37の場合、以下の手順でプロジェクトをチェックインする。

  1. パッケージエクスプローラで対象プロジェクト(プロジェクト名は[project])を選択。右クリックで[チーム]→[プロジェクトの適用]
  2. svnを選択→[次へ]
  3. 「新しいリポジトリロケーションを作成」を選択→[次へ]
  4. 「URL」に"http://[サーバ名]/svnrepos/[project]"を入力。ユーザ名/パスワードを入力して→[次へ]
  5. 「指定したファイル名を使用」を選択して"trunk"を入力→[次へ]→[終了]
  6. チェックインするファイルを選択→[OK]

リポジトリの閲覧

これでhttp://[サーバ名]/projects/[project]にアクセスするとtrunkが現れる。

プロジェクトのチェックアウト

Subclipseリポジトリエクスプローラでtrunkを選択。右クリックで[プロジェクトとしてチェックアウト]を選択する。