changeset 372:bc32663d557e

more collab.tex
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 08 Dec 2008 18:19:04 +0900
parents 3f9f9b087109
children 250ae1785828
files ja/collab.tex ja/todo.txt
diffstat 2 files changed, 205 insertions(+), 105 deletions(-) [+]
line wrap: on
line diff
--- a/ja/collab.tex	Mon Dec 08 12:30:31 2008 +0900
+++ b/ja/collab.tex	Mon Dec 08 18:19:04 2008 +0900
@@ -1218,78 +1218,127 @@
 \section{CGI$B$r;HMQ$7$?(BHTTP$B$K$h$k%5!<%S%9(B}
 \label{sec:collab:cgi}
 
-Depending on how ambitious you are, configuring Mercurial's CGI
-interface can take anything from a few moments to several hours.
+%Depending on how ambitious you are, configuring Mercurial's CGI
+%interface can take anything from a few moments to several hours.
+
+$B$I$NDxEY$N$3$H$rA@$&$+$K$h$C$F!$(BMercurial$B$N(BCGI$B%$%s%?%U%'!<%9$N@_Dj$K$O?t(B
+$BJ,$+$i?t;~4VDxEY$N;~4V$,$+$+$k!%(B
 
-We'll begin with the simplest of examples, and work our way towards a
-more complex configuration.  Even for the most basic case, you're
-almost certainly going to need to read and modify your web server's
-configuration.
+%We'll begin with the simplest of examples, and work our way towards a
+%more complex configuration.  Even for the most basic case, you're
+%almost certainly going to need to read and modify your web server's
+%configuration.
+
+$B$3$3$G$O:G$bC1=c$JNc$+$i;O$a$F!$$h$jJ#;($J@_Dj$X?J$s$G$$$/$3$H$K$7$h$&!%(B
+$B:G$bC1=c$J%1!<%9$G$b$*$=$i$/%&%'%V%5!<%P$N@_Dj$rD4$Y$FJQ99$9$kI,MW$,$"$k(B
+$B$@$m$&!%(B
 
 \begin{note}
-  Configuring a web server is a complex, fiddly, and highly
-  system-dependent activity.  I can't possibly give you instructions
-  that will cover anything like all of the cases you will encounter.
-  Please use your discretion and judgment in following the sections
-  below.  Be prepared to make plenty of mistakes, and to spend a lot
-  of time reading your server's error logs.
+%  Configuring a web server is a complex, fiddly, and highly
+%  system-dependent activity.  I can't possibly give you instructions
+%  that will cover anything like all of the cases you will encounter.
+%  Please use your discretion and judgment in following the sections
+%  below.  Be prepared to make plenty of mistakes, and to spend a lot
+%  of time reading your server's error logs.
+$B%&%'%V%5!<%P$N@_Dj$OJ#;($+$DLq2p$G%7%9%F%`0MB8$N:n6H$G$"$k!%(B
+$BFI<T$,Ax6x$9$k$9$Y$F$N%1!<%9$K$D$$$F<j0z$-$r$9$k$3$H$O$G$-$J$$$@$m$&!%(B
+$B0J2<$N%;%/%7%g%s$G$O!$FI$_$J$,$iFI<T<+?H$N;WN8$HH=CG$rF/$+$;$FM_$7$$!%(B
+$B$?$/$5$s$N%_%9$rHH$7!$%5!<%P$N%(%i!<%m%0$N2rFI$KB?$/$N;~4V$r3d$/$3$H$K$J(B
+$B$k$N$r4N$KLC$8$F$*$$$FM_$7$$!%(B
 \end{note}
 
 %\subsection{Web server configuration checklist}
 \subsection{Web$B%5!<%P@_Dj$N%A%'%C%/%j%9%H(B}
 
-Before you continue, do take a few moments to check a few aspects of
-your system's setup.
+%Before you continue, do take a few moments to check a few aspects of
+%your system's setup.
+$B$3$3$+$i@h$X?J$`A0$K!$FI<T$N%7%9%F%`$K$D$$$F3NG'$r$7$F$*$3$&!%(B
 
 \begin{enumerate}
-\item Do you have a web server installed at all?  Mac OS X ships with
-  Apache, but many other systems may not have a web server installed.
-\item If you have a web server installed, is it actually running?  On
-  most systems, even if one is present, it will be disabled by
-  default.
-\item Is your server configured to allow you to run CGI programs in
-  the directory where you plan to do so?  Most servers default to
-  explicitly disabling the ability to run CGI programs.
+%\item Do you have a web server installed at all?  Mac OS X ships with
+%  Apache, but many other systems may not have a web server installed.
+ \item $B%&%'%V%5!<%P$O$9$G$K%$%s%9%H!<%k$5$l$F$$$k$+!)(B Mac OS X$B$K$OI8=`$G(B
+       Apache$B$,%$%s%9%H!<%k$5$l$F$$$k$,!$B>$N%7%9%F%`$G$O%&%'%V%5!<%P$,(B
+       $B%$%s%9%H!<%k$5$l$F$$$J$$$3$H$b$"$k!%(B
+%\item If you have a web server installed, is it actually running?  On
+%  most systems, even if one is present, it will be disabled by
+%  default.
+ \item $B%&%'%V%5!<%P$,%$%s%9%H!<%k$5$l$F$$$k>l9g!$$9$G$KF0:n$7$F$$$k$+!)(B
+       $BB?$/$N%7%9%F%`$G$O!$%G%U%)%k%H$GDd;_$5$l$F$$$k!%(B
+%\item Is your server configured to allow you to run CGI programs in
+%  the directory where you plan to do so?  Most servers default to
+%  explicitly disabling the ability to run CGI programs.
+ \item $B%&%'%V%5!<%P$O(BCGI$B%W%m%0%i%`$rL\E*$N%G%#%l%/%H%j$GF0:n$G$-$k$h$&$K(B
+       $B@_Dj$5$l$F$$$k$+!)(B $BBgH>$N%5!<%P$G$O%G%U%)%k%H$G(BCGI$B%W%m%0%i%`$NF0(B
+       $B:n$rL@<(E*$K6X$8$F$$$k!%(B
 \end{enumerate}
 
-If you don't have a web server installed, and don't have substantial
-experience configuring Apache, you should consider using the
-\texttt{lighttpd} web server instead of Apache.  Apache has a
-well-deserved reputation for baroque and confusing configuration.
-While \texttt{lighttpd} is less capable in some ways than Apache, most
-of these capabilities are not relevant to serving Mercurial
-repositories.  And \texttt{lighttpd} is undeniably \emph{much} easier
-to get started with than Apache.
+%If you don't have a web server installed, and don't have substantial
+%experience configuring Apache, you should consider using the
+%\texttt{lighttpd} web server instead of Apache.  Apache has a
+%well-deserved reputation for baroque and confusing configuration.
+%While \texttt{lighttpd} is less capable in some ways than Apache, most
+%of these capabilities are not relevant to serving Mercurial
+%repositories.  And \texttt{lighttpd} is undeniably \emph{much} easier
+%to get started with than Apache.
+
+$B%&%'%V%5!<%P$,%$%s%9%H!<%k$5$l$F$$$J$$>l9g$d!$(BApach$B$N@_Dj$K==J,$J7P83$,$J(B
+$B$$>l9g$O!$(BApache$B$G$O$J$/(B\texttt{lighttpd}$B%&%'%V%5!<%P$r8!F$$7$?J}$,$h$$$@(B
+$B$m$&!%(BApache$B$O4q0[$G:.Mp$9$k@_Dj$G0-L>$,9b$$!%(B \texttt{lighttpd}$B$O(BApache
+$B$h$j$b$G$-$k$3$H$,>/$J$$$,!$$=$l$i$O(BMercurial$B%j%]%8%H%j$N%5!<%S%9$H$O4X78(B
+$B$,$J$$!%(B \texttt{lighttpd}$B$O(BApache$B$h$j$bL@$i$+$K4JC1$K;H$&$3$H$,$G$-$k!%(B
 
 %\subsection{Basic CGI configuration}
 \subsection{CGI$B$N4pK\E*$J@_Dj(B}
 
-On Unix-like systems, it's common for users to have a subdirectory
-named something like \dirname{public\_html} in their home directory,
-from which they can serve up web pages.  A file named \filename{foo}
-in this directory will be accessible at a URL of the form
-\texttt{http://www.example.com/\~username/foo}.
+%On Unix-like systems, it's common for users to have a subdirectory
+%named something like \dirname{public\_html} in their home directory,
+%from which they can serve up web pages.  A file named \filename{foo}
+%in this directory will be accessible at a URL of the form
+%\texttt{http://www.example.com/\~username/foo}.
+
+Unix$B7O%7%9%F%`$G$O!$%f!<%6$N%[!<%`%G%#%l%/%H%j$K%&%'%V%Z!<%8$r%5!<%S%9$9(B
+$B$k$?$a$N(B\dirname{public\_html}$B$H$$$&%5%V%G%#%l%/%H%j$,$"$k$3$H$,IaDL$G$"(B
+$B$k!%$3$N%G%#%l%/%H%jFb$N(B\filename{foo}$B$H$$$&%U%!%$%k$O(B
+\texttt{http://www.example.com/\~username/foo}$B$H$$$&(BURL$B$G%"%/%;%9$G$-$k!%(B
 
-To get started, find the \sfilename{hgweb.cgi} script that should be
-present in your Mercurial installation.  If you can't quickly find a
-local copy on your system, simply download one from the master
-Mercurial repository at
-\url{http://www.selenic.com/repo/hg/raw-file/tip/hgweb.cgi}.
+%To get started, find the \sfilename{hgweb.cgi} script that should be
+%present in your Mercurial installation.  If you can't quickly find a
+%local copy on your system, simply download one from the master
+%Mercurial repository at
+%\url{http://www.selenic.com/repo/hg/raw-file/tip/hgweb.cgi}.
 
-You'll need to copy this script into your \dirname{public\_html}
-directory, and ensure that it's executable.
+$B$^$:%$%s%9%H!<%k$5$l$F$$$k(BMercurial$B$+$i(B\sfilename{hgweb.cgi}$B%9%/%j%W%H$r(B
+$B8+$D$1$k!%$9$0$K%m!<%+%k%3%T!<$,8+$D$+$i$J$1$l$P!$(BMercurial$B$N%^%9%?!<%j(B
+$B%]%8%H%j(B \url{http://www.selenic.com/repo/hg/raw-file/tip/hgweb.cgi} $B$+(B
+$B$i%@%&%s%m!<%I$9$k!%(B
+
+%You'll need to copy this script into your \dirname{public\_html}
+%directory, and ensure that it's executable.
+
+$B$3$N%9%/%j%W%H$r(B\dirname{public\_html}$B%G%#%l%/%H%j$K%3%T!<$7!$%U%!%$%k$,(B
+$B<B9T2DG=$G$"$k$+$r%A%'%C%/$9$k!%(B
 \begin{codesample2}
   cp .../hgweb.cgi ~/public_html
   chmod 755 ~/public_html/hgweb.cgi
 \end{codesample2}
-The \texttt{755} argument to \command{chmod} is a little more general
-than just making the script executable: it ensures that the script is
-executable by anyone, and that ``group'' and ``other'' write
-permissions are \emph{not} set.  If you were to leave those write
-permissions enabled, Apache's \texttt{suexec} subsystem would likely
-refuse to execute the script.  In fact, \texttt{suexec} also insists
-that the \emph{directory} in which the script resides must not be
-writable by others.
+%The \texttt{755} argument to \command{chmod} is a little more general
+%than just making the script executable: it ensures that the script is
+%executable by anyone, and that ``group'' and ``other'' write
+%permissions are \emph{not} set.  If you were to leave those write
+%permissions enabled, Apache's \texttt{suexec} subsystem would likely
+%refuse to execute the script.  In fact, \texttt{suexec} also insists
+%that the \emph{directory} in which the script resides must not be
+%writable by others.
+
+\command{chmod}$B%3%^%s%I$X(B\texttt{755}$B$rEO$9$H!$%9%/%j%W%H$O<B9T2DG=$h$j$b(B
+$B<c430lHLE*$K$J$k!%%9%/%j%W%H$OC/$+$i$b<B9T2DG=$@$,!$(B``group''$B$H(B``other''
+$B$N%f!<%6$+$i$O=q$-9~$a$J$/$J$k!%=q$-9~$_%Q!<%_%C%7%g%s$,M-8z$G$"$k(B
+$B$H!$(BApache$B$N(B\texttt{suexec}$B%5%V%7%9%F%`$O%9%/%j%W%H$N<B9T$r5qH]$9$k2DG=@-(B
+$B$,9b$$!%<B:]$N$H$3$m!$(B\texttt{suexec}$B$O$5$i$K%9%/%j%W%H$NCV$+$l$F$$$k(B
+\emph{$B%G%#%l%/%H%j(B}$B$,B>$N%f!<%6$N=q$-9~$_$r5qH]$9$k@_Dj$G$"$k$3$H$rMW5a$9(B
+$B$k!%(B
+
 \begin{codesample2}
   chmod 755 ~/public_html
 \end{codesample2}
@@ -1298,44 +1347,71 @@
 \subsubsection{$B$I$3$,LdBj$H@.$jF@$k$+(B?}
 \label{sec:collab:wtf}
 
-Once you've copied the CGI script into place, go into a web browser,
-and try to open the URL \url{http://myhostname/~myuser/hgweb.cgi},
-\emph{but} brace yourself for instant failure.  There's a high
-probability that trying to visit this URL will fail, and there are
-many possible reasons for this.  In fact, you're likely to stumble
-over almost every one of the possible errors below, so please read
-carefully.  The following are all of the problems I ran into on a
-system running Fedora~7, with a fresh installation of Apache, and a
-user account that I created specially to perform this exercise.
+%Once you've copied the CGI script into place, go into a web browser,
+%and try to open the URL \url{http://myhostname/~myuser/hgweb.cgi},
+%\emph{but} brace yourself for instant failure.  There's a high
+%probability that trying to visit this URL will fail, and there are
+%many possible reasons for this.  In fact, you're likely to stumble
+%over almost every one of the possible errors below, so please read
+%carefully.  The following are all of the problems I ran into on a
+%system running Fedora~7, with a fresh installation of Apache, and a
+%user account that I created specially to perform this exercise.
+
+CGI$B%9%/%j%W%H$r=jDj$N>l=j$K%3%T!<$7$?$i!$%&%'%V%V%i%&%6$r5/F0$7$F(B
+\url{http://myhostname/~myuser/hgweb.cgi} $B$r3+$/!%$7$+$7$3$N(BURL$B$K%"%/%;%9(B
+$B$7$F$b%(%i!<$,$G$k2DG=@-$,9b$$$N$G!$Mn$ACe$$$FM_$7$$!%%(%i!<$K$OB?$/$NM}(B
+$BM3$,9M$($i$l!$<B:]!$$=$N$9$Y$F$K0z$C3]$+$C$F$$$k2DG=@-$,9b$$$N$G!$0J2<$N(B
+$B5-=R$rCm0U?<$/FI$s$GM_$7$$!%$3$3$K5s$2$?$N$O!$(BFedora~7$B$G!$?75,$K%$%s%9%H!<(B
+$B%k$5$l$?(BApache$B$H!$$3$NNcBj$N$?$a$K?75,$K:n@.$7$?%f!<%6%"%+%&%s%H$GI.<T$,(B
+$B<B:]$K$GAx6x$7$?LdBj$G$"$k!%(B
 
-Your web server may have per-user directories disabled.  If you're
-using Apache, search your config file for a \texttt{UserDir}
-directive.  If there's none present, per-user directories will be
-disabled.  If one exists, but its value is \texttt{disabled}, then
-per-user directories will be disabled.  Otherwise, the string after
-\texttt{UserDir} gives the name of the subdirectory that Apache will
-look in under your home directory, for example \dirname{public\_html}.
+%Your web server may have per-user directories disabled.  If you're
+%using Apache, search your config file for a \texttt{UserDir}
+%directive.  If there's none present, per-user directories will be
+%disabled.  If one exists, but its value is \texttt{disabled}, then
+%per-user directories will be disabled.  Otherwise, the string after
+%\texttt{UserDir} gives the name of the subdirectory that Apache will
+%look in under your home directory, for example \dirname{public\_html}.
 
-Your file access permissions may be too restrictive.  The web server
-must be able to traverse your home directory and directories under
-your \dirname{public\_html} directory, and read files under the latter
-too.  Here's a quick recipe to help you to make your permissions more
-appropriate.
+$B%&%'%V%5!<%P$O%f!<%6Kh$N%G%#%l%/%H%j%5!<%S%9$r6X;_$5$l$F$$$k$+$b$7$l$J$$!%(B
+Apache$B$r;H$C$F$$$k>l9g!$@_Dj%U%!%$%k$N(B\texttt{UserDir}$B%G%#%l%/%F%#%V$r(B
+$B%A%'%C%/$9$k!%$b$7B8:_$7$J$1$l$P!$%f!<%6Kh$N%G%#%l%/%H%j%5!<%S%9$O6X;_$5(B
+$B$l$F$$$k!%B8:_$7$F$b!$CM$,(B\texttt{disabled}$B$K@_Dj$5$l$F$$$l$P!$%f!<%6Kh$N(B
+$B%G%#%l%/%H%j%5!<%S%9$O6X;_$G$"$k!%$^$?!$(B\texttt{UserDir}$B%G%#%l%/%F%#%V$O(B
+Apache$B$,%5!<%S%9MQ$KC5$9%[!<%`%G%#%l%/%H%jFb$N%5%V%G%#%l%/%H%j$r;XDj$9(B
+$B$k!%E57?E*$JNc$O(B\dirname{public\_html}$B$G$"$k!%(B
+
+%Your file access permissions may be too restrictive.  The web server
+%must be able to traverse your home directory and directories under
+%your \dirname{public\_html} directory, and read files under the latter
+%too.  Here's a quick recipe to help you to make your permissions more
+%appropriate.
+$B%U%!%$%k%"%/%;%9%Q!<%_%C%7%g%s$,$-$D$9$.$k!%%&%'%V%5!<%P$O%[!<%`%G%#%l%/(B
+$B%H%j$H(B\dirname{public\_html}$BFb$N%G%#%l%/%H%j$rEO$C$F%U%!%$%k$rFI$a$J$1$l(B
+$B$P$J$i$J$$!%%Q!<%_%C%7%g%s$rE,@Z$K@_Dj$9$k$K$ONc$($P<!$N$h$&$K$9$l$P$h$$!%(B
 \begin{codesample2}
   chmod 755 ~
   find ~/public_html -type d -print0 | xargs -0r chmod 755
   find ~/public_html -type f -print0 | xargs -0r chmod 644
 \end{codesample2}
 
-The other possibility with permissions is that you might get a
-completely empty window when you try to load the script.  In this
-case, it's likely that your access permissions are \emph{too
-  permissive}.  Apache's \texttt{suexec} subsystem won't execute a
-script that's group-~or world-writable, for example.
+%The other possibility with permissions is that you might get a
+%completely empty window when you try to load the script.  In this
+%case, it's likely that your access permissions are \emph{too
+%  permissive}.  Apache's \texttt{suexec} subsystem won't execute a
+%script that's group-~or world-writable, for example.
 
-Your web server may be configured to disallow execution of CGI
-programs in your per-user web directory.  Here's Apache's
-default per-user configuration from my Fedora system.
+$B%Q!<%_%C%7%g%s$K4X$9$k$=$NB>$N2DG=@-$H$7$F!$%9%/%j%W%H$r%m!<%I$7$h$&$H$9(B
+$B$k$H6u$N%&%#%s%I%&$,I=<($5$l$kLdBj$,$"$k!%$3$N>l9g$O!$%Q!<%_%C%7%g%s@_Dj(B
+$B$,(B\emph{$B4K$9$.$k(B}$B2DG=@-$,9b$$!%Nc$($P(BApache$B$N(B\texttt{suexec}$B%5%V%7%9%F%`(B
+$B$O!$%0%k!<%W$dA4@$3&$+$i=q$-9~$_$N$G$-$k%9%/%j%W%H$r<B9T$7$J$$!%(B
+
+%Your web server may be configured to disallow execution of CGI
+%programs in your per-user web directory.  Here's Apache's
+%default per-user configuration from my Fedora system.
+$B%&%'%V%5!<%P$O(BCGI$B%W%m%0%i%`$N<B9T$r6X;_$9$k$h$&$K@_Dj$5$l$F$$$k$+$b$7$l(B
+$B$J$$!%Cx<T$N(BFedora$B%7%9%F%`$+$i!$(BApache$B$N%f!<%6Kh$N%G%U%)%k%H@_Dj$rNc$H$7(B
+$B$F<($9!%(B
 \begin{codesample2}
   <Directory /home/*/public_html>
       AllowOverride FileInfo AuthConfig Limit
@@ -1350,38 +1426,62 @@
       </LimitExcept>
   </Directory>
 \end{codesample2}
-If you find a similar-looking \texttt{Directory} group in your Apache
-configuration, the directive to look at inside it is \texttt{Options}.
-Add \texttt{ExecCGI} to the end of this list if it's missing, and
-restart the web server.
+%If you find a similar-looking \texttt{Directory} group in your Apache
+%configuration, the directive to look at inside it is \texttt{Options}.
+%Add \texttt{ExecCGI} to the end of this list if it's missing, and
+%restart the web server.
 
-If you find that Apache serves you the text of the CGI script instead
-of executing it, you may need to either uncomment (if already present)
-or add a directive like this.
+Apache$B@_Dj$NCf$KF1MM$N(B\texttt{Directory}$B%0%k!<%W$,$"$k>l9g!$$=$NCf$GCmL\(B
+$B$9$Y$-%G%#%l%/%F%#%V$O(B\texttt{Options}$B$G$"$k!%(B \texttt{ExecCGI}$B$,%j%9%H$K(B
+$BL5$1$l$P:G8e$KDI2C$7!$%&%'%V%5!<%P$r:F5/F0$9$k!%(B
+
+%If you find that Apache serves you the text of the CGI script instead
+%of executing it, you may need to either uncomment (if already present)
+%or add a directive like this.
+Apache$B$,(BCGI$B%9%/%j%W%H$r<B9T$9$k$N$G$O$J$/!$%9%/%j%W%H<+BN$N%F%-%9%H$rAw$C(B
+$B$F$/$k>l9g$O!$0J2<$N%G%#%l%/%F%#%V$rDI2C$9$k$+!$$9$G$KB8:_$7$F%3%a%s%H%"(B
+$B%&%H$5$l$F$$$l$P!$%"%s%3%a%s%H$9$k!%(B
 \begin{codesample2}
   AddHandler cgi-script .cgi
 \end{codesample2}
 
-The next possibility is that you might be served with a colourful
-Python backtrace claiming that it can't import a
-\texttt{mercurial}-related module.  This is actually progress!  The
-server is now capable of executing your CGI script.  This error is
-only likely to occur if you're running a private installation of
-Mercurial, instead of a system-wide version.  Remember that the web
-server runs the CGI program without any of the environment variables
-that you take for granted in an interactive session.  If this error
-happens to you, edit your copy of \sfilename{hgweb.cgi} and follow the
-directions inside it to correctly set your \envar{PYTHONPATH}
-environment variable.
+%The next possibility is that you might be served with a colourful
+%Python backtrace claiming that it can't import a
+%\texttt{mercurial}-related module.  This is actually progress!  The
+%server is now capable of executing your CGI script.  This error is
+%only likely to occur if you're running a private installation of
+%Mercurial, instead of a system-wide version.  Remember that the web
+%server runs the CGI program without any of the environment variables
+%that you take for granted in an interactive session.  If this error
+%happens to you, edit your copy of \sfilename{hgweb.cgi} and follow the
+%directions inside it to correctly set your \envar{PYTHONPATH}
+%environment variable.
 
-Finally, you are \emph{certain} to by served with another colourful
-Python backtrace: this one will complain that it can't find
-\dirname{/path/to/repository}.  Edit your \sfilename{hgweb.cgi} script
-and replace the \dirname{/path/to/repository} string with the complete
-path to the repository you want to serve up.
+$B<!$N2DG=@-$O(B\texttt{mercurial}$B$K4XO"$7$?(Bmodule$B$,%$%s%]!<%H$G$-$J$$$3$H$r(B
+$B7Y9p$9$k%+%i%U%k$J(BPython$B%P%C%/%H%l!<%9$,8+$($k$3$H$@!%$3$l$OA0?J$H8@$((B
+$B$k!%%5!<%P$O(BCGI$B%9%/%j%W%H$r<B9T$G$-$k$h$&$K$J$C$?!%$3$N%(%i!<$O(BMercurial
+$B$r%7%9%F%`%o%$%I$K%$%s%9%H!<%k$9$k$N$G$O$J$/!$%W%i%$%Y!<%H%$%s%9%H!<%k$7(B
+$B$?>l9g$K$N$_5/$-$k!%BPOCE*$J%;%C%7%g%s$H$O0[$J$j!$%&%'%V%5!<%P$O(BCGI$B%W%m%0(B
+$B%i%`$r4D6-JQ?t$J$7$G5/F0$9$k!%$3$N%(%i!<$,5/$-$?>l9g$O(B
+\sfilename{hgweb.cgi}$B$rJT=8$7!$4D6-JQ?t(B\envar{PYTHONPATH}$B$,%;%C%H$5$l$k$h(B
+$B$&$K$9$k!%(B
 
-At this point, when you try to reload the page, you should be
-presented with a nice HTML view of your repository's history.  Whew!
+%Finally, you are \emph{certain} to by served with another colourful
+%Python backtrace: this one will complain that it can't find
+%\dirname{/path/to/repository}.  Edit your \sfilename{hgweb.cgi} script
+%and replace the \dirname{/path/to/repository} string with the complete
+%path to the repository you want to serve up.
+
+$B:#EY$O(B\emph{$B$*$=$i$/(B}$B%+%i%U%k$J(BPython$B$N%P%C%/%H%l!<%9$,8+$($k$O$:$@!%$3$l(B
+$B$O(B\dirname{/path/to/repository}$B$,8+$D$+$i$J$$$3$H$r7Y9p$7$F$$$k!%(B
+\sfilename{hgweb.cgi}$B%9%/%j%W%H$rJT=8$7!$(B\dirname{/path/to/repository}$B$H(B
+$B$$$&J8;zNs$r!$%5!<%S%9$7$?$$%j%]%8%H%j$X$N40A4$J%Q%9$KCV$-49$($k!%(B
+
+%At this point, when you try to reload the page, you should be
+%presented with a nice HTML view of your repository's history.  Whew!
+
+$B$3$3$G%Z!<%8$r%j%m!<%I$9$k$H!$%j%]%8%H%j$NMzNr$rI=$9H~$7$$(BHTML$B$,8+$($k$O(B
+$B$:$@!%$d$C$?!*(B
 
 %\subsubsection{Configuring lighttpd}
 \subsubsection{lighttpd$B$N@_Dj(B}
--- a/ja/todo.txt	Mon Dec 08 12:30:31 2008 +0900
+++ b/ja/todo.txt	Mon Dec 08 18:19:04 2008 +0900
@@ -1,7 +1,7 @@
 		translate	proofread
 00book.tex	100%
 branch.tex	100%
-collab.tex	50%
+collab.tex	70%
 concepts.tex
 daily.tex	2%
 filenames.tex	100%