Mercurial > hgbook
changeset 371:3f9f9b087109
more collab.tex
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 08 Dec 2008 12:30:31 +0900 |
parents | 47830e17cd00 |
children | bc32663d557e |
files | ja/collab.tex |
diffstat | 1 files changed, 210 insertions(+), 110 deletions(-) [+] |
line wrap: on
line diff
--- a/ja/collab.tex Mon Dec 08 02:34:26 2008 +0900 +++ b/ja/collab.tex Mon Dec 08 12:30:31 2008 +0900 @@ -958,67 +958,118 @@ %\subsection{Configuring the server side properly} \subsection{$B%5!<%P$N@5$7$$@_Dj(B} -Because ssh can be fiddly to set up if you're new to it, there's a -variety of things that can go wrong. Add Mercurial on top, and -there's plenty more scope for head-scratching. Most of these -potential problems occur on the server side, not the client side. The -good news is that once you've gotten a configuration working, it will -usually continue to work indefinitely. +%Because ssh can be fiddly to set up if you're new to it, there's a +%variety of things that can go wrong. Add Mercurial on top, and +%there's plenty more scope for head-scratching. Most of these +%potential problems occur on the server side, not the client side. The +%good news is that once you've gotten a configuration working, it will +%usually continue to work indefinitely. + +ssh$B$O47$l$F$$$J$$$H@_Dj$,Fq$7$$$?$a!$4V0c$$$rHH$9M>CO$O$$$?$k=j$K$"$k!%(B +Mercurial$B$H6&$KF0$+$9>l9g!$$5$i$KB?$/$,BT$A9=$($F$$$k!%$3$l$i$NKX$s$I$,%/(B +$B%i%$%"%s%HB&$G$O$J$/%5!<%PB&$G5/$-$k!%$7$+$70lEY$-$A$s$HF0:n$9$k@_Dj$r$7(B +$B$F$7$^$($P!$F0:n$O$:$C$HB3$/!%(B -Before you try using Mercurial to talk to an ssh server, it's best to -make sure that you can use the normal \command{ssh} or \command{putty} -command to talk to the server first. If you run into problems with -using these commands directly, Mercurial surely won't work. Worse, it -will obscure the underlying problem. Any time you want to debug -ssh-related Mercurial problems, you should drop back to making sure -that plain ssh client commands work first, \emph{before} you worry -about whether there's a problem with Mercurial. +%Before you try using Mercurial to talk to an ssh server, it's best to +%make sure that you can use the normal \command{ssh} or \command{putty} +%command to talk to the server first. If you run into problems with +%using these commands directly, Mercurial surely won't work. Worse, it +%will obscure the underlying problem. Any time you want to debug +%ssh-related Mercurial problems, you should drop back to making sure +%that plain ssh client commands work first, \emph{before} you worry +%about whether there's a problem with Mercurial. -The first thing to be sure of on the server side is that you can -actually log in from another machine at all. If you can't use -\command{ssh} or \command{putty} to log in, the error message you get -may give you a few hints as to what's wrong. The most common problems -are as follows. +Mercurial$B$+$i(Bssh$B%5!<%P$K@\B3$9$kA0$K!$(B\command{ssh}$B$^$?$O(B\command{putty} +$B%3%^%s%I$r;H$C$F%5!<%P$K@\B3$7$F$_$k$3$H$r4+$a$k!%$3$l$i$N%3%^%s%I$rD>@\(B +$B;H$C$FLdBj$,5/$-$k$h$&$G$"$l$P!$(BMercurial$B$OF0:n$7$J$$$O$:$@!%(B ssh$B$N>e$G(B +Mercurial$B$r;H$&$3$H$G!$2<0L$NLdBj$,1#$l$F$7$^$&$N$G!$(Bssh$B$K4XO"$7$?(B +Mercurial$B$NLdBj$r%G%P%C%0$9$k;~$O!$$^$:(Bssh$B%/%i%$%"%s%H%3%^%s%I<+BN$,F0:n(B +$B$9$k$3$H$r3NG'$7!$$=$N8e$K(BMercurial$B$NLdBj$r2r7h$9$Y$-$G$"$k!%(B + +%The first thing to be sure of on the server side is that you can +%actually log in from another machine at all. If you can't use +%\command{ssh} or \command{putty} to log in, the error message you get +%may give you a few hints as to what's wrong. The most common problems +%are as follows. + +$B%5!<%PB&$G$^$:3NG'$9$Y$-$J$N$O!$B>$N%^%7%s$+$i%m%0%$%s$G$-$k$+$I$&$+$G$"(B +$B$k!%(B \command{ssh}$B$^$?$O(B\command{putty}$B%3%^%s%I$G%m%0%$%s$G$-$J$$>l9g$O!$(B +$B%(%i!<%a%C%;!<%8$K2?$,0-$$$N$+<($9%R%s%H$,$"$k$+$bCN$l$J$$!%:G$b0lHLE*$J(B +$BLdBj$r0J2<$KNs5s$9$k!%(B \begin{itemize} -\item If you get a ``connection refused'' error, either there isn't an - SSH daemon running on the server at all, or it's inaccessible due to - firewall configuration. -\item If you get a ``no route to host'' error, you either have an - incorrect address for the server or a seriously locked down firewall - that won't admit its existence at all. -\item If you get a ``permission denied'' error, you may have mistyped - the username on the server, or you could have mistyped your key's - passphrase or the remote user's password. +%\item If you get a ``connection refused'' error, either there isn't an +% SSH daemon running on the server at all, or it's inaccessible due to +% firewall configuration. + \item ``connection refused''$B%(%i!<$,=P$k;~$O!$(BSSH$B%G!<%b%s$,F0:n$7$F$$$J(B + $B$$$+!$%U%!%$%"%&%)!<%k@_Dj$N$?$a$K%^%7%s$X$N%"%/%;%9$,IT2DG=$G$"(B + $B$k2DG=@-$,$"$k!%(B +%\item If you get a ``no route to host'' error, you either have an +% incorrect address for the server or a seriously locked down firewall +% that won't admit its existence at all. + \item ``no route to host''$B%(%i!<$,=P$k>l9g$O!$%5!<%P$N%"%I%l%9$r4V0c$((B + $B$F$$$k$+!$%U%!%$%"%&%)!<%k$,%5!<%P$r40A4$K1#$7$F$7$^$C$F$$$k$3$H(B + $B$,9M$($i$l$k!%(B +%\item If you get a ``permission denied'' error, you may have mistyped +% the username on the server, or you could have mistyped your key's +% passphrase or the remote user's password. + \item ``permission denied''$B%(%i!<$,=P$k>l9g$O!$%f!<%6L>$r4V0c$C$FF~NO$7(B + $B$F$$$k$+!$%m%0%$%sMQ80$N%Q%9%U%l!<%:$d%f!<%6%Q%9%o!<%I$r4V0c$C$F(B + $BF~NO$7$F$$$k2DG=@-$,$"$k!%(B \end{itemize} -In summary, if you're having trouble talking to the server's ssh -daemon, first make sure that one is running at all. On many systems -it will be installed, but disabled, by default. Once you're done with -this step, you should then check that the server's firewall is -configured to allow incoming connections on the port the ssh daemon is -listening on (usually~22). Don't worry about more exotic -possibilities for misconfiguration until you've checked these two -first. +%In summary, if you're having trouble talking to the server's ssh +%daemon, first make sure that one is running at all. On many systems +%it will be installed, but disabled, by default. Once you're done with +%this step, you should then check that the server's firewall is +%configured to allow incoming connections on the port the ssh daemon is +%listening on (usually~22). Don't worry about more exotic +%possibilities for misconfiguration until you've checked these two +%first. + +$B$^$H$a$k$H!$%5!<%P$N(Bssh$B%G!<%b%s$X@\B3$9$k:]$K$O!$$^$:%G!<%b%s$,F0:n$7$F$$(B +$B$k$+$r3NG'$9$k$3$H!%%G%U%)%k%H$G%$%s%9%H!<%k$5$l$F$O$$$k$,!$Dd;_$5$l$F$$(B +$B$k%7%9%F%`$b$"$k!%$3$l$r3NG'$7$?8e$G%5!<%P$N%U%!%$%"%&%)!<%k$,(Bssh$B%G!<%b%s(B +$B$NBT5!$7$F$k%]!<%H!JDL>o$O(B22$BHV!K$X$N@\B3$r5v2D$7$F$$$k$+3NG'$9$k!%B>$N=t!9(B +$B$N2DG=@-$r9M$($kA0$K$^$:$3$N(B2$BE@$r3NG'$9$Y$-$G$"$k!%(B -If you're using an authentication agent on the client side to store -passphrases for your keys, you ought to be able to log into the server -without being prompted for a passphrase or a password. If you're -prompted for a passphrase, there are a few possible culprits. +%If you're using an authentication agent on the client side to store +%passphrases for your keys, you ought to be able to log into the server +%without being prompted for a passphrase or a password. If you're +%prompted for a passphrase, there are a few possible culprits. + +$B%/%i%$%"%s%HB&$G80$N%Q%9%U%l!<%:$r5-21$5$;$k$?$a$KG'>Z%(!<%8%'%s%H$rF0$+(B +$B$7$F$$$k$J$i!$%Q%9%U%l!<%:$d%Q%9%o!<%I$NF~NO$rB%$5$l$k$3$H$J$7$K%5!<%P$K(B +$B%m%0%$%s$G$-$k$O$:$@!%$b$7%Q%9%U%l!<%:$NF~NO$rMW5a$5$l$k$J$i!$$$$/$D$+$N(B +$B2DG=@-$,9M$($i$l$k!%(B \begin{itemize} -\item You might have forgotten to use \command{ssh-add} or - \command{pageant} to store the passphrase. -\item You might have stored the passphrase for the wrong key. +%\item You might have forgotten to use \command{ssh-add} or +% \command{pageant} to store the passphrase. + \item $B%Q%9%U%l!<%:$r5-21$5$;$k$?$a$K(B\command{ssh-add}$B$^$?$O(B + \command{pageant}$B$r<B9T$7$F$$$J$$!%(B +%\item You might have stored the passphrase for the wrong key. + \item $BJL$N%-!<$N%Q%9%U%l!<%:$r5-21$5$;$F$$$k!%(B \end{itemize} -If you're being prompted for the remote user's password, there are -another few possible problems to check. +%If you're being prompted for the remote user's password, there are +%another few possible problems to check. +$B%j%b!<%H%f!<%6$N%Q%9%o!<%I$rMW5a$5$l$k>l9g$OJL$NLdBj$,$"$k$+$b$7$l$J$$!%(B \begin{itemize} -\item Either the user's home directory or their \sdirname{.ssh} - directory might have excessively liberal permissions. As a result, - the ssh daemon will not trust or read their - \sfilename{authorized\_keys} file. For example, a group-writable - home or \sdirname{.ssh} directory will often cause this symptom. -\item The user's \sfilename{authorized\_keys} file may have a problem. - If anyone other than the user owns or can write to that file, the - ssh daemon will not trust or read it. +%\item Either the user's home directory or their \sdirname{.ssh} +% directory might have excessively liberal permissions. As a result, + +% the ssh daemon will not trust or read their +% \sfilename{authorized\_keys} file. For example, a group-writable +% home or \sdirname{.ssh} directory will often cause this symptom. + \item $B%f!<%6$N%[!<%`%G%#%l%/%H%j$^$?$O(B\sdirname{.ssh}$B%G%#%l%/%H%j$N%Q!<(B + $B%_%C%7%g%s$,4K$9$.$k!%$3$N$?$a!$(Bssh$B%G!<%b%s$,(B + \sfilename{authorized\_keys}\sfilename{authorized\_keys}$B%U%!%$%k$r(B + $B?.Mj$G$-$J$$$+!$$"$k$$$OC1=c$KFI$a$J$$!%Nc$($P%0%k!<%W=q$-9~$_%Q!<(B + $B%_%C%7%g%s$N$"$k%[!<%`%G%#%l%/%H%j$^$?$O(B\sdirname{.ssh}$B%G%#%l%/%H(B + $B%j$O$3$NLdBj$r$7$P$7$P0z$-5/$3$9!%(B +%\item The user's \sfilename{authorized\_keys} file may have a problem. +% If anyone other than the user owns or can write to that file, the +% ssh daemon will not trust or read it. + \item $B%f!<%6$N(B\sfilename{authorized\_keys}$B%U%!%$%k$KLdBj$,$"$k!%%U%!%$(B + $B%k$N=jM-<T$,JL$N%f!<%6$@$C$?$j!$B>$N%f!<%6$,=q$-9~$_$G$-$k>l9g$O(B + ssh$B%G!<%b%s$O$3$N%U%!%$%k$r?.Mj$;$:!$FI$_9~$^$J$$!%(B \end{itemize} %In the ideal world, you should be able to run the following command @@ -1029,50 +1080,84 @@ ssh myserver date \end{codesample2} -If, on your server, you have login scripts that print banners or other -junk even when running non-interactive commands like this, you should -fix them before you continue, so that they only print output if -they're run interactively. Otherwise these banners will at least -clutter up Mercurial's output. Worse, they could potentially cause -problems with running Mercurial commands remotely. Mercurial makes -tries to detect and ignore banners in non-interactive \command{ssh} -sessions, but it is not foolproof. (If you're editing your login -scripts on your server, the usual way to see if a login script is -running in an interactive shell is to check the return code from the -command \Verb|tty -s|.) +%If, on your server, you have login scripts that print banners or other +%junk even when running non-interactive commands like this, you should +%fix them before you continue, so that they only print output if +%they're run interactively. Otherwise these banners will at least +%clutter up Mercurial's output. Worse, they could potentially cause +%problems with running Mercurial commands remotely. Mercurial makes +%tries to detect and ignore banners in non-interactive \command{ssh} +%sessions, but it is not foolproof. (If you're editing your login +%scripts on your server, the usual way to see if a login script is +%running in an interactive shell is to check the return code from the +%command \Verb|tty -s|.) -Once you've verified that plain old ssh is working with your server, -the next step is to ensure that Mercurial runs on the server. The -following command should run successfully: +$B%5!<%P$G!$%P%J!<$d$=$NB>$N0UL#$N$J$$J8;zNs$rI=<($9$k$h$&$J%m%0%$%s%9%/%j(B +$B%W%H$r;H$C$F$$$k>l9g!$BPOCE*$J%3%^%s%I0J30$G$O$3$l$i$rI=<($7$J$$$h$&$K$9(B +$B$k!%$3$l$i$NJ8;zNs$O(BMercurial$B$N=PNO$K:.F~$7$F$7$^$$!$(BMercurial$B%3%^%s%I$r(B +$B%j%b!<%H<B9T$9$kK8$2$H$J$k!%(B +Mercurial$B$OHsBPOCE*$J(B\command{ssh}$B$G$O$3$l$i$N%P%J!<$r8!=P$7!$L5;k$7$h$&(B +$B$H;n$_$k$,!$$3$l$OK|A4$G$O$J$$!%!J%5!<%P$N%m%0%$%s%9%/%j%W%H$rJT=8$9$k>l(B +$B9g!$%m%0%$%s%9%/%j%W%H$,BPOCE*%7%'%k$GF0:n$7$F$$$k$+$rCN$kJ}K!$H$7(B +$B$F!$(B\Verb|tty -s|$B%3%^%s%I$N%j%?!<%s%3!<%I$r%A%'%C%/$9$kJ}K!$,$"$k!%!K(B + +%Once you've verified that plain old ssh is working with your server, +%the next step is to ensure that Mercurial runs on the server. The +%following command should run successfully: +ssh$BC1BN$G%5!<%P$K@\B3$G$-$k$3$H$r3NG'$7$?$i!$(BMercurial$B$,%5!<%P$GF0:n$9$k(B +$B$3$H$r3NG'$9$k!%<!$N%3%^%s%I$,F0$/$+$I$&$+D4$Y$F$_$h$&!'(B \begin{codesample2} ssh myserver hg version \end{codesample2} -If you see an error message instead of normal \hgcmd{version} output, -this is usually because you haven't installed Mercurial to -\dirname{/usr/bin}. Don't worry if this is the case; you don't need -to do that. But you should check for a few possible problems. +%If you see an error message instead of normal \hgcmd{version} output, +%this is usually because you haven't installed Mercurial to +%\dirname{/usr/bin}. Don't worry if this is the case; you don't need +%to do that. But you should check for a few possible problems. +\hgcmd{version}$B$N=PNO$G$O$J$/%(%i!<%a%C%;!<%8$,I=<($5$l$k$H$-(B +$B$O!$(B\dirname{/usr/bin}$B$K(BMercurial$B$,%$%s%9%H!<%k$5$l$F$$$J$$$3$H$,B?$$!%(B +$B$3$N>l9g!$(B\dirname{/usr/bin}$B$K%$%s%9%H!<%k$7D>$9I,MW$O$J$$!%$=$NBe$o$j!$(B +$B$$$/$D$+$NLdBj$r%A%'%C%/$9$Y$-$G$"$k!%(B \begin{itemize} -\item Is Mercurial really installed on the server at all? I know this - sounds trivial, but it's worth checking! -\item Maybe your shell's search path (usually set via the \envar{PATH} - environment variable) is simply misconfigured. -\item Perhaps your \envar{PATH} environment variable is only being set - to point to the location of the \command{hg} executable if the login - session is interactive. This can happen if you're setting the path - in the wrong shell login script. See your shell's documentation for - details. -\item The \envar{PYTHONPATH} environment variable may need to contain - the path to the Mercurial Python modules. It might not be set at - all; it could be incorrect; or it may be set only if the login is - interactive. +%\item Is Mercurial really installed on the server at all? I know this +% sounds trivial, but it's worth checking! + \item $B%5!<%P$K(BMercurial$B$OK\Ev$K%$%s%9%H!<%k$5$l$F$$$k$+!)(B $B$3$l$O2<$i$J(B + $B$$Ld$$$N$h$&$K;W$($k$,!$3NG'$9$k2ACM$O$"$k!%(B +%\item Maybe your shell's search path (usually set via the \envar{PATH} +% environment variable) is simply misconfigured. + \item $B%7%'%k$N%5!<%A%Q%9$,@5$7$/@_Dj$5$l$F$$$J$$!%!JDL>o$O4D6-JQ?t(B + \envar{PATH}$B$G@_Dj$5$l$k!%!K(B + +%\item Perhaps your \envar{PATH} environment variable is only being set +% to point to the location of the \command{hg} executable if the login + +% session is interactive. This can happen if you're setting the path +% in the wrong shell login script. See your shell's documentation for +% details. + \item $BBPOCE*$J%m%0%$%s%;%C%7%g%s$N$H$-0J30$O4D6-JQ?t(B\envar{PATH}$B$,(B + \command{hg}$B<B9T%U%!%$%k$N$"$k%Q%9$r;X$7$F$$$J$$!%(B\envar{PATH}$B$rIT(B + $BE,@Z$J%m%0%$%s%9%/%j%W%H$G@_Dj$7$F$$$k$H$3$NLdBj$,5/$-$k!%>\$7$/$O(B + $B%7%'%k$N%I%-%e%a%s%H$r;2>H$9$k$3$H!%(B +%\item The \envar{PYTHONPATH} environment variable may need to contain +% the path to the Mercurial Python modules. It might not be set at +% all; it could be incorrect; or it may be set only if the login is +% interactive. + \item $B4D6-JQ?t(B\envar{PYTHONPATH}$B$,(BMercurial Python$B%b%8%e!<%k$r4^$`I,MW(B + $B$,$"$k>l9g!%$3$l$,A4$/@_Dj$5$l$F$$$J$$$+!$BPOCE*$J%m%0%$%s$G$N$_(B + $BM-8z$K$J$C$F$$$k!%(B \end{itemize} -If you can run \hgcmd{version} over an ssh connection, well done! -You've got the server and client sorted out. You should now be able -to use Mercurial to access repositories hosted by that username on -that server. If you run into problems with Mercurial and ssh at this -point, try using the \hggopt{--debug} option to get a clearer picture -of what's going on. +%If you can run \hgcmd{version} over an ssh connection, well done! +%You've got the server and client sorted out. You should now be able +%to use Mercurial to access repositories hosted by that username on +%that server. If you run into problems with Mercurial and ssh at this +%point, try using the \hggopt{--debug} option to get a clearer picture +%of what's going on. + +ssh$B@\B3$G(B\hgcmd{version}$B$r<B9T$G$-$?$N$J$i=`Hw$O40N;$@!%%5!<%P$H%/%i%$%"(B +$B%s%H$N@_Dj$O@5$7$/9T$o$l$F$$$k!%$3$l$G%5!<%PB&$N%f!<%6L>$r;H$C$F%[%9%H$5(B +$B$l$F$$$k%j%]%8%H%j$K(BMercurial$B$r;H$C$F%"%/%;%9$G$-$k$h$&$K$J$C$?!%$3$3$GLd(B +$BBj$,$"$k$N$J$i!$(B\hggopt{--debug}$B%*%W%7%g%s$r;H$C$F2?$,LdBj$J$N$+$r$h$jL@(B +$B3N$KGD0.$7$FM_$7$$!%(B %\subsection{Using compression with ssh} \subsection{ssh$B$G$N05=L$NMxMQ(B} @@ -1082,40 +1167,55 @@ %the default behaviour of ssh clients is \emph{not} to request %compression. -Mercurial$B$O!$(Bssh$B%W%m%H%3%k$r;H$C$?>l9g$O!$%G!<%?$N05=L$O9T$o$J$$!%$J$<$J(B -$B$i(Bssh$B%W%m%H%3%k$,F)2aE*$K%G!<%?$N05=L$r9T$&$3$H$,$G$-$k$?$a$G$"$k!%(B -$B$7$+$7(Bssh$B%/%i%$%"%s%H$N%G%U%)%k%H$N5sF0$G$O!$05=L$r9T$o(B\emph{$B$J$$(B}$B!%(B +Mercurial$B$O!$(Bssh$B%W%m%H%3%k$r;H$C$?>l9g$O!$%G!<%?$N05=L$O9T$o$J$$!%(Bssh$B%W%m(B +$B%H%3%k$,F)2aE*$K%G!<%?$N05=L$r9T$&$3$H$,$G$-$k$?$a$G$"$k!%$7$+$7(Bssh$B%/%i%$(B +$B%"%s%H$N%G%U%)%k%H$N5sF0$G$O!$05=L$r9T$o(B\emph{$B$J$$(B}$B!%(B + +%Over any network other than a fast LAN (even a wireless network), +%using compression is likely to significantly speed up Mercurial's +%network operations. For example, over a WAN, someone measured +%compression as reducing the amount of time required to clone a +%particularly large repository from~51 minutes to~17 minutes. -Over any network other than a fast LAN (even a wireless network), -using compression is likely to significantly speed up Mercurial's -network operations. For example, over a WAN, someone measured -compression as reducing the amount of time required to clone a -particularly large repository from~51 minutes to~17 minutes. +$B9bB.$J(BLAN$B0J30$N%M%C%H%o!<%/!J%o%$%d%l%9%M%C%H%o!<%/$b4^$`!K$G(B +$B$O!$(BMercurial$B$N%M%C%H%o!<%/F0:n$r9bB.2=$9$k$N$K05=L$N;HMQ$O$H$F$b8z2LE*$G(B +$B$"$k!%$"$k%f!<%6$N7WB,$K$h$l$P!$(BWAN$B7PM3$G$NBg5,LO$J%j%]%8%H%j$N%/%m!<%s(B +$B$O!$05=L$r;H$&$3$H$G(B~51$BJ,$+$i(B~17$BJ,$KC;=L$9$k$3$H$,$G$-$?!%(B -Both \command{ssh} and \command{plink} accept a \cmdopt{ssh}{-C} -option which turns on compression. You can easily edit your \hgrc\ to -enable compression for all of Mercurial's uses of the ssh protocol. +%Both \command{ssh} and \command{plink} accept a \cmdopt{ssh}{-C} +%option which turns on compression. You can easily edit your \hgrc\ to +%enable compression for all of Mercurial's uses of the ssh protocol. +\command{ssh}$B%3%^%s%I$b(B\command{plink}$B%3%^%s%I$b05=L$rM-8z$K$9$k(B +\cmdopt{ssh}{-C}$B%*%W%7%g%s$,;H$($k!%(B\hgrc\ $B%U%!%$%k$rJT=8$7$F(BMercurial$B$,(B +$B05=L$D$-$N(Bssh$B%W%m%H%3%k$r;HMQ$9$k$h$&$K@_Dj$9$k$3$H$,$G$-$k!%(B \begin{codesample2} [ui] ssh = ssh -C \end{codesample2} -If you use \command{ssh}, you can configure it to always use -compression when talking to your server. To do this, edit your -\sfilename{.ssh/config} file (which may not yet exist), as follows. +%If you use \command{ssh}, you can configure it to always use +%compression when talking to your server. To do this, edit your +%\sfilename{.ssh/config} file (which may not yet exist), as follows. +\command{ssh}$B$G%5!<%P$X@\B3$9$k;~$K>o$K05=L$r;HMQ$9$k$h$&$K@_Dj$9$k$3$H$,(B +$B$G$-$k!%(B\sfilename{.ssh/config}$B%U%!%$%k!JB8:_$7$J$$>l9g$O:n@.$9$k!K$r<!(B +$B$N$h$&$KJT=8$9$k!%(B \begin{codesample2} Host hg Compression yes HostName hg.example.com \end{codesample2} -This defines an alias, \texttt{hg}. When you use it on the -\command{ssh} command line or in a Mercurial \texttt{ssh}-protocol -URL, it will cause \command{ssh} to connect to \texttt{hg.example.com} -and use compression. This gives you both a shorter name to type and -compression, each of which is a good thing in its own right. +%This defines an alias, \texttt{hg}. When you use it on the +%\command{ssh} command line or in a Mercurial \texttt{ssh}-protocol +%URL, it will cause \command{ssh} to connect to \texttt{hg.example.com} +%and use compression. This gives you both a shorter name to type and +%compression, each of which is a good thing in its own right. +$B$3$l$O(Balias \texttt{hg}$B$rDj5A$9$k!%$3$N(Balias$B$r(B\command{ssh}$B$N%3%^%s%I%i%$(B +$B%s$G;H$&$+(BMercurial \texttt{ssh}-$B%W%m%H%3%k(B URL$B$G;HMQ$9$k$H(B\command{ssh} +$B%3%^%s%I(Bh$B$O(B\texttt{hg.example.com}$B$X05=L$rMQ$$$F@\B3$r9T$&!%C;=L7A$N%[%9(B +$B%HL>$H05=L$N@_Dj$rF1;~$K9T$&$3$H$,$G$-$k!%(B %\section{Serving over HTTP using CGI} -\section{CGI$B$r;HMQ$7$?(BHTTP$B$G$N%5!<%S%9(B} +\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