リポジトリの初期設定 その1

まずはメインになるサクラ側

リポジトリ用のディレクトリを作成して初期化コマンドを実行

 $cd repos/jdi
 $hg init

リポジトリ基本設定と公開設定を.hg/hgrcファイルに記述

#Owner設定
 [ui]
  username=owner
#Web設定
 [web]
 #pullの許可
 allowpull=true
 #pushのアクセス権設定[許可ユーザのIDを記述(全許可の場合は*)]
 allow_push = allow_user
 #push時にsslを必須とする 
 push_ssl = true
 #アーカイブのダウンロード許可[許可する形式を記述]
 allow_archive = gz, zip
 #Webページを見れなくするかどうか
 hidden=false
 #リポジトリの名前
 name = Just-Do-It
 #リポジトリの説明
 description = Repository of Just-Do-It
 #サイトのスタイルの指定
 style = gitweb


pushされたくないファイル設定を.hgignoreに記述

  syntax: glob
 *.pyc
 *.pyo
 *.o
 .hgignore
 .project
 .setting
 *.swp

リポジトリ公開用ディレクトリを作成してmercurialパッケージからhgweb.cgiをコピーする。その際にindex.cgiに書き換えておく


ファイルをコピーしたらindex.cgiの次の箇所を環境に合わせてPythonのライブラリへのパスに書き換え

 import sys
 sys.path.insert(0, "/path/to/python/lib")

ついでに次の箇所をコメントアウトしとくとよさそう

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

最後にリポジトリへのパスを設定して完了

 application = hgweb("/path/to/repository", "app_name")
 wsgicgi.launch(application)


お好みで.htaccessを使ってアクセス制限をしても良いかも

#基本設定
 DirectoryIndex index.cgi
# サクラでは以下の設定は不要
# AddHandler cgi-script .cgi
# Options ExecCGI
 Order allow,deny
 Allow from all

 #アクセス制限設定
 # PUSHのみを制限、PULLも制限する場合はを外す
 
  Require valid-user
  AuthType Basic
  AuthName "Input ID / Password"
  #認証用の.htpasswdファイルを指定
  AuthUserFile /path/to/htpasswd/.htpasswd
 

上記はpushのときだけ認証する設定。
環境によってはntlm認証やらldapやらで統合認証とかも可能でした。