Mercurial+Apache+SSL+Basic認証で手軽にバージョン管理(hgweb.cgi)


この記事の所要時間: 313

ここを参考にした。

Mercurialのインストール

リポジトリ用のユーザ作成

hgweb.cgiを取得

ソースを取ってくる*1

http://mercurial.selenic.com/release/?M=D

hgweb.cgiを以下のように編集する。

# hgweb.cgi
#!/usr/bin/env python
#
# An example hgweb CGI script, edit as necessary
# See also http://mercurial.selenic.com/wiki/PublishingRepositories

# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/home/hg/.config"

# Uncomment and adjust if Mercurial is not installed system-wide:
#import sys; sys.path.insert(0, "/path/to/python/lib")

# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb(config)
wsgicgi.launch(application)

import os
os.environ["HGENCODING"] = "UTF-8"

hg設定

hgリポジトリのリストを格納するディレクトリを指定する。

リポジトリリストの所有者をapacheユーザに設定する。

このままじゃapacheがhgのホームディレクトリ以下に入れないので

httpd.confを編集する

ターゲットリポジトリにpush許可

apache再起動(reloadでもいける?)

Basic認証をかける

pushのたびに認証するのめんどくさい?

Repository Settingsから

追記

会社のリポジトリ環境触ってたときにこれ見ながらやってて
なぜかできねーって嘆いてたらBasic認証の文法おもいっきり間違ってたので修正。

*1:運用してるMercurialとバージョンは合わせた方がいいよ

投稿者紹介

株式会社ユニキャスト
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。

人気の記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP