Chapter 6
Collaborating with other people

Mercurial であるため利用してはすことをしませんですがみがいのであればいくつかの使っておくことはモデルえるちま

6.1 Mercurial’s web interface

Mercurial いくつかの有用するウェブインタフェっています

利用ウェブインタフェつないしリポジトリができますリポジトリ コミットメッセおよびディレクトリファイルといったことができま

通知してもウェブインタフェリポジトリにおけるする RSS しますりの使ってリポジトリすることもできますしリポジトリにおける通知うこともできますリポジトリにおけるであることから者自通知リングリストよりも、「 RSS するモデル便だといます

ウェブインタフェによりによるリポジトリおよびでそれをしているならになります Mercurial HTTP トンネリングプロトコルではいますのでネットワ接続でもよくします

ウェブインタフェってみる方法Mercurial マスタリポジトリであるhttp://www.selenic.com/repo/hg?style=gitwebのようなリポジトリウェブブラウザ接続してみることです

リポジトリウェブインタフェすることにがあるMercurial にはつの選択がありますつはhg serveコマンド使するもので期間ですこのコマンド利用する6.4  してください利用 Mercurial まれている CGI Common Gateway Interfaceてのウェブサ利用ですCGI 6.6  してくださ

6.2 Collaboration models

使うことでからsocial engineeringへとわりま Mercurial プロジェクトにおけるしてさないため要望沿ったモデル利用者次となります

6.2.1 Factors to keep in mind

いずれのモデルにおいてもておくべきそれを利用する要望にどれだけするかということですこれはえるかもしれませんがほんのしのでもこのことをれてはいけません

えるモデルしたのですがなからぬきとをもたらしましたブランチそれらのにおけるいについてしようとみました メンバかがえてきたのですらはでしたがにおける 1 ことえるモデルにおけるおうともしませんでした

からけないでくださいどんな実施しようともいやしたるべきですしてのためのみのしましょうえばリリけではな のためのブランチしようとしたリリブランチにうっかりしてしまうについてしたほうがいでしょうブランチからチェンジセットさせないフックすることでこの てはです

6.2.2 Informal anarchy

から でもアリなやりはおめしませんがすることができるモデルでありいくつかの します

つのとしてくのプロジェクトうことのくまとまったグルている As one example, many projects have a loose-knit group of collaborators who rarely physically meet each other. sprints2 けることでによっててられたグルもあります機会ではくの場所 ホテル会議まり程度じこもってごしプロジェクトしてハッキングいま

かりなバインフラとしないhg serveコマンド利用するのにちょうど機会です以下6.4  むことですぐにでもhg serve使めることができますそうしたならであることを インスタントメッセンジャ使して URL ればするでの地点まで辿きましたブラウザ えられた URL すればらはすぐにでもあなたのレビュすることができますしあなたからバグ フィックスしてそれをしたりまれるブランチしてそれをしてみたりすることができま

そのりのこのようなめることのあなたによるどこでアクセスかをだけ それをすることができるというにありますこのようななるリポジトリからのみが されるため数人してはができません

6.2.3 A single central repository

プロジェクトにおいてからのする方法リポジトリして のやりりをするというものですこのよりのためのでもありま

contributorリポジトリうことでしますにいつでもみをえます かはでも)、になったリポジトリさせるちま

このモデルであってもリポジトリせずにおいのhg pullすることはにとってはのあるこ とですえば定的バグったもののリポジトリにそのしたそのんだ をきたすれがあるというえてみましょうバグリポジトリからリポジトリ してもらえるようににおいすることですることができますこのように することでであってもむまではされないようにすることができま

こののやりりのリポジトリへののためにssh プロトコル使するのがです6.5  )。リポジトリCGI 使して HTTP することもです6.6  )。リポジトリへの ないリポジトリウェブブラウザしたいにはHTTP でのたされま

6.2.4 Working with multiple branches

プロジェクトにおいては前線われることはきですソフトウェ どのプロジェクトでも期間ごとにリリうのがですリリ期間 maintenance modeとなることがありますリリではバグのみを規機については わないのがですこれらリリして、(によってはリリけた しますなるこれらすのにブランチという使いま

Mercurial なるブランチすることにしていますそれぞれの ごとに有用 ポジトリすることでになる都度あるリポジトリからリポジトリへのえばいのですリポジトリ していますからかがしないりはブランチにおけるのためのブランチ えることはありません

ブランチごとにリポジトリする以下しますメインブランチがあるものとしま

1  $ hg init main
2  $ cd main
3  $ echo ’This is a boring feature.’ > myfile
4  $ hg commit -A -m ’We have reached an important milestone!’
5  adding myfile

メインブランチからテストコミットメインブランチリポジトリしま

メインブランチリリマイルストしたならばマイルストとなるリビジョンhg tagコマンド します

1  $ hg tag v1.0
2  $ hg tip
3  changeset:   1:be9e2ee397cd
4  tag:         tip
5  user:        Bryan O’Sullivan <bos@serpentine.com>
6  date:        Mon Jul 20 21:58:28 2009 +0000
7  summary:     Added tag v1.0 for changeset 28be537c0906
8  
9  $ hg tags
10  tip                                1:be9e2ee397cd
11  v1.0                               0:28be537c0906

メインブランチではしているとします

1  $ cd ../main
2  $ echo ’This is exciting and new!’ >> myfile
3  $ hg commit -m ’Add a new feature’
4  $ cat myfile
5  This is a boring feature.
6  This is exciting and new!

リリスマイルストリポジトリしたリリスマイルストされたタグ使うこと タグされたリビジョンコミットされたするディレクトリhg updateコマンドにより ることができます

1  $ cd ..
2  $ hg clone -U main main-old
3  $ cd main-old
4  $ hg update v1.0
5  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
6  $ cat myfile
7  This is a boring feature.

それにえてメインブランチでのタグけのメインブランチたな ブランチリポジトリへとする こともできます3

1  $ cd ..
2  $ hg clone -rv1.0 main stable
3  requesting all changes
4  adding changesets
5  adding manifests
6  adding file changes
7  added 1 changesets with 1 changes to 1 files
8  updating working directory
9  1 files updated, 0 files merged, 0 files removed, 0 files unresolved

ブランチしてするがあるブランチリポジトリからテストコミッ ブランチリポジトリします

1  $ hg clone stable stable-fix
2  updating working directory
3  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4  $ cd stable-fix
5  $ echo ’This is a fix to a boring feature.’ > myfile
6  $ hg commit -m ’Fix a bug’
7  $ hg push
8  pushing to /tmp/branchingFZhfNl/stable
9  searching for changes
10  adding changesets
11  adding manifests
12  adding file changes
13  added 1 changesets with 1 changes to 1 files

Mercurial リポジトリはおいにしておりリポジトリでのなやりりはわれないため ブランチととメインブランはおいにされていますメインブランチえたブランチことはありま せんしそのしてもです

ブランチにおけるてのバグメインブランチしたいもあるでしょうメインブランチバグ わりにブランチからんだメインブランしてすることでブランチにおける メインブランチむことができます

1  $ cd ../main
2  $ hg pull ../stable
3  pulling from ../stable
4  searching for changes
5  adding changesets
6  adding manifests
7  adding file changes
8  added 1 changesets with 1 changes to 1 files (+1 heads)
9  (run ’hg heads’ to see heads, ’hg merge’ to merge)
10  $ hg merge
11  merging myfile
12  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
13  (branch merge, don’t forget to commit)
14  $ hg commit -m ’Bring in bugfix from stable branch’
15  $ cat myfile
16  This is a fix to a boring feature.
17  This is exciting and new!

このでのメインブランチブランチにはしていますがブランチにおけるてのバグしていますブランチメインブランチにのみまれるにはけないままで

6.2.5 Feature branches

プロジェクト方法さなグルすることですプロジェクト全体するマスタブランチからしたブランチ(= リポジトリグルごとにそれぞれちますブランチ メンバブランチにおけるとはされています



[Picture]

Figure 6.1: Feature branches

とある4 したとされたなら該機ではマスタブランチリポジトリからしたブランチ リポジトリへとしてからマスタブランチへとすればいのです

6.2.6 The release train

プロジェクトによっては“train” モデルされているもあります“train” モデル れているプロジェクトではリリごとにされており“train” した 5 だけがリリまれます

このモデルしたブランチによるています“train” モデルブランチりそこ なった該機ではブランチリポジトリしてリリまれるみお よびしてするがあるなりますこのうことでリリ 該機つことができます

6.2.7 The Linux kernel model

Linux ネルそれをとしたからっていますどの Linux Mercurial 同等ったであるgit コマンド使しているのでLinux ネルにおける Mercurial 利用にとっても有用っていますったアイデアがあればえて利用することは なのですから

コミュニティにはLinux した Linus Torvalds がいますスリポジトリしており ミュニティ全体にとってはこのリポジトリある現行スツリとみなされますもが Torvalds スツリ できますがツリからむかというしてTorvalds 選択をしていま

Torvalds には できるかいますしているレビュわれていなくても Torvalds によりまれますのうちのかはとしてされておりネルサブシステム するっていますとあるネルハッカサブシステムへのそのTorvalds ツリ んでしいとえたサブシステムであるかを調べてそのをおいするがあ りますレビュしたそのTorvalds へとされま

レビュー・およびするそれぞれのっておりTorvalds への してもそれはてはまりますそれにえてなるけのられたブランチがいくつかしますえば ネルリポジトリじてするために少数によりされていますかの スツリしていますつはのためのものつはリポジトリから しようとしているのためのものといったですスツリつだけしていま

Linux におけるこのモデルつのするっていますpull onlyであるです できるスツリしているスツリする いことからさせたいスツリしてをおいするがありま

づいているですられていないからのTorvalds ったのならもせずにしてしまうでしょうしかしサブシステムった レビュされたそれがたしていればおそらくそのされるでしょうより するはあなたのするでしょうしあなたのされるいもすで しょうあなたが有名になりTorvalds がまだしていないブランチうようになれば なたのするためにたようながあなたのむようになるでしょ

ずしもサブシステムえるわけではありませんストレハッカネッ トワバグみたネットワクサブシステムによるくのによる程度となるで しょう

よりとしたプロジェクト従事にとってLinux ネルものにえることでしょうこのまぐれのけやすいのです くべきわれますそれでもなお Linux めたソフトウェアつとなっていま

6.2.8 Pull-only versus shared-push collaboration

リポジトリからはのみしかしないモデルリポジトリへのうことができるモデ どちらが よりモデルであるかはプンソスコミュニティにおいてになっています

リポジトリモデル支持者その使する使するにありますSubversion のような 使しているするモデル選択はありませんリポジトリモデルによって されるためモデル使するにはそのえばpatchてるなど使する あります

Mercurial のようなであればモデル選択です利用携形により されるんだものではなく要望みにづいてすることができます

6.2.9 Where collaboration meets branch management

リポジトリリポジトリリポジトリとのめたなら するというすることではありつつもなるすることでしょうこの してはいるもののめてげるがあるほどったであることから8  します

6.3 The technical side of sharing

りはしてでのきたいといます

6.4 Informal sharing with “hg serve

Mercurial hg serveコマンドさくみのでの利用していますhg serve マンドはまたネットワしでの Mercurial コマンド利用むためのらしいしていま

リポジトリにおいてhg serveすることでたずにHTTP しますされるま でのにこの HTTP クライアントからの接続リポジトリいますたった したばかりのURL っていてネットワしにしているコンピュでき るならウェブブラウザMercurial 利用してもがリポジトリからすことができます PC するhg serveプロセスURL http://my-notepc.local:8000/ のようなになりま

hg serveコマンドウェブサではありませんこのコマンド使することでつのになりま

とりわけによるリポジトリしないことからhg serveとしての利用されてい ます

Mercurial 利用めているのであればコンピュリポジトリとしてhg serve利用することがで きますからネットワしにされているリポジトリhg clonehg incomingのような コマンド使してhg serveによってされたしてみましょうネットワされ ているリポジトリするコマンド使方法するhg serve使するのもいでしょ

6.4.1 A few things to keep in mind

hg serveネットワしのしでしているためリポジトリからすために 接続してるのかをにしなくてあるいはできるでのみhg serve使うようにすべきで

コンピュネットワへのファイヤウォ導入についてhg serveコマンドしませんファイヤ ウォもできませんhg serveプロセスとのができない、(しい URL 使して いることをしたファイアウォすべきです

hg serveによるネットワ接続けは8000 われますプロセス により使されていた-p オプション使することで接続することができま

hg serveにはされませんのでになるかもしれませんhg serveしていること したりする URL りたいのであれば-v オプションきでhg serveしてくださ

6.5 Using the Secure Shell (ssh) protocol

Secure Shell sshプロトコル使することでネットワ接続しにうこと ができますこの接続方法しくさせるにはクライアントあるいはかもしれませ

ssh みがないのであればコンピュするためのネットワクプロトコルであるしておいてくだ さいMercurial ssh 利用するにはへのログインおよびコマンドができるようにザアカウント であればするがあります

ssh についてしいはおそらくじるでしょう

6.5.1 How to read and write ssh URLs

ssh プロトコル利用するURL 以下のようなちます

1  ssh://bos@hg.serpentine.com:22/hg/hgbook

  1. ssh://部分Mercurial ssh プロトコル利用指示します
  2. bos@部分へのログインにおけるしますでのカルマシン するこの部分できます
  3. hg.serpentine.com部分ログインホストします
  4. “:22” 部分接続するしますssh 接続における22 ですので22 使するのみです
  5. URL りの部分におけるリポジトリパスします

ssh プロトコルにおける URL パス部分にはするがないために ありますプログラムパス部分してプログラムなるいをしますこのよう ではありませんがわりそうにはありませんですからんでくださ

Mercurial パス部分ログインするムディレクトリする相対パスとみなしますえば おける foo ムディレクトリ/home/foo であるssh プロトコルにおける URL パスbar であればその URL によりされるのは/home/foo/bar ディレクトリです

ムディレクトリする相対パスするチルダ ここではotheruser としま けたパスまる以下のようなになります

1  ssh://server/~otheruser/hg/repo

絶対パスによる以下のようにパスダブルスラッシュめます

1  ssh://server//absolute/path

6.5.2 Finding an ssh client for your system

ての Unix ライクシステムには OpenSSH 導入されていますUnix ライクシステム使している which ssh することでssh コマンド/usr/bin インストされていますインスト有無するこ とができますしてインストされていなかったにはシステムドキュメントしてインスト方法調 てください

Windows ssh クライアント選択してダウンロするがあります選択つありま

どちらのでも Mercurial ssh クライアントコマンドせるようにMercurial.ini  ファイルするがあるでしょうえば PuTTY 使するならコマンドする ssh クライアントとしてplink することになりま

1  [ui]
2  ssh = C:/path/to/plink.exe -ssh -i "C:/path/to/my/private/key"
: plink へのパスMercurial plink コマンドしく できませんですので C:
Program Files インストするのはよくありません)。

6.5.3 Generating a key pair

ssh クライアント使するパスワさなくてもkey pair6 生成することをおすすめし ますUnix ライクシステム7 ssh-keygen コマンド生成しますWindows PuTTY 使しているputtygen コマンド生成 ます

生成するパスフレるようにするのがにはとされていますssh プロトコルによる ネットワされたにおいて使する)。

しかし生成しただけではですネットワログインするアカウントにおい するがありますOpenSSH 導入されているでの アカウント.ssh ディレクトリauthorized_keysファイルすることでわれま

Unix ライクシステムでは.pub っていますWindows puttygen 使する ファイルですしされているウィンドウからauthorized_keys pasteることも です

6.5.4 Using an authentication agent

ジェントパスフレメモリするモンプロセスですそのためログアウトログインした スフレわれます)。ジェントするとssh クライアントジェントパスフ わせをいますジェントしていないかあるいはパスフレしてい ないMercurial による: hg pushhg pull都度パスフレ

ジェントによるパスフレ入念したにとってはたとえしているシステム あっても XXXXXX power-cycled XXXX パスフレ平分であるですこのなものかかは するがありますジェント使することでパスフレするすることができま

Unix ライクシステムではジェントssh-agent というssh-addコマンド使ってジェント パスフレしますWindows PuTTY 使するpageant コマンドジェントしていま システムトレイされたアイコンクリックすることでされたパスフレうことができま

6.5.5 Configuring the server side properly

初心にとって ssh なのでするりますAdd Mercurial on top, and there’s plenty more scope for head-scratching. XXXXX クライアントではなくいですありがたいことにしくするができてしまえばしくけます

Mercurial ssh をしてみるssh ないしputty コマンドによるとのするのが コマンド使したしたならばMercurial しないことはですいことにMercurial しての ssh とのれてしまいますssh する Mercurial する Mercurial ssh クライアントコマンドすることをしてくださ

すべきあるマシンからバマシンへのログインですssh ないしputty ログイン きないされるエラメッセからヒントられるかもしれませんよくあるには以下のようなものがあり ます

これまでのをまとめるとバマシンssh バプロセスとのがあるまずはバプロセ してくださいくのシステムではssh インストされていますがでは されているがありますこのんだならするのはssh バプロセスからの接続 ける22 するからの接続ファイヤウォしている かですこれらつのませるまでは突拍もないミスしてするはありませ

パスフレのためにクライアントジェント使しているパスフレパスワ わせをけるログインできていなければなりませんパスフレわせるプロンプトされる のあるものがつかあります

パスワわせがあったするがあります

以下コマンドして、(現在するだけがされるという

1  ssh myserver date

のようなコマンドにもバナやそれにするわれる ようなわれているにはこの 8 のみこれらがされるようにしてくださいこれをるとバナMercurial させてし まいますなことにバナMercurial コマンドにおける ssh においてMercurial バナならびにめますがずしも てができるわけではありませんログイン時実スクリプトカスタマイズするtty -s コマ ンドすることでスクリプト現在シェルされているかかをすることができま 9

ssh によるすることをしたならばするのはでの Mercurial です以下 コマンドしくすることをしてください

1  ssh myserver hg version

hg versionではなくエラメッセされる/usr/bin Mercurial インストされてい ないことがですそのでもずしも /usr/bin インストするはありませんしかし以下つかの してです

ssh でのhg versionコマンドしたならですクライアントみとなりまし されているリポジトリによる Mercurial でのアクセスになっているですここまでの クリアしたMercurial ssh においてしたをよりにするために--debug オプ ションけてのしてみてください

6.5.6 Using compression with ssh

ssh プロトコル使するssh プロトコルうためMercurial いませんしかしssh クライアントではいません

LAN けばネットワであっても)、Mercurial ネットワ しますえば WAN でのかなりきなリポジトリする51 から 17 したとの もあります

ssh plink ともする-C オプションけますhgrc  ファイル以下のようにすること ssh プロトコル利用うように Mercurial してできます

1  [ui]
2  ssh = ssh -C

ssh 使しているとのにはうようにすることもできますこの にはムディレクトリ.ssh/config ファイルします以下のようにしま

1  Host hg
2    Compression yes
3    HostName hg.example.com

hg というaliasしますssh コマンドMercurial ssh プロトコルにおける URL としてhg ホストとして使したssh いつつ hg.example.com 接続しますこのによ 便縮指にすることができます

6.6 Serving over HTTP using CGI

ではMercurial CGI インタフェのものをにしてしまうがありま

からめてよりへとけてめてゆきましょうですらウェブサファウ きをてくることでしょう

: ウェブサいにくくシステムそのためではするであろう網羅するような すことができませんさとをもってめるように してくださいえたりエラログやす しょう

6.6.1 Web server configuration checklist

めるシステムするつかのいましょう

  1. ウェブサインストされていますかMac OS X Apache インストされたされます くのシステムではウェブサインストされていません
  2. ウェブサインストされているそれはしていますかウェブサインストされていたでもくのシステムウェブサされています
  3. CGI させようとしているディレクトリウェブサCGI されていますかくの ウェブサCGI プログラムされています

ウェブサインストされていないApache ウェブサがあまりにはApache ウェブサ わりにlighttpd ウェブサ利用をおめしますApache ウェブサっていてつわかりにくいという うものがありますlighttpd Apache ウェブサいもののりないどが Mercurial リポジトリ にはないものですそれにえてらかに lighttpd Apache ウェブサよりも利用できま

6.6.2 Basic CGI configuration

Unix システム利用しているウェブペとしてするためのpublic_html のようなディレクトリ ムディレクトリつのがとなっていますこのディレクトリいたfoo というファイル http://www.example.com/ũsername/foo という URL になります

めるにたってMercurial インストされているhgweb.cgi スクリプト してくださいシステムがすぐにはわからなかったMercurial マスタリポジトリ http://www.selenic.com/repo/hg/raw-file/tip/hgweb.cgiダウンロしてください

スクリプトpublic_html となるようにいます

1  cp .../hgweb.cgi ~/public_html
2  chmod 755 ~/public_html/hgweb.cgi

chmod コマンドへの 755 スクリプトするしますこのにより スクリプトからもになると“group” および “other” によるされますこれらの なままにしたApache suexec サブシステムおそらくスクリプトするでしょうのところ suexec スクリプトされているディレクトリする “group” および “other” によるされていることもしま

1  chmod 755 ~/public_html

What could possibly go wrong?

CGI したならばウェブブラウザしてhttp://myhostname/myuser/hgweb.cgi する URL アクセスしてみま しょうちょっとしたにはえておいてくださいURL へのアクセスするその りますのところ以下こりエラてでがありますからこの めてください以下べるまっさらなからインストした Apache 使このうた めにたに生成したザアカウントFedora 7 実施したしたての

使しているウェブサディレクトリしているかもしれませんApache 使している ファイルUserDir 有無してくださいこのディレクトリになりますって されているディレクトリになりますUserDir があるUserDir されてい えば public_htmlムディレクトリApache するサブディレクトリになりま

ファイルアクセスしすぎるもありますウェブサとなるムディレクトリおよび public_htmlファイルディレクトリみができなければなりませんうための以下します

1  chmod 755 ~
2  find ~/public_html -type d -print0 | xargs -0r chmod 755
3  find ~/public_html -type f -print0 | xargs -0r chmod 644

するがあるブラウザでのURL アクセスされることで しょうこのおそらくアクセスすぎるのでしょうえば Apache suexec サブシステムgroup ないし other されたスクリプトしません

使しているウェブサディレクトリCGI プログラムするようにされて いるりますFedora 7 システムにおける Apache 以下しま

1  <Directory /home/*/public_html>
2      AllowOverride FileInfo AuthConfig Limit
3      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
4      <Limit GET POST OPTIONS>
5          Order allow,deny
6          Allow from all
7      </Limit>
8      <LimitExcept GET POST OPTIONS>
9          Order deny,allow
10          Deny from all
11      </LimitExcept>
12  </Directory>

となる Apache ファイルたようなDirectory があるOptions してくださいExecCGI されていない覧末にこれをウェブサしてください

Apache CGI するのではなくCGI スクリプトそのものをしてきた以下があるな らばするなりするなりしてください

1  AddHandler cgi-script .cgi

ではPython バックトレされmercurial モジュインポimport きないえていることでしょうられていませんがウェブサCGI スクリプトうようになったの からはしていますインポができないエラシステムワイド利用Mercurial ではなくおそ らくインストした Mercurial しているにのみしますウェブサCGI プログラムする ログインセッション実施されているということをれないでください このエラしたPYTHONPATH になるようにhgweb.cgi してくださ

/path/to/repository つからないえる Python バックトレされることでしょ hgweb.cgi スクリプトして/path/to/repositoryしたいリポジトリへの絶対パスえてくだ さい

ここまでればウェブブラウザリロしたHTML されたリポジトリることがで きるですです

Configuring lighttpd

徹底的するためにこれまで Apache してしたのとまっている lighttpd ウェブリポジトリするためのしてみました Apache についてこれまでしてきたてのみですしそのどはウェブサしませんとしてファイルディレク トリであることとhgweb.cgi スクリプトみであることはある程度できま

Apache でのしていればlighttpd でのリポジトリえるならlighttpd 使する Apache するむべきとえますですmod_cgi および mod_userdir されていた これらをするためにまずはファイルmod_access セクションするがありますそのこれらのモジュ するためにファイルほどします

1  userdir.path = "public_html"
2  cgi.assign = ( ".cgi" => "" )

このによりlighttpd ディレクトリおよび CGI しますApache よりもlighttpd をしたと したらいなくApache したのとシステムレベルミスしたことでしょうしかし Apache 使10ありめての lighttpd 使ではあるもののApache よりも lighttpd のそれはしく あるとわれます

6.6.3 Sharing multiple repositories with one CGI script

リポジトリのみしかできないというのはhgweb.cgi スクリプトましいですスクリプ 11 なるするという方法よりはhgwebdir.cgi スクリプト使がおめです

hgwebdir.cgi hgweb.cgi よりもっていますまずめにスクリプトコピします Mercurial マスタリポジトリからhttp://www.selenic.com/repo/hg/raw-file/tip/hgwebdir.cgiダウン してください

public_html スクリプトとなるようにいます

1  cp .../hgwebdir.cgi ~/public_html
2  chmod 755 ~/public_html ~/public_html/hgwebdir.cgi

んだならブラウザhttp://myhostname/myuser/hgwebdir.cgiアクセスしてみましょうリポジ トリリストされるですされないかエラメッセされる6.6.2  した してください

hgwebdir.cgi スクリプトファイルとしますhgwebdir.cgi スクリプトディレクトリ されたhgweb.config ファイルもうとしますこのファイル生成してもしなければな りませんこのファイルWindows における “ini” ファイルのそれとじでPython ConfigParser [Pyt]により です

hgwebdir.cgi するにはcollections というセクションしてくださいこのセクション ることでけたディレクトリてのリポジトリしますこのセクション以下のようになりま

1  [collections]
2  /my/root = /my/root

Mercurial はこのするにたり=されたディレクトリリポジトリ= テキストする部分ウェブインタフェでのされるからしますった パスばれます

として /my/root/this/repo リポジトリがあるとしたCGI スクリプト/my/root 部分からパスとして this/repo リポジトリとしてしますCGI スクリプトURL http://myhostname/myuser/hgwebdir.cgi とするとこのリポジトリURL http://myhostname/myuser/hgwebdir.cgi/this/repo となりま

このでの/my/root から/my したhgwebdir.cgi リポジトリから/my のみをzyするの パスthis/repo ではなくroot/this/repo となります

hgwebdir.cgi ファイルcollectionsセクションされたディレクトリしてリポジトリ しますがつかったリポジトリからへの的探いません

collections くのリポジトリ“fire and forget” するのにしていますCGI ファイル りますんだならhgwebdir.cgi指示したディレクトリとのリポジトリうだけ リポジトリうことができます

Explicitly specifying which repositories to publish

hgwebdir.cgi スクリプトcollections によるみにえてによるリポジトリをすることもで きますこの方法でのをするには以下のようなpaths セクションするがありま

1  [paths]
2  repo1 = /my/path/to/some/repo
3  repo2 = /some/path/to/another

ではパスURL れるパス)、リポジトリへのパスとなりますパス ファイルシステムリポジトリにはしてください

ファイルcollections paths 使することもです

: パスリポジトリけられているhgwebdir.cgi エラ通知しませんそのわりにhgwebdir.cgi いはできないも のとなります

6.6.4 Downloading source archives

Mercurial ウェブインタフェリビジョンカイブダウンロすることがですこのカイブには リビジョンにおけるディレクトリスナップショットされますがリポジトリデ部分まれませ

このではされていますこのするにはallow_archive hgrcファイル[web] セクション してください12

6.6.5 Web configuration options

Mercurial ウェブインタフェhg serveコマンドおよびhgweb.cgi ないしhgwebdir.cgi スクリプトには ありますこれらの[web] セクションしています

allow_archive
Mercurial カイブダウンロするかかをこのしたウェブイ ンタフェ利用リポジトリリビジョンカイブダウンロできますこの するには以下されるびをallow_archive するがあります
bz2
bzip2 されたtar カイブこのられますがCPU 使します
gz
gzip されたtar カイブ
zip
LZW されたzip カイブこのりますがWindows では使されて います

しなかったりallow_archive そのものをしなかったカイブダウンロされます 利用てのカイブする以下します

1  [web]
2  allow_archive = bz2 gz zip
allowpull
ウェブインタフェでの HTTP しのhg pullおよびhg cloneするかかをする no ないし false されたウェブインタフェ部分のみがされま
contact
リポジトリするためのこのないし ングリストルアドレスですくのこのリポジトリ.hg/hgrc ファイルしますが リポジトリによりされているhgrcファイルするのもいでしょ
maxchanges
されるチェンジセット定値
maxfiles
されるファイル定値
stripes
ブルにおけるのためにいに 模様とするするかの
style
Mercurial ウェブインタフェする使するテンプレMercurial default およびgitweb つのウェ ブインタフェテンプレしていますえがいです)。カスタマイズしたテンプレ することもできます11  してくださいgitweb スタイル利用方法以下しま

1  [web]
2  style = gitweb
templates
テンプレトファイルディレクトリパスMercurial 定値ではインストディレクトリ ます

hgwebdir.cgi 使するつかのしては便性上hgrcファイルするわりにhgweb.config ファ イル[web] セクションすることができますmotd およびstyle です

Options specific to an individual repository

ないしhgrcファイルではなくリポジトリ.hg/hgrc すべき[web] セクションつかあり ます

description
リポジトリないしした
name
ウェブインタフェにおけるリポジトリこのリポジトリパス13 いた上書きします

Options specific to the “hg serve” command

hgrcファイル[web] セクションにおけるつかはhg serveコマンドです

accesslog
アクセスログファイルパスhg serveコマンドでのアクセスログファイ ではなくですログくのウェブサにおいて利用されるcombinedファイ されます
address
からの接続けるアドレスするではhg serveコマンドてのアドレス 接続けます
errorlog
エラログファイルパスhg serveコマンドでのエラログファイルでは なくエラです
ipv6
IPv6 プロトコル利用有無するでは IPv6 サポされません
port
hg serveコマンド接続ける TCP するでは8000 使 されます

Choosing the right hgrc file to add [web] items to

Apache lighttpd のようなウェブサリポジトリとはなるするがあるという すのでれないようにしてくださいウェブサによってされるhgweb.cgi のような CGI スクリプトウェブサ します

hgrcファイル[web] セクションしてもCGI スクリプトはそのみませんhgrcファイル したhg serveコマンドしたにのみしますCGI スクリ プトするにはウェブサされるムディレクトリhgrcファ イルしてするかあるいはシステムワイドhgrcファイルしてくださ