Mercurial¶
Error
もう基本使われていない
python製の分散バージョン管理ツール
- Windows
- TortoiseHgを使うのが簡単
- http://tortoisehg.bitbucket.org/
Web経由 アクセス設定¶
環境条件¶
- Ubuntu Server 10.04
- apt-getした場合のmercurialは1.4.3
- apache2は導入済みと仮定
- Mercurial Webサイトのディレクトリ : /var/hg/
- プロジェクトAのリポジトリ : /var/hg/project-a
- プロジェクトBのリポジトリ : /var/hg/project-b
設定¶
必要モジュールの入手
apt-get install mercurial libapache2-mod-wsgi
cgiの設置
mkdir /var/hg
cd /var/hg
cp /usr/share/doc/mercurial/examples/hgwebdir.cgi .
chmod 700 hgwebdir.cgi
apacheの設定: /etc/apache2/sites-available/default
ScriptAlias /hg /var/hg/hgwebdir.cgi
<Directory /var/hg>
AuthType Basic
AuthName "Mercurial repositories"
AuthUserFile /etc/apache2/hgusers
Require valid-user
</Directory>
Note
Digest認証の場合は、AuthTypeをDigestに。
apacheの認証設定
htpasswd -mc /etc/apache2/hgusers admin
htpasswd -m /etc/apache2/hgusers onechan
htpasswd -m /etc/apache2/hgusers imoto
Diegst認証の場合
htdigest -m /etc/apache2/hgusers 'Mercurial repositories' admin
Ubuntuのapache2はauth_digestが有効になっていないかもしれないので、必要なら有効にする
a2enmod auth_digest enable
apacheの再起動
service apache2 restart
リポジトリの作成¶
mkdir /var/hg/project-a
cd /var/hg/project-a
hg init
mkdir /var/hg/project-b
cd /var/hg/project-b
hg init
登録
cd /var/hg
echo "[collections]" >> hgweb.config
echo "/var/hg/project-a = project-a" >> hgweb.config
echo "/var/hg/project-a = project-b" >> hgweb.config
chown -R www-data.www-data /var/hg
1.6以降では、[collecttions]は[paths]と書く必要があると思う。
あとは以下のようにcloneできる。
hg clone http://www.example.com/hg/project-a
- 特定のユーザからのアクセスを弾きたい時は、hgrcの[web]セクションに
deny_read = <username>
と書けば、一覧からも消えるしアクセスしたらread not authorized
にできる。
リポジトリ作成支援スクリプト¶
#!/bin/sh
mkdir /var/www/hg/$1
cd /var/www/hg/$1
hg init
cd .hg
echo "[web]" >> hgrc
echo "push_ssl = false" >> hgrc
echo "allow_push = root" >> hgrc
echo "contact = root@example.com" >> hgrc
echo "name = $1" >> hgrc
echo "description = None" >> hgrc
echo "/var/www/hg/$1 = $1" >> /var/www/hg/hgweb.config
chown -R www-data.www-data /var/www/hg/$1
ls -l /var/www/hg | grep $1
最終更新日: 2021-05-22 13:37:13