MacOSXにSCM-Managerを導入した

MacにSCM-Managerを導入したので、その覚え書。利用環境は下記の通り。

導入

  1. 下記よりscm-server-1.20-app.zipをダウンロード。
  2. 起動は簡単。
./bin/scm-server

メリット

  • 導入が簡単
    必要なライブラリ等が全てパッケージ化されているので、アーカイブをダウンロードして簡単に試すことが出来る。
  • 複数の構成管理を一括管理可能
    デフォルトではSubversion, Git, Mercurialをまとめて利用出来る。(コミットログやソースを閲覧するためのウェブ画面も有るけど、UIはいつもと同じ。SCM-Manager専用の画面という訳ではない)
  • サーバ側のリポジトリを容易に設定可能
    SubversionMercurialリポジトリをhttp経由で使おうとすると、Apacheの設定やらcgiやアクセス権の設定など面倒な作業が多いけど、その辺の設定を全てウェブ画面で設定できる。

その他の雑多な設定など。

Apache連携

  • 下記の設定ファイルを追加した。
    • /private/etc/apache2/other/scm-manager.conf
<Location /scm>
    ProxyPass http://localhost:8080/scm
    ProxyPassReverse http://localhost:8080/scm
</Location>

ログイン時の自動起動

  • 下記の設定ファイルを追加した。
    • /Users/rabbit2go/Library/LaunchAgents/rabbit2go.scm-manager.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>rabbit2go.SCM-Manager</string>
	<key>ProgramArguments</key>
	<array>
		<string>/bin/sh</string>
		<string>/Users/rabbit2go/bin/scm-server/bin/scm-server</string>
	</array>
	<key>OnDemand</key>
	<false/>
</dict>
</plist>
  • これでログイン時には自動起動するが、もし手動で起動させる場合には、下記のコマンドを叩けば良い。
$ launchctl load -w /Users/rabbit2go/Library/LaunchAgents/rabbit2go.scm-manager.plist 

Mercurial画面表示

Mercurialリポジトリへアクセスすると、下記のエラーが発生してしてしまう。

23:20:36.515 [Thread-16] WARN  sonia.scm.web.cgi.DefaultCGIExecutor - Traceback (most recent call last):
  File "/Users/rabbit2go/.scm/lib/python/hgweb.py", line 34, in <module>
    from mercurial import demandimport
ImportError: No module named mercurial

手元の環境のMercurialはPython2.7を使っているので、Navigation -> Config -> Repository Types -> Mercurial Settingにて、"Python Binary"を下記に変更した。

/opt/local/bin/python2.7

既存リポジトリのインポート

ウェブ画面上では"Import Repositories"なるメニューがあるけど、設定する項目(インポート元)などを指定できない。???と思っていたら、既存リポジトリを一旦SCM-Manager管理下のフォルダへ入れ、これをSCM-Managerで取り込むための設定と理解すれば良いらしい。

$ hg clone http://server/path repo
$ cd repo
$ hg push http://scm-server/scm/hg/repo

sdorra / scm-manager / issues / #127 - Import Repositories doesn't have any useable UI — Bitbucket

上記の設定を行った後、再度"Import Repositories"のダイアログを開くと、対象をインポート対象を選択して取り込むことが出来た。

リポジトリ管理を容易に行いたいと思っている場合には、なかなか良いツールだと思う。