DreamhostでBazaarスマートサーバー

Page content

Bazaarのマニュアルをみていたら、「Bazaar スマートサーバー」というものがあり、おもしろそうだったので、Dreamhost でやってみました。Bazaar スマートサーバーを入れると「bzr+http://」が使えるようになり、push もできます。以下その記録。

http://example.com/ に構築する例でやります。なお、Python はビルドしたもので、~/local/bin/python とします。Bazaar もインストール済みで。

http://example.com/.htaccess


Options ExecCGI FollowSymLinks
RewriteEngine On
RewriteRule ^(.*/|)\.bzr/smart$ bzr-smart.fcgi [L]

PYTHONPATH の通っている site-packages に http://svn.saddi.com/py-lib/trunk/fcgi.py を置く。

http://example.com/bzr-smart.fcgi


#!/home/user/local/bin/python
import fcgi
from bzrlib.transport.http import wsgi

smart_server_app = wsgi.make_app(
    root='/home/user/example.com',
    prefix='/',
    path_var='REQUEST_URI',
    readonly=False,#読み込み専用かどうか
    load_plugins=True,
    enable_logging=True)
fcgi.WSGIServer(smart_server_app).run()

これで bzr push bzr+http://example.com/branch や bzr branch bzr+http://example.com/branch ができます。

http://example.com/.htaccess で認証をかけることもできます。