MacOSXにSCM-Managerを導入した
MacにSCM-Managerを導入したので、その覚え書。利用環境は下記の通り。
導入
- 下記よりscm-server-1.20-app.zipをダウンロード。
- 起動は簡単。
./bin/scm-server
- あとは下記にアクセスして設定を行えば良い。
- リポジトリのデータや設定は下記に入っている。
- ~/.scm
メリット
- 導入が簡単
必要なライブラリ等が全てパッケージ化されているので、アーカイブをダウンロードして簡単に試すことが出来る。 - 複数の構成管理を一括管理可能
デフォルトではSubversion, Git, Mercurialをまとめて利用出来る。(コミットログやソースを閲覧するためのウェブ画面も有るけど、UIはいつもと同じ。SCM-Manager専用の画面という訳ではない) - サーバ側のリポジトリを容易に設定可能
SubversionやMercurialのリポジトリをhttp経由で使おうとすると、Apacheの設定やらcgiやアクセス権の設定など面倒な作業が多いけど、その辺の設定を全てウェブ画面で設定できる。
その他の雑多な設定など。
Apache連携
- 下記の設定ファイルを追加した。
- /private/etc/apache2/other/scm-manager.conf
<Location /scm> ProxyPass http://localhost:8080/scm ProxyPassReverse http://localhost:8080/scm </Location>
- これで下記のURLからアクセスできるようになった。
ログイン時の自動起動
- 下記の設定ファイルを追加した。
- /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
sdorra / scm-manager / issues / #127 - Import Repositories doesn't have any useable UI — Bitbucket
$ cd repo
$ hg push http://scm-server/scm/hg/repo
上記の設定を行った後、再度"Import Repositories"のダイアログを開くと、対象をインポート対象を選択して取り込むことが出来た。
リポジトリ管理を容易に行いたいと思っている場合には、なかなか良いツールだと思う。