annotate ja/collab.tex @ 835:8a3041e6f3cb

reflect comments by Hiroshi Someya.
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sat, 11 Jul 2009 19:25:35 +0900
parents 5276f40fca1c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1 %\chapter{Collaborating with other people}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
2 \chapter{$BB>$N?M!9$H$N6&F1:n6H(B}
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
3 \label{cha:collab}
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
4
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
5 %As a completely decentralised tool, Mercurial doesn't impose any
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
6 %policy on how people ought to work with each other. However, if
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
7 %you're new to distributed revision control, it helps to have some
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
8 %tools and examples in mind when you're thinking about possible
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
9 %workflow models.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
10
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
11 $B40A4$JJ,;67?%D!<%k$H$7$F!$(BMercurial$B$O%f!<%6$,B>$N%f!<%6$H$I$N$h$&$K:n6H$9(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
12 $B$k$+$N%]%j%7!<$r6/MW$9$k$3$H$O$J$$!%$7$+$7=i$a$FJ,;6%j%S%8%g%s%3%s%H%m!<(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
13 $B%k%D!<%k$r;H$&$N$G$"$l$P!$$$$/$D$+$N%D!<%k$N;HMQK!$H;HMQNc$rCN$k$3$H$,(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
14 $B<h$jF@$k%o!<%/%U%m!<%b%G%k$r9M$($k:]$K=u$1$H$J$k$G$"$m$&!%(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
15
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
16 %\section{Mercurial's web interface}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
17 \section{Mercurial$B$N%&%'%V%$%s%?%U%'!<%9(B}
209
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
18
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
19 %Mercurial has a powerful web interface that provides several
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
20 %useful capabilities.
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
21
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
22 Mercurial$B$O$$$/$D$+$NM-MQ$J5!G=$r;}$D6/NO$J%&%'%V%$%s%?%U%'!<%9$rHw$($F(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
23 $B$$$k!%(B
209
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
24
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
25 %For interactive use, the web interface lets you browse a single
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
26 %repository or a collection of repositories. You can view the history
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
27 %of a repository, examine each change (comments and diffs), and view
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
28 %the contents of each directory and file. You can even get a view of
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
29 %history that gives a graphical view of the relationships between
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
30 %individual changes and merges.
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
31
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
32 $BBPOCE*$JMxMQ$G$O!$%&%'%V%$%s%?%U%'!<%9$K$h$j(B1$B$D$N%j%]%8%H%j$^$?$O$$$/$D$+(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
33 $B$N%j%]%8%H%j$N%3%l%/%7%g%s$r1\Mw$9$k$3$H$,$G$-$k!%%j%]%8%H%j$NMzNr$r8+$?(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
34 $B$j!$3F!9$NJQ99!J%3%a%s%H$d:9J,$r4^$`!K$rD4$Y$?$j!$%G%#%l%/%H%j$d%U%!%$%k(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
35 $B$NFbMF$r8+$k$3$H$,$G$-$k!%$^$?!$MzNr$rI=<($7!$8D!9$NJQ99$d%^!<%8$N4X78$r(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
36 $B%0%i%U%#%+%k$KI=<($9$k$3$H$b2DG=$G$"$k!%(B
209
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
37
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
38 %Also for human consumption, the web interface provides Atom and RSS feed
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
39 %of the changes in a repository. This lets you ``subscribe'' to a
802
de4142983445 Propagate 3b640272a966
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 373
diff changeset
40 %repository using your favorite feed reader, and be automatically
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
41 %notified of activity in that repository as soon as it happens. I find
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
42 %this capability much more convenient than the model of subscribing to
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
43 %a mailing list to which notifications are sent, as it requires no
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
44 %additional configuration on the part of whoever is serving the
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
45 %repository.
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
46
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
47 $B%&%'%V%$%s%?%U%'!<%9$O1\MwMQ$K%j%]%8%H%j$NJQ99$N(BAtom$B$*$h$S(BRSS$B%U%#!<%I$rDs(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
48 $B6!$9$k!%$3$l$r;H$($P!$%j%]%8%H%j$NJQ2=$r9%$_$N%U%#!<%I%j!<%@$K$h$C$F(B``$B9X(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
49 $BFI(B''$B$9$k$3$H$,$G$-!$%j%]%8%H%j$G$N3hF0$,5/$3$k$H$9$0$5$^DLCN$r<u$1$i$l(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
50 $B$k!%$3$N5!G=$OC/$,%j%]%8%H%j$N%5!<%S%9$r9T$C$F$bDI2C$N@_Dj$rI,MW$H$7$J$$(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
51 $B$?$a!$%a!<%j%s%0%j%9%H$r9XFI$7$FDLCN$r<u$1$k%b%G%k$h$j$b$:$C$HJXMx$G$"$k!%(B
209
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
52
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
53 %The web interface also lets remote users clone a repository, pull
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
54 %changes from it, and (when the server is configured to permit it) push
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
55 %changes back to it. Mercurial's HTTP tunneling protocol aggressively
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
56 %compresses data, so that it works efficiently even over low-bandwidth
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
57 %network connections.
209
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
58
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
59 $B%j%b!<%H%f!<%6$O%&%'%V%$%s%?%U%'!<%9$rMQ$$$F%j%]%8%H%j$r%/%m!<%s$9$k$3$H(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
60 $B$b$G$-$k!%JQ99$r(Bpull$B$7$F!$!J%5!<%P$,5v2D$9$k@_Dj$K$J$C$F$$$l$P!K2C$($?JQ(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
61 $B99$r:F$S(Bpush$B$9$k$3$H$b$G$-$k!%(BMercurial$B$N(BHTTP$B%H%s%M%k%W%m%H%3%k$O%G!<%?$r(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
62 $B@Q6KE*$K05=L$9$k$?$a!$%P%s%II}$NDc$$%M%C%H%o!<%/%3%M%/%7%g%s$G$bM-8z$K5!(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
63 $BG=$9$k!%(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
64
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
65 %The easiest way to get started with the web interface is to use your
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
66 %web browser to visit an existing repository, such as the master
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
67 %Mercurial repository at
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
68 %\url{http://www.selenic.com/repo/hg}.
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
69
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
70 $B%&%'%V%$%s%?%U%'!<%9$N:G$b4JC1$J;O$aJ}$O%&%'%V%V%i%&%6$r;H$C$F(BMercurial$B$N(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
71 $B%^%9%?%j%]%8%H%j(B\url{http://www.selenic.com/repo/hg}$B$N$h$&$J4{B8$N%j%]%8(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
72 $B%H%j$r;2>H$9$k$3$H$G$"$k!%(B
209
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
73
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
74 %If you're interested in providing a web interface to your own
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
75 %repositories, there are several good ways to do this.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
76
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
77 $B<+J,$N%j%]%8%H%j$K%&%'%V%$%s%?%U%'!<%9$rMQ0U$9$k>l9g!$$$$/$D$+NI$$J}K!$,(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
78 $B$"$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
79
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
80 %The easiest and fastest way to get started in an informal environment is
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
81 %to use the \hgcmd{serve} command, which is best suited to short-term
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
82 %``lightweight'' serving. See section~\ref{sec:collab:serve} below for
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
83 %details of how to use this command. If you have a long-lived
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
84 %repository that you'd like to make permanently available, Mercurial
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
85 %has built-in support for the CGI (Common Gateway Interface) standard,
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
86 %which all common web servers support. See
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
87 %section~\ref{sec:collab:cgi} for details of CGI configuration.
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
88
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
89 $B8x<0$G$O$J$$4D6-$G9T$&:G$b4JC1$GAa$$J}K!$O!$(B\hgcmd{serve}$B%3%^%s%I$r;H$&J}(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
90 $BK!$G!$$3$l$OC;4|4V$N(B``$B<j7Z$J(B''$B%5!<%S%9$KE*$7$F$$$k!%$3$N%3%^%s%I$N>\:Y$J(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
91 $B;HMQK!$K$D$$$F$O2<5-$N(B~\ref{sec:collab:serve}$B@a$r;2>H$N$3$H!%%j%]%8%H%j$r(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
92 $BD94|4V$K$o$?$j1JB3E*$K%5!<%S%9$7$?$$>l9g$O!$(BMercurial$B$KFbB"$N(BCGI(Common
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
93 Gateway Interface)$B%5%]!<%H$rMxMQ$9$k$3$H$,$G$-$k!%(B CGI$B$N@_Dj$K$D$$$F(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
94 $B$O(B~\ref{sec:collab:cgi}$B@a$r;2>H$N$3$H!%(B
209
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
95
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
96 %\section{Collaboration models}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
97 \section{$B6&F1:n6H%b%G%k(B}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
98
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
99 %With a suitably flexible tool, making decisions about workflow is much
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
100 %more of a social engineering challenge than a technical one.
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
101 %Mercurial imposes few limitations on how you can structure the flow of
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
102 %work in a project, so it's up to you and your group to set up and live
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
103 %with a model that matches your own particular needs.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
104
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
105 $BE,@Z$G=@Fp$J%D!<%k$r$b$C$F$7$F$b!$%o!<%/%U%m!<$K4X$9$k7hDj$r$9$k$3$H$O5;(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
106 $B=QE*$H$$$&$h$j$O<R2q9)3XE*$J%A%c%l%s%8$G$"$k!%(B Mercurial$B$,%W%m%8%'%/%H$N(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
107 $B%o!<%/%U%m!<$K2]$9@)8B$O$[$H$s$I$J$$$?$a!$$3$l$r$$$+$K9=C[$9$k$+$O$"$J$?(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
108 $B$H$=$N6&F1:n6H<T$KG$$5$l$F$*$j!$8GM-$NMW5a%^%C%A$9$k%b%G%k$r:n$k$3$H$,$G(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
109 $B$-$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
110
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
111 %\subsection{Factors to keep in mind}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
112 \subsection{$B9MN8$9$Y$-MWAG(B}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
113
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
114 %The most important aspect of any model that you must keep in mind is
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
115 %how well it matches the needs and capabilities of the people who will
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
116 %be using it. This might seem self-evident; even so, you still can't
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
117 %afford to forget it for a moment.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
118
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
119 $B$I$N$h$&$J%b%G%k$r;H$&>l9g$G$b!$$=$l$,:n6H$9$k?M!9$NMW5a$HG=NO$KE,$C$?$b(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
120 $B$N$G$"$k$+$r>o$KG0F,$KCV$/$3$H$,:G$b=EMW$G$"$k!%(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
121 $B$3$l$O<+L@$N$3$H$N$h$&$K;W$($k$+$b$7$l$J$$$,!$JR;~$bK:$l$F$O$J$i$J$$!%(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
122
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
123 %I once put together a workflow model that seemed to make perfect sense
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
124 %to me, but that caused a considerable amount of consternation and
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
125 %strife within my development team. In spite of my attempts to explain
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
126 %why we needed a complex set of branches, and how changes ought to flow
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
127 %between them, a few team members revolted. Even though they were
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
128 %smart people, they didn't want to pay attention to the constraints we
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
129 %were operating under, or face the consequences of those constraints in
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
130 %the details of the model that I was advocating.
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
131
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
132 $B<+J,$K$H$C$F40A4$H;W$($k%o!<%/%U%m!<%b%G%k$r9=C[$7$?$D$b$j$,!$6&F13+H/%A!<(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
133 $B%`$K$H$C$F$OBg$-$J6C$-$H3kF#$rM?$($F$7$^$C$?$3$H$,$"$k!%J#;($J%V%i%s%A$N(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
134 $B=89g$,$J$<I,MW$J$N$+JQ99$,%V%i%s%A4V$G$I$N$h$&$KEAGE$9$k$N$+$r@bL@$7$?$K(B
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
135 $B$b$+$+$o$i$:!$4v?M$+$N%A!<%`%a%s%P!<$OH?H/$7$?!%H`$i$OAoL@$G$"$C$?$,!$;d(B
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
136 $B$N94$C$?%k!<%k$,:n6H$KM?$($k@)8B$d!$%b%G%k$N:YIt$KM?$($k1F6A$KCm0U$rJ'$&(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
137 $B$3$H$rK>$^$J$+$C$?!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
138
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
139 %Don't sweep foreseeable social or technical problems under the rug.
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
140 %Whatever scheme you put into effect, you should plan for mistakes and
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
141 %problem scenarios. Consider adding automated machinery to prevent, or
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
142 %quickly recover from, trouble that you can anticipate. As an example,
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
143 %if you intend to have a branch with not-for-release changes in it,
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
144 %you'd do well to think early about the possibility that someone might
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
145 %accidentally merge those changes into a release branch. You could
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
146 %avoid this particular problem by writing a hook that prevents changes
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
147 %from being merged from an inappropriate branch.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
148
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
149 $B>-Mh5/$3$jF@$k<R2qE*$^$?$O5;=QE*LdBj$KL\$rbT$C$F$O$J$i$J$$!%$I$N$h$&$JJ}(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
150 $BK!$r$H$k$K$7$F$b!$4V0c$$$dLdBj$,5/$-$?>l9g$KHw$($F$*$/I,MW$,$"$k!%A[A|$7(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
151 $BF@$k%H%i%V%k$rKI;_$7$?$j!$%H%i%V%k$+$iAGAa$/2sI|$5$;$k$?$a$N<+F02=$5$l$?(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
152 $BJ}K!$r9M$($F$*$/I,MW$,$"$k!%$?$H$($P!$%j%j!<%9$K4^$a$J$$JQ99$r9T$C$?%V%i(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
153 $B%s%A$,$"$k$H$7$?$i!$C/$+$,8m$C$F$=$3$+$i%j%j!<%9%V%i%s%A$KJQ99$r%^!<%8$7(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
154 $B$F$7$^$&2DG=@-$K$D$$$F8!F$$7$F$*$/$Y$-$G$"$k!%$3$N>l9g$G$"$l$P!$ITE,@Z$J(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
155 $B%V%i%s%A$+$i$N%^!<%8$r6X;_$9$k%U%C%/$rMQ0U$9$k$3$H$GLdBj$r2sHr$9$k$3$H$,(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
156 $B$G$-$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
157
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
158 %\subsection{Informal anarchy}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
159 \subsection{$BHs8x<0$J:.Mp(B}
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
160
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
161 %I wouldn't suggest an ``anything goes'' approach as something
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
162 %sustainable, but it's a model that's easy to grasp, and it works
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
163 %perfectly well in a few unusual situations.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
164
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
165 $B$3$3$G=R$Y$k(B``$B$J$s$G$b$"$j(B''$B%"%W%m!<%A$,;}B32DG=$G$"$k$H8@$$$?$$$o$1$G$O(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
166 $B$J$$$N$@$,!$$3$N%b%G%k$OGD0.$7$d$9$/!$$$$/$D$+$N>u67$G$O$&$^$/5!G=$9$k$b(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
167 $B$N$@!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
168
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
169 %As one example, many projects have a loose-knit group of collaborators
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
170 %who rarely physically meet each other. Some groups like to overcome
802
de4142983445 Propagate 3b640272a966
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 373
diff changeset
171 %the isolation of working at a distance by organizing occasional
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
172 %``sprints''. In a sprint, a number of people get together in a single
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
173 %location (a company's conference room, a hotel meeting room, that kind
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
174 %of place) and spend several days more or less locked in there, hacking
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
175 %intensely on a handful of projects.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
176
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
177 $BNc$($P%W%m%8%'%/%H$NB?$/$O<B:]$K$O$[$H$s$I2q$&$3$H$N$J$$6(NO<T$?$A$N4K$d(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
178 $B$+$J%0%k!<%W$r;}$D!%%0%k!<%W$N$$$/$D$+$O5!2qKh$KC;$$(B``$B%9%W%j%s%H(B''$B$r7A@.(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
179 $B$7!$N%$l$?>l=j$G$N3V@d$7$?:n6H$r9nI~$7$F$$$k!%%9%W%j%s%H$G$O!$!J4k6H$N2q(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
180 $B5D<<!$%[%F%k$N%_!<%F%#%s%0%k!<%`$N$h$&$J!K0l%+=j$K=8$^$C$F?tF|4V$K$o$?$C(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
181 $B$F>/?t$N%W%m%8%'%/%H$r=8CfE*$K%O%C%/$9$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
182
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
183 %A sprint or a hacking session in a coffee shop are the perfect places to
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
184 %use the \hgcmd{serve} command, since \hgcmd{serve} does not requires any
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
185 %fancy server infrastructure. You can get started with \hgcmd{serve} in
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
186 %moments, by reading section~\ref{sec:collab:serve} below. Then simply
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
187 %tell the person next to you that you're running a server, send the URL
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
188 %to them in an instant message, and you immediately have a
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
189 %quick-turnaround way to work together. They can type your URL into
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
190 %their web browser and quickly review your changes; or they can pull a
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
191 %bugfix from you and verify it; or they can clone a branch containing a
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
192 %new feature and try it out.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
193
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
194 $B%9%W%j%s%H$d%3!<%R!<%7%g%C%W$G$N%O%C%-%s%0%;%C%7%g%s$O(B\hgcmd{serve}$B%3%^%s(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
195 $B%I$r;H$&$N$^$5$K$K$&$C$F$D$1$N4D6-$G$"$k!%(B \hgcmd{serve}$B$O<j$N9~$s$@%5!<(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
196 $B%P@_Hw$rI,MW$H$7$J$$!%2<$N(B\ref{sec:collab:serve}$B%;%/%7%g%s$rFI$s$G$9$0$K(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
197 \hgcmd{serve}$B%3%^%s%I$r;H$&$3$H$,$G$-$k!%%5!<%P$r5/F0$7$F$$$k$3$H$rNY$N3+(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
198 $BH/<T$KOC$7$?$j!$%0%k!<%W$K(BURL$B$r%$%s%9%?%s%H%a%C%;!<%8$GAw$l$P!$$9$0$K?WB.(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
199 $B$J6&F1:n6H$,$G$-$k!%Aw$C$?(BURL$B$rB>$N3+H/<T$,%V%i%&%6$KF~NO$9$l$P!$H`$i$O4J(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
200 $BC1$K$"$J$?$NJQ99$r%l%S%e!<$9$k$3$H$,$G$-$k$7!$$"$J$?$N9T$C$?%P%0%U%#%C%/(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
201 $B%9$r(Bpull$B$7$F8!>Z$9$k$3$H$b$G$-$k!%$5$i$K!$?75!G=$N<BAu$5$l$?%V%i%s%A$r%/(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
202 $B%m!<%s$7$F;n$9$3$H$b$G$-$k!%(B
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
203
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
204 %The charm, and the problem, with doing things in an ad hoc fashion
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
205 %like this is that only people who know about your changes, and where
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
206 %they are, can see them. Such an informal approach simply doesn't
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
207 %scale beyond a handful people, because each individual needs to know
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
208 %about \emph{n} different repositories to pull from.
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
209
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
210 $B%"%I%[%C%/$J$d$jJ}$G9T$&6&F1:n6H$NL%NO$HLdBj$O!$$"$J$?$NJQ99$rCN$C$F$$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
211 $B$F!$>l=j$bJ,$+$C$F$$$k?M!9$7$+JQ99$r;2>H$G$-$J$$$3$H$G$"$k!%$3$N$h$&$JHs(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
212 $B8x<0$J%"%W%m!<%A$O!$3F?M$,(B\emph{n}$B8D$N0[$J$C$?%j%]%8%H%j$N$I$l$+$i(Bpull$B$r(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
213 $B9T$($P$$$$$+J,$+$C$F$$$kI,MW$,$"$k$?$a!$>/?M?t0J>e$K%9%1!<%k$7$J$$!%(B
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
214
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
215
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
216 %\subsection{A single central repository}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
217 \subsection{1$B$D$N=8Cf%j%]%8%H%j(B}
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
218
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
219 %For smaller projects migrating from a centralised revision control
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
220 %tool, perhaps the easiest way to get started is to have changes flow
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
221 %through a single shared central repository. This is also the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
222 %most common ``building block'' for more ambitious workflow schemes.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
223
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
224 $B=8Cf7?%j%S%8%g%s%3%s%H%m!<%k%D!<%k$r;H$C$F$$$?>.5,LO$J%W%m%8%'%/%H$,0\9T(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
225 $B$9$k>l9g$K$O!$Cf1{$KC10l$N6&M-%j%]%8%H%j$r@_$1$F!$$=$NCf$GJQ99$r4IM}$9$k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
226 $B$N$,:G$b4JC1$JJ}K!$G$"$m$&!%$3$N$h$&$J%j%]%8%H%j$O$b$C$H[#Kf$J%o!<%/%U%m!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
227 $B%9%-!<%`$K$H$C$F$b6&DL$N4pHW$H$J$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
228
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
229 %Contributors start by cloning a copy of this repository. They can
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
230 %pull changes from it whenever they need to, and some (perhaps all)
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
231 %developers have permission to push a change back when they're ready
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
232 %for other people to see it.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
233
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
234 $B6(NO<T$O%j%]%8%H%j$N%3%T!<$r%/%m!<%s$9$k$3$H$+$i;O$a$k!%$=$7$FI,MW$J;~$K(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
235 $BJQ99$r(Bpull$B$7!$4v?M$+$N!JA40w$+$b$7$l$J$$!K3+H/<T$O!$<+J,$N9T$C$?JQ99$rI,(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
236 $BMW$J;~$K(Bpush$B$9$k8"8B$r;}$D!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
237
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
238 %Under this model, it can still often make sense for people to pull
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
239 %changes directly from each other, without going through the central
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
240 %repository. Consider a case in which I have a tentative bug fix, but
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
241 %I am worried that if I were to publish it to the central repository,
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
242 %it might subsequently break everyone else's trees as they pull it. To
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
243 %reduce the potential for damage, I can ask you to clone my repository
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
244 %into a temporary repository of your own and test it. This lets us put
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
245 %off publishing the potentially unsafe change until it has had a little
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
246 %testing.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
247
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
248 $B$3$N%b%G%k$G$b!$Cf1{$N%j%]%8%H%j$r;2>H$;$:B>$N3+H/<T$N%j%]%8%H%j$+$iD>@\(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
249 $BJQ99$r(Bpull$B$9$k$3$H$K$O0UL#$,$"$k!%<j85$G2>$N%P%0=$@5$r9T$C$?$,!$$3$l$rCf(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
250 $B1{$N%j%]%8%H%j$G8x3+$7!$B>$N3+H/<TC#$,(Bpull$B$9$k$H3F!9$N%=!<%9%D%j!<$,2u$l(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
251 $B$k$*$=$l$,$"$k>l9g$r9M$($k!%%@%a!<%8$N2DG=@-$r2<$2$k$?$a$K!$JL$N3+H/<T$K(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
252 $B<+J,$N%j%]%8%H%j$r%/%m!<%s$7!$%F%9%H$9$k$3$H$r0MMj$9$k$3$H$,9M$($i$l$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
253 $B$3$NJ}K!$r<h$k$3$H$G!$:GDc8B$N%F%9%H$r9T$&$^$G!$LdBj$N$"$k2DG=@-$N$"$kJQ(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
254 $B99$r8x3+$9$k$3$H$r0z$-1d$P$9$3$H$,$G$-$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
255
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
256 %If a team is hosting its own repository in this kind of scenario, people
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
257 %usually use the \command{ssh} protocol to securely push changes to the
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
258 %central repository, as documented in section~\ref{sec:collab:ssh}. It's
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
259 %also usual to publish a read-only copy of the repository over HTTP, as
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
260 %in section~\ref{sec:collab:cgi}. Publishing over HTTP satisfies the
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
261 %needs of people who don't have push access, and those who want to use
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
262 %web browsers to browse the repository's history.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
263
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
264 $B$3$N>u67$G$O!$3+H/<T$?$A$ODL>o!$Cf1{$N%j%]%8%H%j$XJQ99$r%W%C%7%e$9$k$?$a(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
265 $B$K!$(B~\ref{sec:collab:ssh}$B@a$G@bL@$7$?$h$&$K(B\command{ssh}$B%W%m%H%3%k$rMQ$$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
266 $B$k!%$^$?(B~\ref{sec:collab:cgi}$B@a$G=R$Y$?$h$&$K!$%j%]%8%H%j$NFI$_<h$j@lMQ%3(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
267 $B%T!<$r(BHTTP$B$G8x3+$9$k$N$b0lHLE*$G$"$k!%(B HTTP$B$K$h$k8x3+$G!$%W%C%7%e%"%/%;%9(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
268 $B8"$r;}$?$J$$?M!9$d%j%]%8%H%j$NMzNr$r%V%i%&%6$G;2>H$7$?$$?M$N%K!<%:$rK~$?(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
269 $B$9$3$H$,$G$-$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
270
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
271 %\subsection{A hosted central repository}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
272 \subsection{$B%[%9%F%#%s%0$K$h$kCf1{%j%]%8%H%j%5!<%S%9(B}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
273
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
274 %A wonderful thing about public hosting services like Bitbucket
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
275 %(\url{http://bitbucket.org}) is that not only do they handle the
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
276 %fiddly server configuration details, such as user accounts,
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
277 %authentication, and secure wire protocols, they provide additional
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
278 %infrastructure to make this model work well.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
279
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
280 Bitbucket(\url{http://bitbucket.org})$B$N$h$&$J8x6&$N%[%9%F%#%s%0%5!<%S%9$G(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
281 $B$O!$%f!<%6%"%+%&%s%H$N@_Dj!$G'>Z!$%;%-%e%"$JDL?.%W%m%H%3%k$J$I$NLLE]$J%5!<(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
282 $B%P@_Dj$r8*Be$j$7$F$/$l$k$@$1$G$J$/!$$3$N%b%G%k$,$b$C$HNI$/5!G=$9$k$?$a$N(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
283 $B%$%s%U%i$rDs6!$7$F$$$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
284
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
285 %For instance, a well-engineered hosting service will let
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
286 %people clone their own copies of a repository with a single
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
287 %click. This lets people work in separate spaces and share
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
288 %their changes when they're ready.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
289
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
290 $BNc$($P!$$&$^$/9=@.$5$l$?%[%9%F%#%s%0%5!<%S%9$O!$(B1$B%/%j%C%/$G%j%]%8%H%j$N%3(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
291 $B%T!<$r%/%m!<%s$G$-$k$h$&$K$J$C$F$$$k!%$3$l$K$h$j!$JL!9$N>l=j$G:n6H$r9T(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
292 $B$$!$=`Hw$,=PMh<!BhJQ99$r6&M-$9$k$3$H$,$G$-$k$h$&$K$J$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
293
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
294 %In addition, a good hosting service will let people communicate with
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
295 %each other, for instance to say ``there are changes ready for you to
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
296 %review in this tree''.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
297
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
298 $B$^$?!$NI$$%[%9%F%#%s%0%5!<%S%9$O!$3+H/<TF1;N$,(B``$B$3$N%D%j!<$K%l%S%e!<$7$F(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
299 $BLc$$$?$$JQ99$,$"$k(B''$B$J$I$N$d$j$H$j$r$G$-$k$h$&$J5!G=$bDs6!$7$F$$$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
300
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
301 %\subsection{Working with multiple branches}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
302 \subsection{$BJ#?t$N%V%i%s%A$G$N:n6H(B}
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
303
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
304 %Projects of any significant size naturally tend to make progress on
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
305 %several fronts simultaneously. In the case of software, it's common
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
306 %for a project to go through periodic official releases. A release
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
307 %might then go into ``maintenance mode'' for a while after its first
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
308 %publication; maintenance releases tend to contain only bug fixes, not
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
309 %new features. In parallel with these maintenance releases, one or
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
310 %more future releases may be under development. People normally use
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
311 %the word ``branch'' to refer to one of these many slightly different
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
312 %directions in which development is proceeding.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
313
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
314 $B$"$kDxEY$N5,LO$N%W%m%8%'%/%H$G$O!$<+$:$H$$$/$D$b$NA0@~$G3+H/$r?J$a$F$$$/(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
315 $B$h$&$K$J$k!%%=%U%H%&%'%"$N>l9g!$Dj4|E*$K8x<0%j%j!<%9$r9T$&$N$,DLNc$G$"(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
316 $B$k!%%j%j!<%9$O!$8x3+8e;C$/$7$F(B``$B%a%s%F%J%s%9%b!<%I(B''$B$K0\9T$9$k$+$b$7$l$J(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
317 $B$$!%%a%s%F%J%s%9%j%j!<%9$G$O%P%0$N=$@5$@$1$r9T$$!$?75!G=$NDI2C$O9T$o$J$$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
318 $B$N$,DLNc$G$"$k!%$3$l$i$N%a%s%F%J%s%9%j%j!<%9$HJB9T$7$F!$>-Mh$N%j%j!<%9$,(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
319 $B3+H/$5$l$k!%DL>o!$3+H/$N?J9T$7$F$$$/<c430[$J$C$?J}8~$N3F!9$rI=$9$?$a$K(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
320 ``$B%V%i%s%A(B''$B$H$$$&8F>N$rMQ$$$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
321
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
322 %Mercurial is particularly well suited to managing a number of
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
323 %simultaneous, but not identical, branches. Each ``development
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
324 %direction'' can live in its own central repository, and you can merge
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
325 %changes from one to another as the need arises. Because repositories
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
326 %are independent of each other, unstable changes in a development
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
327 %branch will never affect a stable branch unless someone explicitly
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
328 %merges those changes into the stable branch.
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
329
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
330 Mercurial$B$OJ#?t%V%i%s%A$K$h$kF1;~3+H/$r<h$j07$&$3$H$KFC$KE,$7$F$$$k!%3F!9(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
331 $B$N(B``$B3+H/J}8~(B''$B$OCf1{%j%]%8%H%j$KCV$/$3$H$,2DG=$G!$I,MW$K$J$kEY$K$"$k%V%i(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
332 $B%s%A$+$iJL$N%V%i%s%A$X%^!<%8$G$-$k!%%j%]%8%H%j$O$=$l$>$lFHN)$G$"$k$?$a!$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
333 $B3+H/%V%i%s%A$G$NIT0BDj$JJQ99$O!$3+H/<T$NC/$+$,L@<(E*$K%^!<%8$r9T$o$J$$8B(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
334 $B$j0BDjHG%V%i%s%A$K$O$J$s$N1F6A$bM?$($J$$!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
335
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
336 %Here's an example of how this can work in practice. Let's say you
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
337 %have one ``main branch'' on a central server.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
338 %\interaction{branching.init}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
339 %People clone it, make changes locally, test them, and push them back.
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
340
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
341 $B<B:]$K$I$N$h$&$KF0:n$9$k$N$+$rNc$G<($9!%Cf1{$N%5!<%P$K(B1$B$D$N(B``$B%a%$%s%V%i(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
342 $B%s%A(B''$B$,$"$k$H$7$h$&!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
343 \interaction{branching.init}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
344 $B3+H/<T$O$3$l$r%/%m!<%s$7!$%m!<%+%k$GJQ99$r2C$(!$%F%9%H$7!$$^$?(Bpush$B$9$k$H(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
345 $B$9$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
346
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
347 %Once the main branch reaches a release milestone, you can use the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
348 %\hgcmd{tag} command to give a permanent name to the milestone
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
349 %revision.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
350 %\interaction{branching.tag}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
351 %Let's say some ongoing development occurs on the main branch.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
352 %\interaction{branching.main}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
353 %Using the tag that was recorded at the milestone, people who clone
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
354 %that repository at any time in the future can use \hgcmd{update} to
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
355 %get a copy of the working directory exactly as it was when that tagged
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
356 %revision was committed.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
357 %\interaction{branching.update}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
358
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
359 $B%a%$%s%V%i%s%A$,%j%j!<%9%^%$%k%9%H!<%s$KE~C#$7$?:]$K!$(B\hgcmd{tag}$B$G1JB3E*(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
360 $B$JL>A0$r%^%$%k%9%H!<%s%j%S%8%g%s$KIU$1$k$3$H$,$G$-$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
361 \interaction{branching.tag}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
362 $B%a%$%s%V%i%s%A$G?J9TCf$N3+H/$K$D$$$F8+$F$_$h$&!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
363 \interaction{branching.main}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
364 $B$3$l0J8e%j%]%8%H%j$r%/%m!<%s$7$??M$O%^%$%k%9%H!<%s$G5-O?$5$l$?%?%0$H(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
365 \hgcmd{update}$B%3%^%s%I$r;H$C$F!$%?%0$NIU$1$i$l$?%j%S%8%g%s$HA4$/F1$8%o!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
366 $B%-%s%0%G%#%l%/%H%j$rI|85$9$k$3$H$,$G$-$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
367 \interaction{branching.update}
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
368
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
369 %In addition, immediately after the main branch is tagged, we can then
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
370 %clone the main branch on the server to a new ``stable'' branch, also on
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
371 %the server.
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
372 %\interaction{branching.clone}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
373
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
374 $B$5$i$K!$%a%$%s%V%i%s%A$,%?%0IU$1$5$l$?D>8e$+$i%5!<%P>e$N%a%$%s%V%i%s%A$r(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
375 $B?7$?$J(B``stable''$B%V%i%s%A$K%/%m!<%s$G$-$k!%$3$l$O%5!<%P>e$G9T$&$3$H$b2DG=(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
376 $B$G$"$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
377 \interaction{branching.clone}
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
378
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
379 %If we need to make a change to the stable branch, we can then clone
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
380 %\emph{that} repository, make our changes, commit, and push our changes
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
381 %back there.
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
382 %\interaction{branching.stable}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
383 %Because Mercurial repositories are independent, and Mercurial doesn't
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
384 %move changes around automatically, the stable and main branches are
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
385 %\emph{isolated} from each other. The changes that we made on the
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
386 %main branch don't ``leak'' to the stable branch, and vice versa.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
387
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
388 stable$B%V%i%s%A$KJQ99$r2C$($?$$>l9g!$(B\emph{$B$=$N(B}$B%j%]%8%H%j$r%/%m!<%s$7!$(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
389 $BJQ99$r9T$$!$%3%_%C%H$7$?8e$K$=$NJQ99$r%5!<%P$K(Bpush$B$9$k$3$H$,$G$-$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
390 \interaction{branching.stable}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
391 Mercurial$B%j%]%8%H%j$OFHN)$G!$JQ99$r<+F0E*$KGH5Z$5$;$k$3$H$b$J$$$N$G!$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
392 stable$B$H(Bmain$B%V%i%s%A$O8_$$$K(B\emph{$B3VN%$5$l$F$$$k(B}$B!%%a%$%s%V%i%s%A$K9T$C(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
393 $B$?JQ99$,(Bstable$B%V%i%s%A$KO3$l=P$7$?$j!$$=$N5U$K$J$C$?$j$9$k$3$H$O$J$$!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
394
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
395 %We'll often want all of your bugfixes on the stable branch to show up
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
396 %on the main branch, too. Rather than rewrite a bugfix on the main
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
397 %branch, we can simply pull and merge changes from the stable to the
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
398 %main branch, and Mercurial will bring those bugfixes in for us.
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
399 %\interaction{branching.merge}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
400
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
401 $BB?$/$N>l9g!$(Bstable$B%V%i%s%A$KBP$7$F9T$C$?%P%0=$@5$r%a%$%s%V%i%s%A$KBP$7$F(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
402 $B$b<h$j9~$_$?$$$H9M$($k$@$m$&!%%P%0=$@5$r%a%$%s%V%i%s%A$G$b$&0lEY9T$&$N$G(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
403 $B$O$J$/!$(BMercurial$B$r;H$C$FJQ99$r(Bstable$B%V%i%s%A$+$i(Bpull$B$7$F4JC1$K%a%$%s%V%i(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
404 $B%s%A$X%^!<%8$9$k$3$H$,$G$-$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
405 \interaction{branching.merge}
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
406
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
407 %The main branch will still contain changes that are not on the stable
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
408 %branch, but it will also contain all of the bugfixes from the stable
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
409 %branch. The stable branch remains unaffected by these changes, since
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
410 %changes are only flowing from the stable to the main branch, and not the
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
411 %other way.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
412
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
413 $B%a%$%s%V%i%s%A$O(Bstable$B%V%i%s%A$K$"$k%P%0=$@5$r$9$Y$F<h$j9~$s$G$$$k$@$1$G(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
414 $B$J$/!$(B stable$B%V%i%s%A$K$O$J$$JQ99$b;}$C$F$$$k!%$3$NA`:n$r9T$C$F$b(Bstable$B%V(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
415 $B%i%s%A$O$3$l$i$NJQ99$K$h$k1F6A$r<u$1$J$$!%$J$<$J$iJQ99$O(Bstable$B%V%i%s%A$+(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
416 $B$i%a%$%s%V%i%s%A$X$N0lJ}8~$N$_$KGH5Z$7!$5U8~$-$K$OGH5Z$7$J$$$+$i$G$"$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
417
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
418 %\subsection{Feature branches}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
419 \subsection{$B5!G=$K$h$k%V%i%s%A(B}
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
420
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
421 %For larger projects, an effective way to manage change is to break up
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
422 %a team into smaller groups. Each group has a shared branch of its
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
423 %own, cloned from a single ``master'' branch used by the entire
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
424 %project. People working on an individual branch are typically quite
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
425 %isolated from developments on other branches.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
426
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
427 $BBg5,LO$J%W%m%8%'%/%H$GJQ99$r8z2LE*$K4IM}$9$kJ}K!$O!$%A!<%`$r>.$5$J%0%k!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
428 $B%W$KJ,3d$9$k$3$H$G$"$k!%3F!9$N%0%k!<%W$O%W%m%8%'%/%HA4BN$G;H$o$l$kC10l$N(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
429 $B%^%9%?!<%V%i%s%A$+$i%/%m!<%s$7$?8GM-$N6&M-%V%i%s%A$r;}$D!%3F!9$N%V%i%s%A(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
430 $B$G:n6H$9$k?MC#$O!$B>$N%V%i%s%A$G$N3+H/$+$i3VN%$5$l$F$$$k$N$,DLNc$G$"$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
431
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
432 \begin{figure}[ht]
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
433 \centering
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
434 \grafix{feature-branches}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
435 % \caption{Feature branches}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
436 \caption{$B5!G=$K$h$k%V%i%s%A(B}
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
437 \label{fig:collab:feature-branches}
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
438 \end{figure}
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
439
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
440 %When a particular feature is deemed to be in suitable shape, someone
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
441 %on that feature team pulls and merges from the master branch into the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
442 %feature branch, then pushes back up to the master branch.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
443
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
444 $BFCDj$N5!G=$,==J,$J>uBV$K$J$C$?$H$-!$$=$N5!G=$N%A!<%`%a%s%P!<$O%^%9%?!<%V(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
445 $B%i%s%A$+$i5!G=%V%i%s%A$K(Bpull$B$H%^!<%8$r9T$$!$%^%9%?!<%V%i%s%A$K(Bpush$B$7$FLa(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
446 $B$9!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
447
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
448 %\subsection{The release train}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
449 \subsection{$B%j%j!<%9%H%l%$%s(B}
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
450
802
de4142983445 Propagate 3b640272a966
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 373
diff changeset
451 %Some projects are organized on a ``train'' basis: a release is
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
452 %scheduled to happen every few months, and whatever features are ready
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
453 %when the ``train'' is ready to leave are allowed in.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
454
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
455 $B$$$/$D$+$N%W%m%8%'%/%H$O%H%l%$%sJ}<0$GAH?%$5$l$F$$$k!%?t%+7n$K0lEY%j%j!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
456 $B%9$r9T$&$h$&$K%9%1%8%e!<%k$5$l!$%H%l%$%s$,=PH/$G$-$k$h$&$K?75!G=$,=`Hw$5(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
457 $B$l$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
458
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
459 %This model resembles working with feature branches. The difference is
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
460 %that when a feature branch misses a train, someone on the feature team
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
461 %pulls and merges the changes that went out on that train release into
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
462 %the feature branch, and the team continues its work on top of that
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
463 %release so that their feature can make the next release.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
464
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
465 $B$3$N%b%G%k$O5!G=%V%i%s%A$G$N:n6H$H;w$F$$$k!%0c$$$O!$5!G=%V%i%s%A$O%H%l%$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
466 $B%s$rF($7$?>l9g!$5!G=%A!<%`$N%a%s%P!<$,5!G=%V%i%s%A$N%H%l%$%s%j%j!<%9$X9T(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
467 $B$/$Y$-JQ99$r5!G=%j%j!<%9$K(Bpull$B$*$h$S%^!<%8$7!$3+H/Cf$N5!G=$,<!$N%j%j!<%9(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
468 $B$KF~$k$h$&$K%A!<%`$O$=$N%j%j!<%9$N>e$G:n6H$rB3$1$k!%(B
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
469
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
470 %\subsection{The Linux kernel model}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
471 \subsection{Linux$B%+!<%M%k%b%G%k(B}
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
472
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
473 %The development of the Linux kernel has a shallow hierarchical
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
474 %structure, surrounded by a cloud of apparent chaos. Because most
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
475 %Linux developers use \command{git}, a distributed revision control
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
476 %tool with capabilities similar to Mercurial, it's useful to describe
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
477 %the way work flows in that environment; if you like the ideas, the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
478 %approach translates well across tools.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
479
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
480 Linux$B%+!<%M%k$N3+H/$G$O!$<~$j$K:.FY$H$7$?9-$,$j$r;}$D@u$$3,AX9=B$$,<h$i$l(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
481 $B$F$$$k!%KX$s$I$N(BLinux$B3+H/<T$O(BMercurial$B$HF1MM$N5!G=$r;}$D(B\command{git}$B$H$$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
482 $B$&J,;6%j%S%8%g%s4IM}%D!<%k$rMxMQ$7$F$$$k$?$a!$H`$i$,<h$C$F$$$k%o!<%/%U%m!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
483 $B$r=R$Y$k$3$H$O2f!9$K$bLrN)$D!%H`$i$N%"%$%G%#%"$r5$$KF~$l$P!$$=$N%"%W%m!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
484 $B%A$O%D!<%k$N0c$$$r1[$($FM-8z$G$"$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
485
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
486 %At the center of the community sits Linus Torvalds, the creator of
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
487 %Linux. He publishes a single source repository that is considered the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
488 %``authoritative'' current tree by the entire developer community.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
489 %Anyone can clone Linus's tree, but he is very choosy about whose trees
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
490 %he pulls from.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
491
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
492 $B3+H/%3%_%e%K%F%#$NCf?4$O(BLinux$B$NAOB$<T$G$"$k(BLinus Torvalds$B$G$"$k!%H`$O%j%](B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
493 $B%8%H%j$r(B1$B$D8x3+$7$F$*$j!$$=$l$O3+H/%3%_%e%K%F%#A4BN$N8x<0%+%l%s%H%D%j!<$H(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
494 $B8+Pv$5$l$F$$$k!%C/$G$b(BLinus$B$N%D%j!<$r%/%m!<%s$G$-$k$,!$H`<+?H$O$I$3$+$i(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
495 pull$B$9$k$+$r87$7$/A*$s$G$$$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
496
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
497 %Linus has a number of ``trusted lieutenants''. As a general rule, he
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
498 %pulls whatever changes they publish, in most cases without even
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
499 %reviewing those changes. Some of those lieutenants are generally
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
500 %agreed to be ``maintainers'', responsible for specific subsystems
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
501 %within the kernel. If a random kernel hacker wants to make a change
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
502 %to a subsystem that they want to end up in Linus's tree, they must
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
503 %find out who the subsystem's maintainer is, and ask that maintainer to
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
504 %take their change. If the maintainer reviews their changes and agrees
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
505 %to take them, they'll pass them along to Linus in due course.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
506
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
507 Linus$B$OB?$/$N(B``$B?.Mj$G$-$kBe9T<T(B''$B$r;}$C$F$$$k!%86B'E*$K$OH`$OH`$i$,8x3+$7(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
508 $B$?$b$N$O2?$G$b(Bpull$B$9$k!%B?$/$N>l9g!$H`$i$NJQ99$r%l%S%e!<$9$k$3$H$b$7$J(B
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
509 $B$$!%Be9T<T$N2??M$+$O%a%s%F%J$H$J$k$3$H$rF10U$7$F$*$j!$%+!<%M%kFb$NFCDj$N(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
510 $B%5%V%7%9%F%`$KBP$7$F@UG$$r;}$D!%%+!<%M%k%O%C%+!<$NC/$+$,(BLinus$B$N%D%j!<$N%5(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
511 $B%V%7%9%F%`$KJQ99$r2C$($?$$$H;W$C$?$i!$%5%V%7%9%F%`$N%a%s%F%J$r8+$D$1=P$7(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
512 $B$?>e$G!$%a%s%F%J$KJQ99$r<h$j9~$s$GLc$&$h$&$K0MMj$9$kI,MW$,$"$k!%%a%s%F%J(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
513 $B$,JQ99$r%l%S%e!<$7!$<h$j9~$`$3$H$KF10U$9$l$P!$@5<0$J%3!<%9$GJQ99$r(BLinus$B$K(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
514 $B<jEO$9!%(B
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
515
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
516 %Individual lieutenants have their own approaches to reviewing,
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
517 %accepting, and publishing changes; and for deciding when to feed them
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
518 %to Linus. In addition, there are several well known branches that
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
519 %people use for different purposes. For example, a few people maintain
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
520 %``stable'' repositories of older versions of the kernel, to which they
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
521 %apply critical fixes as needed. Some maintainers publish multiple
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
522 %trees: one for experimental changes; one for changes that they are
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
523 %about to feed upstream; and so on. Others just publish a single
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
524 %tree.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
525
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
526 $B$=$l$>$l$NBeM}?M$O%l%S%e!<!$JQ99$N8x3+!$$$$D(BLinus$B$KDs=P$9$k$+$K$D$$$F$=$l(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
527 $B$>$lFH<+$N%"%W%m!<%A$r<h$C$F$$$k!%$^$?!$JL$NMQES8~$1$K$h$/CN$i$l$?%V%i%s(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
528 $B%A$,$$$/$D$+$"$j!$Nc$($P4v?M$+$N?M$O%+!<%M%k$N2a5n$N%P!<%8%g%s$N(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
529 ``stable''$B%j%]%8%H%j$r%a%s%F%J%s%9$7!$=EMW$J=$@5$r9T$C$F$$$k!%JL$N%a%s%F(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
530 $B%J$O!$<B83E*$JJQ99$r<h$j9~$`%D%j!<!$>eN.$K<jEO$9@#A0$NJQ99$r<h$j9~$`%D%j!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
531 $B$J$I$N$h$&$KJ#?t$N%D%j!<$r8x3+$7$F$$$k!%$^$?(B1$B$D$N%D%j!<$@$1$r8x3+$7$F$$$k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
532 $B%a%s%F%J$bB?$$!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
533
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
534 %This model has two notable features. The first is that it's ``pull
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
535 %only''. You have to ask, convince, or beg another developer to take a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
536 %change from you, because there are almost no trees to which more than
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
537 %one person can push, and there's no way to push changes into a tree
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
538 %that someone else controls.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
539
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
540 $B$3$N%b%G%k$OCmL\$9$Y$-FCD9$r(B2$B$D;}$C$F$$$k!%Bh0l$K!$$3$l$i$O(Bpull$B%*%s%j!<$G(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
541 $B$"$k!%JQ99$r<h$j9~$s$GLc$&$?$a$K$O!$B>$N3+H/<T$K0MMj$7$?$j!$@bF@$7$?$j!$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
542 $B:)4j$7$?$j$7$J$1$l$P$J$i$J$$!%$J$<$J$i(B2$B?M0J>e$,%W%C%7%e$G$-$k%D%j!<$O$[$H(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
543 $B$s$I$J$/!$JL$N?M$,%3%s%H%m!<%k$7$F$$$k%D%j!<$KJQ99$r(Bpush$B$9$k=Q$O$J$$$+$i(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
544 $B$G$"$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
545
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
546 %The second is that it's based on reputation and acclaim. If you're an
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
547 %unknown, Linus will probably ignore changes from you without even
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
548 %responding. But a subsystem maintainer will probably review them, and
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
549 %will likely take them if they pass their criteria for suitability.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
550 %The more ``good'' changes you contribute to a maintainer, the more
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
551 %likely they are to trust your judgment and accept your changes. If
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
552 %you're well-known and maintain a long-lived branch for something Linus
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
553 %hasn't yet accepted, people with similar interests may pull your
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
554 %changes regularly to keep up with your work.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
555
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
556 $BBhFs$K!$$3$l$OI>H=$H>N;?$K$h$k%7%9%F%`$G$"$k$H$$$&$3$H$@!%L5L>$N3+H/<T$N(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
557 $BJQ99$KBP$7$F$O(BLinus$B$O$*$=$i$/H?1~$9$k$3$H$J$/L5;k$9$k!%$7$+$7%5%V%7%9%F%`(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
558 $B%a%s%F%J$OJQ99$r%l%S%e!<$7!$E,@Z$G$"$k$HH=CG$9$l$P:N$jF~$l$k!%3+H/<T$,NI(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
559 $B$$JQ99$r9T$($P9T$&$[$I!$%a%s%F%J$O3+H/<T$NH=CG$r?.MQ$7!$JQ99$r:N$jF~$l$k(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
560 $B$h$&$K$J$k$@$m$&!%3+H/<T$,CxL>$G!$(BLinus$B$,$$$^$@$K<u$1F~$l$F$$$J$$!$D94|4V(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
561 $B$K$o$?$k%V%i%s%A$N%a%s%F%J$G$"$k$J$i$P!$F1$86=L#$r;}$D?M!9$,H`$N:n6H$r<h(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
562 $B$j9~$`$?$a$KJQ99$rDj4|E*$K(Bpull$B$9$k$3$H$@$m$&!%(B
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
563
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
564 %Reputation and acclaim don't necessarily cross subsystem or ``people''
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
565 %boundaries. If you're a respected but specialised storage hacker, and
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
566 %you try to fix a networking bug, that change will receive a level of
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
567 %scrutiny from a network maintainer comparable to a change from a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
568 %complete stranger.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
569
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
570 $BI>H=$H>N;?$O%5%V%7%9%F%`$r1[$($?$j!$<~JU$K$$$k?M!9$r1[$($k$3$H$O$J$$$@$m(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
571 $B$&!%$b$7$"$J$?$,%9%H%l!<%8$NJ,Ln$G7I0U$r=8$a$k%O%C%+!<$G$"$C$?$H$7$F$b!$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
572 $B%M%C%H%o!<%/$N%P%0$r=$@5$7$h$&$H$7$?$N$J$i!$9T$C$?JQ99$O%M%C%H%o!<%/$N%a(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
573 $B%s%F%J$+$i40A4$JIt30<T$HF1Ey$N@:::$r<u$1$k$3$H$K$J$k$@$m$&!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
574
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
575 %To people who come from more orderly project backgrounds, the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
576 %comparatively chaotic Linux kernel development process often seems
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
577 %completely insane. It's subject to the whims of individuals; people
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
578 %make sweeping changes whenever they deem it appropriate; and the pace
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
579 %of development is astounding. And yet Linux is a highly successful,
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
580 %well-regarded piece of software.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
581
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
582 $B@0A3$H$7$?%W%m%8%'%/%H$+$iMh$?3+H/<T$K$H$C$F$O!$(BLinux$B%+!<%M%k$N:.FY$H$7$?(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
583 $B3+H/%W%m%;%9$O$7$P$7$P40A4$K685$$N:;BA$H;W$($k$3$H$@$m$&!%(BLinux$B%+!<%M%k$G(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
584 $B$O!$3+H/%W%m%;%9$O8D!9?M$N5$$^$0$l$K0MB8$7$F$*$j!$E,@Z$H9M$($?;~$OA4LLE*(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
585 $B$JJQ99$r9T$$!$3+H/%Z!<%9$OESJ}$b$J$$!%$=$l$G$b$7$+$7(BLinux$B$OBg$$$K@.8y$7$?(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
586 $BCmL\$9$Y$-%=%U%H%&%'%"$J$N$G$"$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
587
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
588 %\subsection{Pull-only versus shared-push collaboration}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
589 \subsection{Pull$B$N$_(B vs $B6&M-(Bpush$B%3%i%\%l!<%7%g%s(B}
187
b60e2de6dbc3 Add chapter on branch management.
Bryan O'Sullivan <bos@serpentine.com>
parents: 184
diff changeset
590
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
591 %A perpetual source of heat in the open source community is whether a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
592 %development model in which people only ever pull changes from others
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
593 %is ``better than'' one in which multiple people can push changes to a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
594 %shared repository.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
595
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
596 $B%*!<%W%s%=!<%9%3%_%e%K%F%#$G$OB>$N3+H/<T$N$H$3$m$+$iJQ99$r(Bpull$B$9$k$@$1$N(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
597 $B3+H/%b%G%k$,!$6&M-%j%]%8%H%j$KB??t$N3+H/<T$,(Bpush$B$G$-$k%b%G%k$h$j$b(B``$BM%$l(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
598 $B$F$$$k(B''$B$+$I$&$+$,>o$K7c$7$$O@Ah$N<o$K$J$k!%(B
187
b60e2de6dbc3 Add chapter on branch management.
Bryan O'Sullivan <bos@serpentine.com>
parents: 184
diff changeset
599
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
600 %Typically, the backers of the shared-push model use tools that
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
601 %actively enforce this approach. If you're using a centralised
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
602 %revision control tool such as Subversion, there's no way to make a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
603 %choice over which model you'll use: the tool gives you shared-push,
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
604 %and if you want to do anything else, you'll have to roll your own
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
605 %approach on top (such as applying a patch by hand).
187
b60e2de6dbc3 Add chapter on branch management.
Bryan O'Sullivan <bos@serpentine.com>
parents: 184
diff changeset
606
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
607 $B6&M-%W%C%7%e%b%G%k$N;Y;}<T$O!$$3$N%"%W%m!<%A$r6/@)$9$k$h$&$J%D!<%k$r;H$C(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
608 $B$F$$$k$3$H$,B?$$!%$b$7(BSubversion$B$N$h$&$JCf1{=8Cf7?$N%j%S%8%g%s4IM}%D!<%k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
609 $B$r;H$C$F$$$k$N$J$i!$;H$&%b%G%k$rA*$VM>CO$O$=$b$=$bB8:_$7$J$$!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
610 $B$3$l$i$N%D!<%k$G$O6&M-(Bpush$B%b%G%k$r;H$&B>$J$/!$$=$l0J30$N2?$+$r$7$?$$$N$G(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
611 $B$"$l$P!$!J<+NO$G%Q%C%A$rEv$F$k$J$I$NJ}K!$G!K30It$G9T$&I,MW$,$"$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
612
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
613 %A good distributed revision control tool will support both models. You
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
614 %and your collaborators can then structure how you work together based on
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
615 %your own needs and preferences, not on what contortions your tools force
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
616 %you into.
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
617
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
618 $BNI$$J,;6%j%S%8%g%s%3%s%H%m!<%k%D!<%k$O!$N>J}$N%b%G%k$r%5%]!<%H$9$k!%%f!<(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
619 $B%6$d6(NO<T$O%D!<%k$K$h$C$F6/MW$5$l$k%b%G%k$G$O$J$/!$MW5a$d9%$_$K1~$8$?6&(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
620 $BF1:n6H$N9=@.$r7h$a$k$3$H$,$G$-$k!%(B
187
b60e2de6dbc3 Add chapter on branch management.
Bryan O'Sullivan <bos@serpentine.com>
parents: 184
diff changeset
621
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
622 %\subsection{Where collaboration meets branch management}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
623 \subsection{$B6&F1:n6H$,%V%i%s%A4IM}$HD>LL$9$k$H$3$m(B}
187
b60e2de6dbc3 Add chapter on branch management.
Bryan O'Sullivan <bos@serpentine.com>
parents: 184
diff changeset
624
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
625 %Once you and your team set up some shared repositories and start
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
626 %propagating changes back and forth between local and shared repos, you
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
627 %begin to face a related, but slightly different challenge: that of
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
628 %managing the multiple directions in which your team may be moving at
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
629 %once. Even though this subject is intimately related to how your team
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
630 %collaborates, it's dense enough to merit treatment of its own, in
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
631 %chapter~\ref{chap:branch}.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
632
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
633 $B3+H/<T$H$=$N%A!<%`$,6&M-%j%]%8%H%j$r%;%C%H%"%C%W$7!$%m!<%+%k$H6&M-%j%]%8(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
634 $B%H%j$N4V$GJQ99$r$d$j$H$j$7;O$a$k$H!$$3$l$H4XO"$9$k$,!$$d$d0[$J$C$?:$Fq$K(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
635 $BD>LL$9$k$h$&$K$J$k$@$m$&!%$=$l$O!$%A!<%`$,F1;~$K?J$a$kB?J}LL$X$N3+H/$r$I(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
636 $B$N$h$&$K4IM}$9$k$+$H$$$&LdBj$G$"$k!%$3$N2]Bj$O!$%A!<%`$,$I$N$h$&$K6&F1$9(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
637 $B$k$+$H:,8;E*$K4X78$7$F$*$j!$$3$l$@$1$N$?$a$K(B~\ref{chap:branch}$B$H$$$&0l>O$r(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
638 $BHq$d$92ACM$,$"$k$@$m$&!%(B
187
b60e2de6dbc3 Add chapter on branch management.
Bryan O'Sullivan <bos@serpentine.com>
parents: 184
diff changeset
639
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
640 %\section{The technical side of sharing}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
641 \section{$B6&M-$N5;=QE*B&LL(B}
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
642
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
643 %The remainder of this chapter is devoted to the question of sharing
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
644 %changes with your collaborators.
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
645
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
646 $B$3$N>O$N;D$j$NItJ,$G$O!$6(NO<T$HJQ99$r6&M-$9$k:]$N5?LdE@$K$D$$$F=R$Y$k!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
647
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
648 %\section{Informal sharing with \hgcmd{serve}}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
649 \section{\hgcmd{serve}$B$K$h$kHs8x<0$J6&M-(B}
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
650 \label{sec:collab:serve}
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
651
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
652 %Mercurial's \hgcmd{serve} command is wonderfully suited to small,
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
653 %tight-knit, and fast-paced group environments. It also provides a
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
654 %great way to get a feel for using Mercurial commands over a network.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
655
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
656 Mercurial$B$N(B\hgcmd{serve}$B%3%^%s%I$O!$>.5,LO$G6[L)$J3+H/%Z!<%9$NB.$$%0%k!<(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
657 $B%W4D6-$K$H$F$bE,$7$F$$$k!%(BMercurial$B%3%^%s%I$r%M%C%H%o!<%/1[$7$K;H$&AG@2(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
658 $B$i$7$5$rBN46$G$-$k$@$m$&!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
659
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
660 %Run \hgcmd{serve} inside a repository, and in under a second it will
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
661 %bring up a specialised HTTP server; this will accept connections from
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
662 %any client, and serve up data for that repository until you terminate
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
663 %it. Anyone who knows the URL of the server you just started, and can
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
664 %talk to your computer over the network, can then use a web browser or
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
665 %Mercurial to read data from that repository. A URL for a
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
666 %\hgcmd{serve} instance running on a laptop is likely to look something
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
667 %like \Verb|http://my-laptop.local:8000/|.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
668
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
669 $B%j%]%8%H%jFb$G(B\hgcmd{serve}$B%3%^%s%I$r5/F0$9$k$H!$$9$0$5$^FCJL$J(BHTTP$B%5!<%P(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
670 $B$,N)$A>e$2$i$l$k!%$3$l$O$"$i$f$k%/%i%$%"%s%H$+$i$N@\B3$r<u$1F~$l!$%j%]%8(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
671 $B%H%j$N%G!<%?$r%5!<%S%9$9$k!%5/F0$7$?%5!<%P$N(BURL$B$rCN$C$F$$$k?M$d$"$J$?$N%3(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
672 $B%s%T%e!<%?$K%M%C%H%o!<%/$r2p$7$F@\B32DG=$J?M$OC/$G$b!$%&%'%V%V%i%&%6$d(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
673 Mercurial$B$r;H$C$F%j%]%8%H%j$+$i%G!<%?$rFI$_=P$9$3$H$,$G$-$k!%%i%C%W%H%C%W(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
674 $B$G5/F0$5$l$?(B\hgcmd{serve}$B%$%s%9%?%s%9$X$N(BURL$B$O(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
675 \Verb|http://my-laptop.local:8000/|$B$N$h$&$K$J$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
676
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
677 %The \hgcmd{serve} command is \emph{not} a general-purpose web server.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
678 %It can do only two things:
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
679 \hgcmd{serve}$B%3%^%s%I$O0lHLMQES8~$1$N%&%'%V%5!<%P$G$O(B\emph{$B$J$$(B}$B!%$3$N%3(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
680 $B%^%s%I$O<!$N(B2$B$D$N$3$H$@$1$r9T$&!'(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
681 \begin{itemize}
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
682 %\item Allow people to browse the history of the repository it's
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
683 % serving, from their normal web browsers.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
684 \item $BIaDL$N%&%'%V%V%i%&%6$r;H$C$F$$$k%f!<%6$KBP$7$F$O%j%]%8%H%j$NMzNr(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
685 $B$X$N;2>H!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
686 %\item Speak Mercurial's wire protocol, so that people can
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
687 % \hgcmd{clone} or \hgcmd{pull} changes from that repository.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
688 \item Mercurial$B$r;H$C$F$$$k%f!<%6$KBP$7$F$O!$(B\hgcmd{clone}$B$^$?$O(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
689 \hgcmd{pull}$B$,$G$-$k$h$&$K(BMercurial$B%o%$%d%W%m%H%3%k$N%5%]!<%H!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
690
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
691 \end{itemize}
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
692 %In particular, \hgcmd{serve} won't allow remote users to \emph{modify}
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
693 %your repository. It's intended for read-only use.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
694
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
695 \hgcmd{serve}$B$O%j%b!<%H%f!<%6$K%j%]%8%H%j$NJQ99$r5v2D$7$J$$!%$3$N%3%^%s(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
696 $B%I$OFI$_=P$7$N$_$N;HMQ$r0U?^$7$F$$$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
697
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
698 %If you're getting started with Mercurial, there's nothing to prevent
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
699 %you from using \hgcmd{serve} to serve up a repository on your own
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
700 %computer, then use commands like \hgcmd{clone}, \hgcmd{incoming}, and
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
701 %so on to talk to that server as if the repository was hosted remotely.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
702 %This can help you to quickly get acquainted with using commands on
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
703 %network-hosted repositories.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
704
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
705 Mercurial$B$N(B\hgcmd{serve}$B%3%^%s%I$r;H$C$F!$4JC1$K<j85$N%3%s%T%e!<%?$G%j%](B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
706 $B%8%H%j%5!<%S%9$r9T$&$3$H$,$G$-$k!%1sJ}$K$"$k%5!<%P$H$d$j$H$j$9$k$N$HF1MM(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
707 $B$K(B\hgcmd{clone}$B!$(B\hgcmd{incoming}$BEy$N%3%^%s%I$r;H$&$3$H$,$G$-$k!%$3$l$O%M%C(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
708 $B%H%o!<%/$G%j%]%8%H%j$rDs6!$9$kN}=,$K$J$k$@$m$&!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
709
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
710 %\subsection{A few things to keep in mind}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
711 \subsection{$B3P$($F$*$/$Y$-(B2, 3$B$NE@(B}
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
712
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
713 %Because it provides unauthenticated read access to all clients, you
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
714 %should only use \hgcmd{serve} in an environment where you either don't
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
715 %care, or have complete control over, who can access your network and
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
716 %pull data from your repository.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
717
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
718 \hgcmd{serve}$B$O!$G'>Z$J$7$G%"%/%;%9$r5v$9$?$a!$%M%C%H%o!<%/$X$N%"%/%;%9(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
719 $B$d!$%j%]%8%H%j$+$i$N%G!<%?(Bpull$B$rC/$,9T$C$F$b9=$o$J$$$h$&$J%M%C%H%o!<%/4D(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
720 $B6-$d!$40A4$J@)8f$,2DG=$J%M%C%H%o!<%/4D6-$G$N$_;HMQ$9$Y$-$G$"$k!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
721
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
722 %The \hgcmd{serve} command knows nothing about any firewall software
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
723 %you might have installed on your system or network. It cannot detect
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
724 %or control your firewall software. If other people are unable to talk
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
725 %to a running \hgcmd{serve} instance, the second thing you should do
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
726 %(\emph{after} you make sure that they're using the correct URL) is
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
727 %check your firewall configuration.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
728
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
729 \hgcmd{serve}$B%3%^%s%I$O!$%7%9%F%`$d%M%C%H%o!<%/$K%$%s%9%H!<%k$5$l$F$$$k%U%!(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
730 $B%$%"%&%)!<%k%=%U%H%&%'%"$K$D$$$F$O2?$b4XCN$7$J$$!%$3$N%3%^%s%I$O%U%!%$%"(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
731 $B%&%)!<%k$NH/8+$d@)8f$O$G$-$J$$!%B>$N%f!<%6$,(B\hgcmd{serve}$B%3%^%s%I$K%"%/%;(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
732 $B%9$G$-$J$$>l9g!$$^$:H`$i$,@5$7$$(BURL$B$r;HMQ$7$F$$$k$+3NG'$7!$$=$N<!$K$9$Y$-(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
733 $B$3$H$O!$%U%!%$%"%&%)!<%k$N@_Dj$r3NG'$9$k$3$H$G$"$k!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
734
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
735 %By default, \hgcmd{serve} listens for incoming connections on
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
736 %port~8000. If another process is already listening on the port you
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
737 %want to use, you can specify a different port to listen on using the
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
738 %\hgopt{serve}{-p} option.
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
739
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
740 $B%G%U%)%k%H$G$O(B\hgcmd{serve}$B$OE~Ce$9$k@\B3$r%]!<%H(B~8000$B$GBT$D!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
741 $B;HMQ$7$?$$%]!<%H$r$9$G$KB>$N%W%m%;%9$,;HMQ$7$F$$$k>l9g$O(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
742 \hgopt{serve}{-p}$B%*%W%7%g%s$r;H$C$FJL$N%]!<%H$GBT5!$9$k$h$&$K;XDj$9$k$3(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
743 $B$H$,$G$-$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
744
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
745 %Normally, when \hgcmd{serve} starts, it prints no output, which can be
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
746 %a bit unnerving. If you'd like to confirm that it is indeed running
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
747 %correctly, and find out what URL you should send to your
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
748 %collaborators, start it with the \hggopt{-v} option.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
749
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
750 $BDL>o!$(B\hgcmd{serve}$B$O;OF0$7$F$b%a%C%;!<%8$N=PNO$r9T$o$J$$!%$3$l$OB?>/:.Mp(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
751 $B$5$;$k$+$b$7$l$J$$!%<B:]$K@5$7$/F0:n$7$F$$$k$+$I$&$+3NG'$7$?$$>l9g$d!$6((B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
752 $BNO<T$K65$($k(BURL$B$,CN$j$?$$>l9g$O(B\hggopt{-v}$B%*%W%7%g%s$r;XDj$9$k!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
753
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
754 %\section{Using the Secure Shell (ssh) protocol}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
755 \section{Secure Shell (ssh)$B%W%m%H%3%k$N;HMQ(B}
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
756 \label{sec:collab:ssh}
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
757
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
758 %You can pull and push changes securely over a network connection using
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
759 %the Secure Shell (\texttt{ssh}) protocol. To use this successfully,
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
760 %you may have to do a little bit of configuration on the client or
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
761 %server sides.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
762
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
763 Secure Shell (\texttt{ssh})$B%W%m%H%3%k$r;H$&$3$H$G!$JQ99$r%M%C%H%o!<%/>e$G(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
764 $B0BA4$K(Bpush$B$G$-$k!%$3$N%W%m%H%3%k$NMxMQ$K$O!$%/%i%$%"%s%HB&$+%5!<%PB&$K>/!9(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
765 $B@_Dj$,I,MW$G$"$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
766
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
767 %If you're not familiar with ssh, it's the name of both a command and a
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
768 %network protocol that let you securely communicate with another
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
769 %computer. To use it with Mercurial, you'll be setting up one or more
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
770 %user accounts on a server so that remote users can log in and execute
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
771 %commands.
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
772
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
773 ssh$B$KFk@w$_$N$J$$%f!<%6$N$?$a$K@bL@$9$k$H!$(Bssh$B$OB>$N%3%s%T%e!<%?$H0BA4$K(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
774 $BDL?.$r9T$&$?$a$N%3%^%s%I$*$h$S%M%C%H%o!<%/%W%m%H%3%k$NL>>N$G$"$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
775 Mercurial$B$G;H$&$?$a$K$O!$(B1$B$D0J>e$N%"%+%&%s%H$r%5!<%P$K@_Dj$7!$%j%b!<%H%f!<(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
776 $B%6$,%m%0%$%s$7!$%3%^%s%I$r<B9T$G$-$k$h$&$K$9$kI,MW$,$"$k!%(B
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
777
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
778 %(If you \emph{are} familiar with ssh, you'll probably find some of the
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
779 %material that follows to be elementary in nature.)
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
780
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
781 $B!J(Bssh$B$KFk@w$_$N$"$k%f!<%6$K$O0J2<$NOC$O=iJbE*$K46$8$i$l$k$K0c$$$J$$!%!K(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
782
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
783 %\subsection{How to read and write ssh URLs}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
784 \subsection{ssh$B$N(BURL$B$r$I$N$h$&$KFI$`$+(B}
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
785
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
786 %An ssh URL tends to look like this:
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
787 ssh URL$B$O0lHL$K<!$N$h$&$K$J$k!'(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
788 \begin{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
789 ssh://bos@hg.serpentine.com:22/hg/hgbook
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
790 \end{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
791 \begin{enumerate}
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
792 %\item The ``\texttt{ssh://}'' part tells Mercurial to use the ssh
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
793 % protocol.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
794 \item ``\texttt{ssh://}''$BIt$O(BMercurial$B$K(Bssh$B%W%m%H%3%k$r;H$&$3$H$r;X<($9(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
795 $B$k!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
796 %\item The ``\texttt{bos@}'' component indicates what username to log
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
797 % into the server as. You can leave this out if the remote username
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
798 % is the same as your local username.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
799 \item ``\texttt{bos@}''$BIt$O%5!<%P$X$N%m%0%$%s$K;H$&%f!<%6L>$r;XDj$9$k!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
800 $B%m!<%+%k%^%7%s$G$N%f!<%6L>$HF1$8$b$N$r;HMQ$9$k>l9g$O;XDj$7$J$/$F$b$h$$!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
801 %\item The ``\texttt{hg.serpentine.com}'' gives the hostname of the
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
802 % server to log into.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
803 \item ``\texttt{hg.serpentine.com}''$B$O%m%0%$%s$9$k%5!<%P$N%[%9%HL>$G$"(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
804 $B$k!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
805 %\item The ``:22'' identifies the port number to connect to the server
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
806 % on. The default port is~22, so you only need to specify this part
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
807 % if you're \emph{not} using port~22.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
808 \item ``:22''$B%5!<%P$N@\B3%]!<%H$r@)Dj$9$k!%%G%U%)%k%H%]!<%H$O(B~22$B$J$N(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
809 $B$G!$(B22$BHV0J30$r;H$&;~$N$_;XDj$9$kI,MW$,$"$k!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
810 %\item The remainder of the URL is the local path to the repository on
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
811 % the server.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
812 \item URL$B$N;D$j$NItJ,$O%5!<%P>e$N%j%]%8%H%j$X$N%m!<%+%k%Q%9$G$"$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
813 \end{enumerate}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
814
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
815 %There's plenty of scope for confusion with the path component of ssh
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
816 %URLs, as there is no standard way for tools to interpret it. Some
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
817 %programs behave differently than others when dealing with these paths.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
818 %This isn't an ideal situation, but it's unlikely to change. Please
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
819 %read the following paragraphs carefully.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
820
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
821 ssh URL$B$N%Q%9It$K$D$$$F$O!$%D!<%k8~$1$KJQ49$9$kI8=`E*$JJ}K!$,$J$$$?$a!$:.(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
822 $BMp$,B?$$!%$$$/$D$+$N%W%m%0%i%`$H!$$=$NB>$N%W%m%0%i%`$G$O%Q%9$r07$&:]$N5s(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
823 $BF0$,0[$J$C$F$$$k!%$3$N>u67$OM}A[$H$O$+$1N%$l$F$$$k$,!$=$@5$9$k$N$O:$Fq$@(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
824 $B$H;W$o$l$k!%0J2<$NCJMn$rCm0U?<$/FI$s$GM_$7$$!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
825
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
826 %Mercurial treats the path to a repository on the server as relative to
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
827 %the remote user's home directory. For example, if user \texttt{foo}
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
828 %on the server has a home directory of \dirname{/home/foo}, then an ssh
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
829 %URL that contains a path component of \dirname{bar}
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
830 %\emph{really} refers to the directory \dirname{/home/foo/bar}.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
831 Mercurial$B$O%j%]%8%H%j$X$N%Q%9$r%j%b!<%H%f!<%6$N%[!<%`%G%#%l%/%H%j$+$i$NAj(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
832 $BBP%Q%9$H$7$F<h$j07$&!%Nc$($P%5!<%P$G%f!<%6(B\texttt{foo}$B$O%[!<%`%G%#%l%/%H(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
833 $B%j(B\dirname{/home/foo}$B$r;}$D!%=>$C$F(B\dirname{bar}$B$r4^$`(Bssh URL$B$N%Q%9It$O(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
834 \dirname{/home/foo/bar}$B$H$J$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
835
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
836 %If you want to specify a path relative to another user's home
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
837 %directory, you can use a path that starts with a tilde character
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
838 %followed by the user's name (let's call them \texttt{otheruser}), like
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
839 %this.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
840 $BB>$N%f!<%6$N%[!<%`%G%#%l%/%H%j$X$NAjBP%Q%9$r;XDj$7$?$$>l9g$O!$<!$NNc$N$h(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
841 $B$&$K%A%k%@$K%f!<%6L>$rB3$1$?%Q%9$r;H$&$3$H$,$G$-$k!%!J$3$3$G$OB>$N%f!<%6(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
842 $B$N%f!<%6L>$r(B\texttt{otheruser}$B$H$9$k!%!K(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
843 \begin{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
844 ssh://server/~otheruser/hg/repo
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
845 \end{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
846
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
847 %And if you really want to specify an \emph{absolute} path on the
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
848 %server, begin the path component with two slashes, as in this example.
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
849 $B%5!<%P>e$G@dBP%Q%9$r;XDj$7$?$$>l9g$O!$<!$NNc$N$h$&$K%Q%9It$r(B2$B$D$N%9%i%C%7%e(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
850 $B$G;O$a$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
851 \begin{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
852 ssh://server//absolute/path
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
853 \end{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
854
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
855 %\subsection{Finding an ssh client for your system}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
856 \subsection{$BMxMQCf$N%7%9%F%`8~$1$N(Bssh client$B$r8+$D$1$k(B}
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
857
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
858 %Almost every Unix-like system comes with OpenSSH preinstalled. If
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
859 %you're using such a system, run \Verb|which ssh| to find out if
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
860 %the \command{ssh} command is installed (it's usually in
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
861 %\dirname{/usr/bin}). In the unlikely event that it isn't present,
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
862 %take a look at your system documentation to figure out how to install
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
863 %it.
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
864
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
865 Unix$B7O%7%9%F%`$NKX$s$I$O(BOpenSSH$B$,%W%j%$%s%9%H!<%k$5$l$F$$$k!%$=$N$h$&$J%7(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
866 $B%9%F%`$G$O!$(B\Verb|which ssh|$B$r<B9T$7$F(B\command{ssh}$B%3%^%s%I$,%$%s%9%H!<%k(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
867 $B$5$l$F$$$k$+$I$&$+D4$Y$k$3$H$,$G$-$k!%!JIaDL$O(B\dirname{/usr/bin}$B$K%$%s%9(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
868 $B%H!<%k$5$l$F$$$k$O$:$@!%!KK|$,0l%$%s%9%H!<%k$5$l$F$$$J$+$C$?>l9g$O!$%7%9(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
869 $B%F%`$N%I%-%e%a%s%H$r;2>H$7$F%$%s%9%H!<%kJ}K!$rD4$Y$FM_$7$$!%(B
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
870
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
871 %On Windows, the TortoiseHg package is bundled with a version of Simon
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
872 %Tatham's excellent \command{plink} command, and you should not
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
873 %need to do any further configuration.
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
874
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
875 Windows$B$G$O!$(BTortoiseHg$B%Q%C%1!<%8$K(BSimon Tatham$B$K$h$kM%$l$?%3%^%s%I$G$"$k(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
876 \command{plink}$B$,F1:-$5$l$F$*$j!$2?$b@_Dj$9$k$3$H$J$/MxMQ2DG=$G$"$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
877
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
878 %\subsection{Generating a key pair}
370
47830e17cd00 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 369
diff changeset
879 \subsection{$B80%Z%"$N:n@.(B}
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
880
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
881 %To avoid the need to repetitively type a password every time you need to
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
882 %use your ssh client, I recommend generating a key pair.
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
883
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
884 ssh$B%/%i%$%"%s%H$r;H$&EY$K7+JV$7%Q%9%o!<%I$rF~NO$9$k$N$rHr$1$k$?$a$K!$80(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
885 $B%Z%"$r:n@.$9$k$3$H$r4+$a$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
886
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
887 \begin{note}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
888 %Key pairs are not mandatory
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
889 $B80%Z%"$OI,?\$G$O$J$$(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
890
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
891 %Mercurial knows nothing about ssh authentication or key pairs. You can,
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
892 %if you like, safely ignore this section and the one that follows until
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
893 %you grow tired of repeatedly typing ssh passwords.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
894
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
895 Mercurial$B<+?H$O(Bssh$B$G$NG'>Z$d80%Z%"$K$D$$$F$O0l@Z4XCN$7$J$$!%(Bssh$B%Q%9%o!<%I(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
896 $B$NF~NO$K7q$`$3$H$,$J$1$l$P!$$3$N@a$H8e$N@a$rL5;k$7$F$b:9$7;Y$($J$$!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
897 \end{note}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
898
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
899 \begin{itemize}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
900 % \item On a Unix-like system, the \command{ssh-keygen} command will do
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
901 % the trick.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
902 \item Unix$B7O%7%9%F%`$G$O!$(B\command{ssh-keygen}$B%3%^%s%I$G80%Z%"$r:n@.$G$-$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
903 % \item On Windows, if you're using TortoiseHg, you may need to download
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
904 % a command named \command{puttygen} from the PuTTY web site
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
905 % \url{http://www.chiark.greenend.org.uk/~sgtatham/putty} to
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
906 % generate a key pair. See the \command{puttygen} documentation
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
907 % \url{http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter8.htm}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
908 % for details of how use the command.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
909 \item Windows$B$G(BTortoiseHg$B$r;H$C$F$$$k$N$G$"$l$P!$(BPuTTY$B$N%&%'%V%5%$%H(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
910 \url{http://www.chiark.greenend.org.uk/~sgtatham/putty}$B$+$i%@%&%s(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
911 $B%m!<%I$G$-$k(B\command{puttygen}$B$H$$$&%3%^%s%I$G80%Z%"(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
912 $B$r:n@.$G$-$k!%$3$N%3%^%s%I$N;HMQK!$N>\:Y$K$D$$$F$O(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
913 \command{puttygen}$B$N%I%-%e%a%s%H(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
914 \url{http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter8.htm}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
915 $B$r;2>H$5$l$?$$!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
916 \end{itemize}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
917
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
918 %When you generate a key pair, it's usually \emph{highly} advisable to
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
919 %protect it with a passphrase. (The only time that you might not want
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
920 %to do this id when you're using the ssh protocol for automated tasks
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
921 %on a secure network.)
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
922
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
923 $B80%Z%"$r:n$k:]$K$O$G$-$k$@$1%Q%9%U%l!<%:$GJ]8n$9$k$3$H$r6/$/4+$a$k!%!J0B(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
924 $BA4$J%M%C%H%o!<%/$G(Bssh$B%W%m%H%3%k$K$h$C$F<+F0%?%9%/$N<B9T$r$9$k>l9g$K$O$3(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
925 $B$&$7$?$/$J$$$@$m$&!%!K(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
926
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
927 %Simply generating a key pair isn't enough, however. You'll need to
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
928 %add the public key to the set of authorised keys for whatever user
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
929 %you're logging in remotely as. For servers using OpenSSH (the vast
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
930 %majority), this will mean adding the public key to a list in a file
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
931 %called \sfilename{authorized\_keys} in their \sdirname{.ssh}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
932 %directory.
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
933
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
934 $B$7$+$780%Z%"$r:n$k$@$1$G$O==J,$G$J$$!%%j%b!<%H$K%m%0%$%s$7$?$$%^%7%s$N%f!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
935 $B%6$N(Bauthorised keys$B$H$7$F8x3+80$rDI2C$9$kI,MW$,$"$k!%(BOpenSSH$B$r;H$C$F$$$k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
936 $B%5!<%P!JBgItJ,$,AjEv$9$k!K$G$O(B\sdirname{.ssh}$B%G%#%l%/%H%j$N(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
937 \sfilename{authorized\_keys}$B%U%!%$%k$X8x3+80$rDI2C$9$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
938
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
939 %On a Unix-like system, your public key will have a \filename{.pub}
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
940 %extension. If you're using \command{puttygen} on Windows, you can
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
941 %save the public key to a file of your choosing, or paste it from the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
942 %window it's displayed in straight into the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
943 %\sfilename{authorized\_keys} file.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
944
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
945 Unix$B7O%7%9%F%`$G$O8x3+80$O(B\filename{.pub}$B$H$$$&3HD%;R$r;}$D!%(BWindows$B$G(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
946 \command{puttygen}$B$r;HMQ$9$k>l9g$O!$%U%!%$%k%;!<%V$7$?8x3+80$+!$80$rI=<((B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
947 $B$7$F$$$k%&%#%s%I%&$+$i(B\sfilename{authorized\_keys}$B%U%!%$%k$K%Z!<%9%H$9$l(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
948 $B$P$h$$!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
949
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
950 %\subsection{Using an authentication agent}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
951 \subsection{$BG'>Z%(!<%8%'%s%H$N;HMQ(B}
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
952
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
953 %An authentication agent is a daemon that stores passphrases in memory
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
954 %(so it will forget passphrases if you log out and log back in again).
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
955 %An ssh client will notice if it's running, and query it for a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
956 %passphrase. If there's no authentication agent running, or the agent
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
957 %doesn't store the necessary passphrase, you'll have to type your
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
958 %passphrase every time Mercurial tries to communicate with a server on
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
959 %your behalf (e.g.~whenever you pull or push changes).
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
960
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
961 $BG'>Z%(!<%8%'%s%H$O%Q%9%U%l!<%:$r%a%b%j$KJ]B8$9$k%(!<%8%'%s%H$G$"$k!%!J%m(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
962 $B%0%"%&%H$7!$:F$S%m%0%$%s$7$?;~$K$O%Q%9%U%l!<%:$O<:$o$l$F$$$k!%!K(Bssh$B%/%i%$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
963 $B%"%s%H$O$3$N%G!<%b%s$,F0:n$7$F$$$k$3$H$rG'<1$7!$%Q%9%U%l!<%:$NLd$$9g$o$;(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
964 $B$r9T$&!%G'>Z%(!<%8%'%s%H$,F0:n$7$F$$$J$$>l9g$d%(!<%8%'%s%H$,I,MW$J%Q%9%U(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
965 $B%l!<%:$rJ]B8$7$F$$$J$$>l9g$O!$(BMercurial$B$,%5!<%P$H!JJQ99$r(Bpull$B$d(Bpush$B$9$k!K(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
966 $BDL?.$N;~$K%Q%9%U%l!<%:$rF~NO$9$kI,MW$,$"$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
967
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
968 %The downside of storing passphrases in an agent is that it's possible
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
969 %for a well-prepared attacker to recover the plain text of your
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
970 %passphrases, in some cases even if your system has been power-cycled.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
971 %You should make your own judgment as to whether this is an acceptable
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
972 %risk. It certainly saves a lot of repeated typing.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
973
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
974 $B%Q%9%U%l!<%:$r%(!<%8%'%s%H$K5-21$5$;$kJ@32$O!$%Q%o!<%5%$%/%k$r9T$C$F$b>l(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
975 $B9g$K$h$C$F$O<~E~$J<jCJ$rMQ$$$k967b<T$K%Q%9%U%l!<%:$N%W%l!<%s%F%-%9%H>pJs(B
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
976 $B$r<hF@$5$l$k2DG=@-$,$"$k$3$H$G$"$k!%$3$N%j%9%/$,5vMF$G$-$k$+$I$&$+$O<+J,(B
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
977 $B<+?H$GH=CG$7$FM_$7$$!%$3$NJ}K!$rMQ$$$k$3$H$G!$%?%$%W2s?t$r8:$i$;$k$3$H$O(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
978 $B3N$+$G$"$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
979
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
980 %On Unix-like systems, the agent is called \command{ssh-agent}, and
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
981 %it's often run automatically for you when you log in. You'll need to
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
982 %use the \command{ssh-add} command to add passphrases to the agent's
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
983 %store.
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
984
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
985 Unix$B7O%7%9%F%`$G$O%(!<%8%'%s%H$O(B\command{ssh-agent}$B$H8F$P$l!$%m%0%$%s$9$k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
986 $B$H<+F0E*$K5/F0$5$l$k!%(B\command{ssh-add}$B%3%^%s%I$rMQ$$$F%Q%9%U%l!<%:$r%(!<(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
987 $B%8%'%s%H$K5-21$5$;$k!%(B
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
988
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
989 %On Windows, if you're using TortoiseHg, the <command>pageant</command>
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
990 %command acts as the agent. As with \command{puttygen}, you'll need to
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
991 %download \command{pageant}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
992 %\url{http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
993 %from the PuTTY web site and read its documentation
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
994 %\url{http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter9.html#pageant}.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
995 %The \command{pageant} command adds an icon to your system tray that will
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
996 %let you manage stored passphrases.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
997
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
998 Windows$B$G(BTortoiseHg$B$r;H$C$F$$$k>l9g$O!$(B\command{pageant}$B%3%^%s%I$,%(!<%8%'(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
999 $B%s%H$H$7$FF0:n$9$k!%(B \command{puttygen}$B%3%^%s%I$N;~$HF1MM$K(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1000 \command{pageant}$B%3%^%s%I$O(BPuTTY$B$N%&%'%V%5%$%H(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1001 \url{http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html}$B$+$i(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1002 $B%@%&%s%m!<%I$G$-$k!%;HMQK!$K$D$$$F$O(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1003 \url{http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter9.html#pageant}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1004 $B$r;2>H$5$l$?$$!%(B \command{pageant}$B%3%^%s%I$O5-21$7$?%Q%9%U%l!<%:$r4IM}$9(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1005 $B$k$?$a$K%7%9%F%`%H%l%$$K%"%$%3%s$rDI2C$9$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1006
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1007 %\subsection{Configuring the server side properly}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1008 \subsection{$B%5!<%P$N@5$7$$@_Dj(B}
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1009
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1010 %Because ssh can be fiddly to set up if you're new to it, a variety of
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1011 %things can go wrong. Add Mercurial on top, and there's plenty more
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1012 %scope for head-scratching. Most of these potential problems occur on
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1013 %the server side, not the client side. The good news is that once you've
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1014 %gotten a configuration working, it will usually continue to work
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1015 %indefinitely.
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1016
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1017 ssh$B$O47$l$F$$$J$$$H@_Dj$,Fq$7$$$?$a!$?7$?$K;H$$;O$a$k>l9g!$MM!9$JIT6q9g$,(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1018 $B5/$-$k2DG=@-$,$"$k!%(BMercurial$B$H6&$KF0$+$9>l9g!$$5$i$KB?$/$,BT$A9=$($F$$(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1019 $B$k!%$3$l$i$NKX$s$I$,%/%i%$%"%s%HB&$G$O$J$/%5!<%PB&$G5/$-$k!%$7$+$70lEY$-(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1020 $B$A$s$HF0:n$9$k@_Dj$r$7$F$7$^$($P!$F0:n$O$:$C$HB3$/!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1021
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1022 %Before you try using Mercurial to talk to an ssh server, it's best to
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1023 %make sure that you can use the normal \command{ssh} or \command{putty}
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1024 %command to talk to the server first. If you run into problems with
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1025 %using these commands directly, Mercurial surely won't work. Worse, it
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1026 %will obscure the underlying problem. Any time you want to debug
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1027 %ssh-related Mercurial problems, you should drop back to making sure
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1028 %that plain ssh client commands work first, \emph{before} you worry
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1029 %about whether there's a problem with Mercurial.
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1030
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1031 Mercurial$B$+$i(Bssh$B%5!<%P$K@\B3$9$kA0$K!$(B\command{ssh}$B$^$?$O(B\command{putty}
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1032 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1033 $B;H$C$FLdBj$,5/$-$k$h$&$G$"$l$P!$(BMercurial$B$OF0:n$7$J$$$O$:$@!%(B ssh$B$N>e$G(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1034 Mercurial$B$r;H$&$3$H$G!$2<0L$NLdBj$,1#$l$F$7$^$&$N$G!$(Bssh$B$K4XO"$7$?(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1035 Mercurial$B$NLdBj$r%G%P%C%0$9$k;~$O!$$^$:(Bssh$B%/%i%$%"%s%H%3%^%s%I<+BN$,F0:n(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1036 $B$9$k$3$H$r3NG'$7!$$=$N8e$K(BMercurial$B$NLdBj$r2r7h$9$Y$-$G$"$k!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1037
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1038 %The first thing to be sure of on the server side is that you can
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1039 %actually log in from another machine at all. If you can't use
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1040 %\command{ssh} or \command{putty} to log in, the error message you get
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1041 %may give you a few hints as to what's wrong. The most common problems
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1042 %are as follows.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1043
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1044 $B%5!<%PB&$G$^$:3NG'$9$Y$-$J$N$O!$B>$N%^%7%s$+$i%m%0%$%s$G$-$k$+$I$&$+$G$"(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1045 $B$k!%(B \command{ssh}$B$^$?$O(B\command{putty}$B%3%^%s%I$G%m%0%$%s$G$-$J$$>l9g$O!$(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1046 $B%(%i!<%a%C%;!<%8$K2?$,0-$$$N$+<($9%R%s%H$,$"$k$+$bCN$l$J$$!%:G$b0lHLE*$J(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1047 $BLdBj$r0J2<$KNs5s$9$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1048 \begin{itemize}
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1049 %\item If you get a ``connection refused'' error, either there isn't an
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1050 % SSH daemon running on the server at all, or it's inaccessible due to
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1051 % firewall configuration.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1052 \item ``connection refused''$B%(%i!<$,=P$k;~$O!$(BSSH$B%G!<%b%s$,F0:n$7$F$$$J(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1053 $B$$$+!$%U%!%$%"%&%)!<%k@_Dj$N$?$a$K%^%7%s$X$N%"%/%;%9$,IT2DG=$G$"(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1054 $B$k2DG=@-$,$"$k!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1055 %\item If you get a ``no route to host'' error, you either have an
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1056 % incorrect address for the server or a seriously locked down firewall
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1057 % that won't admit its existence at all.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1058 \item ``no route to host''$B%(%i!<$,=P$k>l9g$O!$%5!<%P$N%"%I%l%9$r4V0c$((B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1059 $B$F$$$k$+!$%U%!%$%"%&%)!<%k$,%5!<%P$r40A4$K1#$7$F$7$^$C$F$$$k$3$H(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1060 $B$,9M$($i$l$k!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1061 %\item If you get a ``permission denied'' error, you may have mistyped
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1062 % the username on the server, or you could have mistyped your key's
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1063 % passphrase or the remote user's password.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1064 \item ``permission denied''$B%(%i!<$,=P$k>l9g$O!$%f!<%6L>$r4V0c$C$FF~NO$7(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1065 $B$F$$$k$+!$%m%0%$%sMQ80$N%Q%9%U%l!<%:$d%f!<%6%Q%9%o!<%I$r4V0c$C$F(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1066 $BF~NO$7$F$$$k2DG=@-$,$"$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1067 \end{itemize}
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1068 %In summary, if you're having trouble talking to the server's ssh
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1069 %daemon, first make sure that one is running at all. On many systems
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1070 %it will be installed, but disabled, by default. Once you're done with
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1071 %this step, you should then check that the server's firewall is
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1072 %configured to allow incoming connections on the port the ssh daemon is
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1073 %listening on (usually~22). Don't worry about more exotic
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1074 %possibilities for misconfiguration until you've checked these two
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1075 %first.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1076
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1077 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1078 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1079 $B$k%7%9%F%`$b$"$k!%$3$l$r3NG'$7$?8e$G%5!<%P$N%U%!%$%"%&%)!<%k$,(Bssh$B%G!<%b%s(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1080 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1081 $B$N2DG=@-$r9M$($kA0$K$^$:$3$N(B2$BE@$r3NG'$9$Y$-$G$"$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1082
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1083 %If you're using an authentication agent on the client side to store
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1084 %passphrases for your keys, you ought to be able to log into the server
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1085 %without being prompted for a passphrase or a password. If you're
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1086 %prompted for a passphrase, there are a few possible culprits.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1087
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1088 $B%/%i%$%"%s%HB&$G80$N%Q%9%U%l!<%:$r5-21$5$;$k$?$a$KG'>Z%(!<%8%'%s%H$rF0$+(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1089 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1090 $B%m%0%$%s$G$-$k$O$:$@!%$b$7%Q%9%U%l!<%:$NF~NO$rMW5a$5$l$k$J$i!$$$$/$D$+$N(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1091 $B2DG=@-$,9M$($i$l$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1092 \begin{itemize}
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1093 %\item You might have forgotten to use \command{ssh-add} or
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1094 % \command{pageant} to store the passphrase.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1095 \item $B%Q%9%U%l!<%:$r5-21$5$;$k$?$a$K(B\command{ssh-add}$B$^$?$O(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1096 \command{pageant}$B$r<B9T$7$F$$$J$$!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1097 %\item You might have stored the passphrase for the wrong key.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1098 \item $BJL$N%-!<$N%Q%9%U%l!<%:$r5-21$5$;$F$$$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1099 \end{itemize}
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1100 %If you're being prompted for the remote user's password, there are
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1101 %another few possible problems to check.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1102 $B%j%b!<%H%f!<%6$N%Q%9%o!<%I$rMW5a$5$l$k>l9g$OJL$NLdBj$,$"$k$+$b$7$l$J$$!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1103 \begin{itemize}
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1104 %\item Either the user's home directory or their \sdirname{.ssh}
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1105 % directory might have excessively liberal permissions. As a result,
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1106
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1107 % the ssh daemon will not trust or read their
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1108 % \sfilename{authorized\_keys} file. For example, a group-writable
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1109 % home or \sdirname{.ssh} directory will often cause this symptom.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1110 \item $B%f!<%6$N%[!<%`%G%#%l%/%H%j$^$?$O(B\sdirname{.ssh}$B%G%#%l%/%H%j$N%Q!<(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1111 $B%_%C%7%g%s$,4K$9$.$k!%$3$N$?$a!$(Bssh$B%G!<%b%s$,(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1112 \sfilename{authorized\_keys}\sfilename{authorized\_keys}$B%U%!%$%k$r(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1113 $B?.Mj$G$-$J$$$+!$$"$k$$$OC1=c$KFI$a$J$$!%Nc$($P%0%k!<%W=q$-9~$_%Q!<(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1114 $B%_%C%7%g%s$N$"$k%[!<%`%G%#%l%/%H%j$^$?$O(B\sdirname{.ssh}$B%G%#%l%/%H(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1115 $B%j$O$3$NLdBj$r$7$P$7$P0z$-5/$3$9!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1116 %\item The user's \sfilename{authorized\_keys} file may have a problem.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1117 % If anyone other than the user owns or can write to that file, the
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1118 % ssh daemon will not trust or read it.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1119 \item $B%f!<%6$N(B\sfilename{authorized\_keys}$B%U%!%$%k$KLdBj$,$"$k!%%U%!%$(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1120 $B%k$N=jM-<T$,JL$N%f!<%6$@$C$?$j!$B>$N%f!<%6$,=q$-9~$_$G$-$k>l9g$O(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1121 ssh$B%G!<%b%s$O$3$N%U%!%$%k$r?.Mj$;$:!$FI$_9~$^$J$$!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1122 \end{itemize}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1123
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1124 %In the ideal world, you should be able to run the following command
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1125 %successfully, and it should print exactly one line of output, the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1126 %current date and time.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1127 $BM}A[$G$O!$<!$N%3%^%s%I$r<B9T$7!$(B1$B9T$G8=:_$NF|;~$rI=<($G$-$k$Y$-$G$"$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1128 \begin{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1129 ssh myserver date
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1130 \end{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1131
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1132 %If, on your server, you have login scripts that print banners or other
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1133 %junk even when running non-interactive commands like this, you should
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1134 %fix them before you continue, so that they only print output if
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1135 %they're run interactively. Otherwise these banners will at least
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1136 %clutter up Mercurial's output. Worse, they could potentially cause
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1137 %problems with running Mercurial commands remotely. Mercurial makes
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1138 %tries to detect and ignore banners in non-interactive \command{ssh}
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1139 %sessions, but it is not foolproof. (If you're editing your login
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1140 %scripts on your server, the usual way to see if a login script is
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1141 %running in an interactive shell is to check the return code from the
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1142 %command \Verb|tty -s|.)
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1143
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1144 $B%5!<%P$G!$%P%J!<$d$=$NB>$N0UL#$N$J$$J8;zNs$rI=<($9$k$h$&$J%m%0%$%s%9%/%j(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1145 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1146 $B$k!%$3$l$i$NJ8;zNs$O(BMercurial$B$N=PNO$K:.F~$7$F$7$^$$!$(BMercurial$B%3%^%s%I$r(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1147 $B%j%b!<%H<B9T$9$kK8$2$H$J$k!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1148 Mercurial$B$OHsBPOCE*$J(B\command{ssh}$B$G$O$3$l$i$N%P%J!<$r8!=P$7!$L5;k$7$h$&(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1149 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1150 $B9g!$%m%0%$%s%9%/%j%W%H$,BPOCE*%7%'%k$GF0:n$7$F$$$k$+$rCN$kJ}K!$H$7(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1151 $B$F!$(B\Verb|tty -s|$B%3%^%s%I$N%j%?!<%s%3!<%I$r%A%'%C%/$9$kJ}K!$,$"$k!%!K(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1152
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1153 %Once you've verified that plain old ssh is working with your server,
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1154 %the next step is to ensure that Mercurial runs on the server. The
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1155 %following command should run successfully:
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1156 ssh$BC1BN$G%5!<%P$K@\B3$G$-$k$3$H$r3NG'$7$?$i!$(BMercurial$B$,%5!<%P$GF0:n$9$k(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1157 $B$3$H$r3NG'$9$k!%<!$N%3%^%s%I$,F0$/$+$I$&$+D4$Y$F$_$h$&!'(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1158 \begin{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1159 ssh myserver hg version
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1160 \end{codesample2}
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1161 %If you see an error message instead of normal \hgcmd{version} output,
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1162 %this is usually because you haven't installed Mercurial to
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1163 %\dirname{/usr/bin}. Don't worry if this is the case; you don't need
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1164 %to do that. But you should check for a few possible problems.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1165 \hgcmd{version}$B$N=PNO$G$O$J$/%(%i!<%a%C%;!<%8$,I=<($5$l$k$H$-(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1166 $B$O!$(B\dirname{/usr/bin}$B$K(BMercurial$B$,%$%s%9%H!<%k$5$l$F$$$J$$$3$H$,B?$$!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1167 $B$3$N>l9g!$(B\dirname{/usr/bin}$B$K%$%s%9%H!<%k$7D>$9I,MW$O$J$$!%$=$NBe$o$j!$(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1168 $B$$$/$D$+$NLdBj$r%A%'%C%/$9$Y$-$G$"$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1169 \begin{itemize}
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1170 %\item Is Mercurial really installed on the server at all? I know this
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1171 % sounds trivial, but it's worth checking!
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1172 \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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1173 $B$$Ld$$$N$h$&$K;W$($k$,!$3NG'$9$k2ACM$O$"$k!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1174 %\item Maybe your shell's search path (usually set via the \envar{PATH}
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1175 % environment variable) is simply misconfigured.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1176 \item $B%7%'%k$N%5!<%A%Q%9$,@5$7$/@_Dj$5$l$F$$$J$$!%!JDL>o$O4D6-JQ?t(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1177 \envar{PATH}$B$G@_Dj$5$l$k!%!K(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1178
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1179 %\item Perhaps your \envar{PATH} environment variable is only being set
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1180 % to point to the location of the \command{hg} executable if the login
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1181
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1182 % session is interactive. This can happen if you're setting the path
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1183 % in the wrong shell login script. See your shell's documentation for
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1184 % details.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1185 \item $BBPOCE*$J%m%0%$%s%;%C%7%g%s$N$H$-0J30$O4D6-JQ?t(B\envar{PATH}$B$,(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1186 \command{hg}$B<B9T%U%!%$%k$N$"$k%Q%9$r;X$7$F$$$J$$!%(B\envar{PATH}$B$rIT(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1187 $BE,@Z$J%m%0%$%s%9%/%j%W%H$G@_Dj$7$F$$$k$H$3$NLdBj$,5/$-$k!%>\$7$/$O(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1188 $B%7%'%k$N%I%-%e%a%s%H$r;2>H$9$k$3$H!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1189 %\item The \envar{PYTHONPATH} environment variable may need to contain
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1190 % the path to the Mercurial Python modules. It might not be set at
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1191 % all; it could be incorrect; or it may be set only if the login is
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1192 % interactive.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1193 \item $B4D6-JQ?t(B\envar{PYTHONPATH}$B$,(BMercurial Python$B%b%8%e!<%k$r4^$`I,MW(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1194 $B$,$"$k>l9g!%$3$l$,A4$/@_Dj$5$l$F$$$J$$$+!$BPOCE*$J%m%0%$%s$G$N$_(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1195 $BM-8z$K$J$C$F$$$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1196 \end{itemize}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1197
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1198 %If you can run \hgcmd{version} over an ssh connection, well done!
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1199 %You've got the server and client sorted out. You should now be able
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1200 %to use Mercurial to access repositories hosted by that username on
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1201 %that server. If you run into problems with Mercurial and ssh at this
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1202 %point, try using the \hggopt{--debug} option to get a clearer picture
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1203 %of what's going on.
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1204
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1205 ssh$B@\B3$G(B\hgcmd{version}$B$r<B9T$G$-$?$N$J$i=`Hw$O40N;$@!%%5!<%P$H%/%i%$%"(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1206 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1207 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1208 $BBj$,$"$k$N$J$i!$(B\hggopt{--debug}$B%*%W%7%g%s$r;H$C$F2?$,LdBj$J$N$+$r$h$jL@(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1209 $B3N$KGD0.$7$FM_$7$$!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1210
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1211 %\subsection{Using compression with ssh}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1212 \subsection{ssh$B$G$N05=L$NMxMQ(B}
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1213
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1214 %Mercurial does not compress data when it uses the ssh protocol,
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1215 %because the ssh protocol can transparently compress data. However,
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1216 %the default behaviour of ssh clients is \emph{not} to request
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1217 %compression.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1218
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1219 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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1220 $B%H%3%k$,F)2aE*$K%G!<%?$N05=L$r9T$&$3$H$,$G$-$k$?$a$G$"$k!%$7$+$7(Bssh$B%/%i%$(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1221 $B%"%s%H$N%G%U%)%k%H$N5sF0$G$O!$05=L$r9T$o(B\emph{$B$J$$(B}$B!%(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1222
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1223 %Over any network other than a fast LAN (even a wireless network),
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1224 %using compression is likely to significantly speed up Mercurial's
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1225 %network operations. For example, over a WAN, someone measured
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1226 %compression as reducing the amount of time required to clone a
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1227 %particularly large repository from~51 minutes to~17 minutes.
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1228
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1229 $B9bB.$J(BLAN$B0J30$N%M%C%H%o!<%/!J%o%$%d%l%9%M%C%H%o!<%/$b4^$`!K$G(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1230 $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
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1231 $B$"$k!%$"$k%f!<%6$N7WB,$K$h$l$P!$(BWAN$B7PM3$G$NBg5,LO$J%j%]%8%H%j$N%/%m!<%s(B
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1232 $B$O!$05=L$r;H$&$3$H$G(B~51$BJ,$+$i(B~17$BJ,$KC;=L$9$k$3$H$,$G$-$?!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1233
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1234 %Both \command{ssh} and \command{plink} accept a \cmdopt{ssh}{-C}
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1235 %option which turns on compression. You can easily edit your \hgrc\ to
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1236 %enable compression for all of Mercurial's uses of the ssh protocol.
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1237 %Here is how to do so for regular \command{ssh} on Unix-like systems, for
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1238 %example.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1239
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1240 \command{ssh}$B%3%^%s%I$b(B\command{plink}$B%3%^%s%I$b05=L$rM-8z$K$9$k(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1241 \cmdopt{ssh}{-C}$B%*%W%7%g%s$,;H$($k!%(B \hgrc\ $B%U%!%$%k$rJT=8$7$F(BMercurial$B$,(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1242 $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 Unix$B7O%7%9(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1243 $B%F%`$GDL>o$N(B\command{ssh}$B%3%^%s%I$r@_Dj$9$kNc$O<!$N$h$&$K$J$k!%(B
184
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1244 \begin{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1245 [ui]
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1246 ssh = ssh -C
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1247 \end{codesample2}
7b812c428074 Document the ssh protocol, URL syntax, and configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
1248
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1249 %If you use \command{ssh} on a Unix-like system, you can configure it to
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1250 %always use compression when talking to your server. To do this, edit
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1251 %your \sfilename{.ssh/config} file (which may not yet exist), as follows.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1252
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1253 Unix$B7O%7%9%F%`$G(B\command{ssh}$B$rMQ$$$F%5!<%P$X@\B3$7$F$$$k>l9g!$%5!<%P$X$N(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1254 $B@\B3;~$K>o$K05=L$r;HMQ$9$k$h$&$K@_Dj$9$k$3$H$,$G$-$k!%@_Dj$K$O(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1255 \sfilename{.ssh/config}$B%U%!%$%k!JB8:_$7$J$$>l9g$O:n@.$9$k!K$r<!$N$h$&$KJT(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1256 $B=8$9$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1257
209
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
1258 \begin{codesample2}
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
1259 Host hg
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
1260 Compression yes
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
1261 HostName hg.example.com
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
1262 \end{codesample2}
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1263
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1264 %This defines a hostname alias, \texttt{hg}. When you use that hostname
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1265 %on the \command{ssh} command line or in a Mercurial
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1266 %\texttt{ssh}-protocol URL, it will cause \command{ssh} to connect to
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1267 %\texttt{hg.example.com} and use compression. This gives you both a
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1268 %shorter name to type and compression, each of which is a good thing in
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1269 %its own right.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1270
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1271 $B$3$l$O%[%9%HL>$N%(%$%j%"%9(B\texttt{hg}$B$rDj5A$9$k!%$3$N%[%9%HL>$r(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1272 \command{ssh}$B$N%3%^%s%I%i%$%s$^$?$O(BMercurial \texttt{ssh}-$B%W%m%H%3%k$G$N(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1273 URL$B$G;HMQ$9$k$H!$(B\command{ssh}$B%3%^%s%I$O(B\texttt{hg.example.com}$B$X$N@\B3$K(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1274 $B05=L$rMQ$$$k!%$3$NJ}K!$GC;=L7A$N%[%9%HL>$H05=L$N@_Dj$rF1;~$K9T$&$3$H$,$G(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1275 $B$-$k!%(B
209
8b599dcca584 Mention what the web interface does.
Bryan O'Sullivan <bos@serpentine.com>
parents: 187
diff changeset
1276
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1277 %\section{Serving over HTTP using CGI}
371
3f9f9b087109 more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 370
diff changeset
1278 \section{CGI$B$r;HMQ$7$?(BHTTP$B$K$h$k%5!<%S%9(B}
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
1279 \label{sec:collab:cgi}
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
1280
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1281 %The simplest way to host one or more repositories in a permanent way is
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1282 %to use a web server and Mercurial's CGI support.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1283
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1284 $B0l$D$^$?$OJ#?t$N%j%]%8%H%j$r1JB3E*$K%5!<%S%9$9$k:G$b4JC1$JJ}K!$O!$%&%'%V(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1285 $B%5!<%P$G(BMercurial$B$N(BCGI$B%5%]!<%H$rMxMQ$9$k$3$H$G$"$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1286
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1287 %Depending on how ambitious you are, configuring Mercurial's CGI
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1288 %interface can take anything from a few moments to several hours.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1289
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
1290 Mercurial$B$N(BCGI$B%$%s%?%U%'!<%9$N@_Dj$K$+$+$k;~4V$O!$L\E*$H$9$k$H$3$m$K1~$8(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
1291 $B$F?tJ,$+$i?t;~4VDxEY$NI}$,$"$k!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1292
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1293 %We'll begin with the simplest of examples, and work our way towards a
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1294 %more complex configuration. Even for the most basic case, you're
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1295 %almost certainly going to need to read and modify your web server's
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1296 %configuration.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1297
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1298 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1299 $B:G$bC1=c$J%1!<%9$G$b$*$=$i$/%&%'%V%5!<%P$N@_Dj$rD4$Y$FJQ99$9$kI,MW$,$"$k(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1300 $B$@$m$&!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1301
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1302 \begin{note}
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1303 High pain tolerance required
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1304
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1305 %Configuring a web server is a complex, fiddly, and highly
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1306 %system-dependent activity. I can't possibly give you instructions that
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1307 %will cover anything like all of the cases you will encounter. Please use
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1308 %your discretion and judgment in following the sections below. Be
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1309 %prepared to make plenty of mistakes, and to spend a lot of time reading
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1310 %your server's error logs.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1311
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1312 $B%&%'%V%5!<%P$N@_Dj$OJ#;($+$DLq2p$G%7%9%F%`0MB8$N:n6H$G$"$k!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1313 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1314 $B0J2<$N%;%/%7%g%s$G$O!$FI$_$J$,$iFI<T<+?H$N;WN8$HH=CG$rF/$+$;$FM_$7$$!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1315 $B$?$/$5$s$N%_%9$rHH$7!$%5!<%P$N%(%i!<%m%0$N2rFI$KB?$/$N;~4V$r3d$/$3$H$K$J(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1316 $B$k$N$r4N$KLC$8$F$*$$$FM_$7$$!%(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1317
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1318 %If you don't have a strong stomach for tweaking configurations over and
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1319 %over, or a compelling need to host your own services, you might want to
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1320 %try one of the public hosting services that I mentioned earlier.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1321
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1322 $B1d!9$H@_Dj$N<jD>$7$rB3$1$k$3$H$,2fK}$G$-$J$+$C$?$j!$<+A0$N%5!<%S%9$,I,?\(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1323 $B$G$J$+$C$?$j$9$k>l9g$O!$A0=R$N8x6&%[%9%F%#%s%0%5!<%S%9$r8!F$$7$?J}$,NI$$(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1324 $B$@$m$&!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1325
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1326 \end{note}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1327
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1328 %\subsection{Web server configuration checklist}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1329 \subsection{Web$B%5!<%P@_Dj$N%A%'%C%/%j%9%H(B}
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1330
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1331 %Before you continue, do take a few moments to check a few aspects of
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1332 %your system's setup.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1333 $B$3$3$+$i@h$X?J$`A0$K!$FI<T$N%7%9%F%`$K$D$$$F3NG'$r$7$F$*$3$&!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1334
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1335 \begin{enumerate}
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1336 % \item Do you have a web server installed at all? Mac OS X and some
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1337 % Linux distributions ship with Apache, but many other systems may
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1338 % not have a web server installed.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1339 \item $B%&%'%V%5!<%P$O$9$G$K%$%s%9%H!<%k$5$l$F$$$k$+!)(B Mac OS X$B$d$$$/$D$+(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1340 $B$N(BLinux$B%G%#%9%H%j%S%e!<%7%g%s$G$OI8=`$G(BApache$B$,%$%s%9%H!<%k$5$l$F(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1341 $B$$$k$,!$%&%'%V%5!<%P$,%$%s%9%H!<%k$5$l$F$$$J$$%7%9%F%`$bB?$/$"$k!%(B
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1342 %\item If you have a web server installed, is it actually running? On
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1343 % most systems, even if one is present, it will be disabled by
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1344 % default.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1345 \item $B%&%'%V%5!<%P$,%$%s%9%H!<%k$5$l$F$$$k>l9g!$$9$G$KF0:n$7$F$$$k$+!)(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1346 $BB?$/$N%7%9%F%`$G$O!$%G%U%)%k%H$GDd;_$5$l$F$$$k!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1347 %\item Is your server configured to allow you to run CGI programs in
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1348 % the directory where you plan to do so? Most servers default to
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1349 % explicitly disabling the ability to run CGI programs.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1350 \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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1351 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1352 $B:n$rL@<(E*$K6X$8$F$$$k!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1353 \end{enumerate}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1354
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1355 %If you don't have a web server installed, and don't have substantial
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1356 %experience configuring Apache, you should consider using the
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1357 %\texttt{lighttpd} web server instead of Apache. Apache has a
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1358 %well-deserved reputation for baroque and confusing configuration.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1359 %While \texttt{lighttpd} is less capable in some ways than Apache, most
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1360 %of these capabilities are not relevant to serving Mercurial
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1361 %repositories. And \texttt{lighttpd} is undeniably \emph{much} easier
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1362 %to get started with than Apache.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1363
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1364 $B%&%'%V%5!<%P$,%$%s%9%H!<%k$5$l$F$$$J$$>l9g$d!$(BApach$B$N@_Dj$K==J,$J7P83$,$J(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1365 $B$$>l9g$O!$(BApache$B$G$O$J$/(B\texttt{lighttpd}$B%&%'%V%5!<%P$r8!F$$7$?J}$,$h$$$@(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1366 $B$m$&!%(BApache$B$O4q0[$G:.Mp$9$k@_Dj$G0-L>$,9b$$!%(B \texttt{lighttpd}$B$O(BApache
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1367 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1368 $B$,$J$$!%(B \texttt{lighttpd}$B$O(BApache$B$h$j$bL@$i$+$K4JC1$K;H$&$3$H$,$G$-$k!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1369
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1370 %\subsection{Basic CGI configuration}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1371 \subsection{CGI$B$N4pK\E*$J@_Dj(B}
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1372
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1373 %On Unix-like systems, it's common for users to have a subdirectory
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1374 %named something like \dirname{public\_html} in their home directory,
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1375 %from which they can serve up web pages. A file named \filename{foo}
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1376 %in this directory will be accessible at a URL of the form
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1377 %\texttt{http://www.example.com/\~username/foo}.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1378
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1379 Unix$B7O%7%9%F%`$G$O!$%f!<%6$N%[!<%`%G%#%l%/%H%j$K%&%'%V%Z!<%8$r%5!<%S%9$9(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1380 $B$k$?$a$N(B\dirname{public\_html}$B$H$$$&%5%V%G%#%l%/%H%j$,$"$k$3$H$,IaDL$G$"(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1381 $B$k!%$3$N%G%#%l%/%H%jFb$N(B\filename{foo}$B$H$$$&%U%!%$%k$O(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1382 \texttt{http://www.example.com/\~username/foo}$B$H$$$&(BURL$B$G%"%/%;%9$G$-$k!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1383
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1384 %To get started, find the \sfilename{hgweb.cgi} script that should be
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1385 %present in your Mercurial installation. If you can't quickly find a
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1386 %local copy on your system, simply download one from the master
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1387 %Mercurial repository at
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1388 %\url{http://www.selenic.com/repo/hg/raw-file/tip/hgweb.cgi}.
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1389
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1390 $B$^$:%$%s%9%H!<%k$5$l$F$$$k(BMercurial$B$+$i(B\sfilename{hgweb.cgi}$B%9%/%j%W%H$r(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1391 $B8+$D$1$k!%$9$0$K%m!<%+%k%3%T!<$,8+$D$+$i$J$1$l$P!$(BMercurial$B$N%^%9%?!<%j(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1392 $B%]%8%H%j(B \url{http://www.selenic.com/repo/hg/raw-file/tip/hgweb.cgi} $B$+(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1393 $B$i%@%&%s%m!<%I$9$k!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1394
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1395 %You'll need to copy this script into your \dirname{public\_html}
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1396 %directory, and ensure that it's executable.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1397
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1398 $B$3$N%9%/%j%W%H$r(B\dirname{public\_html}$B%G%#%l%/%H%j$K%3%T!<$7!$%U%!%$%k$,(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1399 $B<B9T2DG=$G$"$k$+$r%A%'%C%/$9$k!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1400 \begin{codesample2}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1401 cp .../hgweb.cgi ~/public_html
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1402 chmod 755 ~/public_html/hgweb.cgi
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1403 \end{codesample2}
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1404 %The \texttt{755} argument to \command{chmod} is a little more general
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1405 %than just making the script executable: it ensures that the script is
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1406 %executable by anyone, and that ``group'' and ``other'' write
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1407 %permissions are \emph{not} set. If you were to leave those write
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1408 %permissions enabled, Apache's \texttt{suexec} subsystem would likely
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1409 %refuse to execute the script. In fact, \texttt{suexec} also insists
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1410 %that the \emph{directory} in which the script resides must not be
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1411 %writable by others.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1412
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1413 \command{chmod}$B%3%^%s%I$X(B\texttt{755}$B$rEO$9$H!$%9%/%j%W%H$O<B9T2DG=$h$j$b(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1414 $B<c430lHLE*$K$J$k!%%9%/%j%W%H$OC/$+$i$b<B9T2DG=$@$,!$(B``group''$B$H(B``other''
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1415 $B$N%f!<%6$+$i$O=q$-9~$a$J$/$J$k!%=q$-9~$_%Q!<%_%C%7%g%s$,M-8z$G$"$k(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1416 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1417 $B$,9b$$!%<B:]$N$H$3$m!$(B\texttt{suexec}$B$O$5$i$K%9%/%j%W%H$NCV$+$l$F$$$k(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1418 \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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1419 $B$k!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1420
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1421 \begin{codesample2}
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1422 chmod 755 ~/public_html
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1423 \end{codesample2}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1424
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1425 %\subsubsection{What could \emph{possibly} go wrong?}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1426 \subsubsection{$B$I$3$,LdBj$H@.$jF@$k$+(B?}
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1427 \label{sec:collab:wtf}
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1428
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1429 %Once you've copied the CGI script into place, go into a web browser,
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1430 %and try to open the URL \url{http://myhostname/~myuser/hgweb.cgi},
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1431 %\emph{but} brace yourself for instant failure. There's a high
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1432 %probability that trying to visit this URL will fail, and there are
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1433 %many possible reasons for this. In fact, you're likely to stumble
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1434 %over almost every one of the possible errors below, so please read
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1435 %carefully. The following are all of the problems I ran into on a
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1436 %system running Fedora~7, with a fresh installation of Apache, and a
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1437 %user account that I created specially to perform this exercise.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1438
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1439 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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1440 \url{http://myhostname/~myuser/hgweb.cgi} $B$r3+$/!%$7$+$7$3$N(BURL$B$K%"%/%;%9(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1441 $B$7$F$b%(%i!<$,$G$k2DG=@-$,9b$$$N$G!$Mn$ACe$$$FM_$7$$!%%(%i!<$K$OB?$/$NM}(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1442 $BM3$,9M$($i$l!$<B:]!$$=$N$9$Y$F$K0z$C3]$+$C$F$$$k2DG=@-$,9b$$$N$G!$0J2<$N(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1443 $B5-=R$rCm0U?<$/FI$s$GM_$7$$!%$3$3$K5s$2$?$N$O!$(BFedora~7$B$G!$?75,$K%$%s%9%H!<(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1444 $B%k$5$l$?(BApache$B$H!$$3$NNcBj$N$?$a$K?75,$K:n@.$7$?%f!<%6%"%+%&%s%H$GI.<T$,(B
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
1445 $B<B:]$KAx6x$7$?LdBj$G$"$k!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1446
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1447 %Your web server may have per-user directories disabled. If you're
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1448 %using Apache, search your config file for a \texttt{UserDir}
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1449 %directive. If there's none present, per-user directories will be
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1450 %disabled. If one exists, but its value is \texttt{disabled}, then
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1451 %per-user directories will be disabled. Otherwise, the string after
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1452 %\texttt{UserDir} gives the name of the subdirectory that Apache will
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1453 %look in under your home directory, for example \dirname{public\_html}.
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1454
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1455 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1456 Apache$B$r;H$C$F$$$k>l9g!$@_Dj%U%!%$%k$N(B\texttt{UserDir}$B%G%#%l%/%F%#%V$r(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1457 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1458 $B$l$F$$$k!%B8:_$7$F$b!$CM$,(B\texttt{disabled}$B$K@_Dj$5$l$F$$$l$P!$%f!<%6Kh$N(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1459 $B%G%#%l%/%H%j%5!<%S%9$O6X;_$G$"$k!%$^$?!$(B\texttt{UserDir}$B%G%#%l%/%F%#%V$O(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1460 Apache$B$,%5!<%S%9MQ$KC5$9%[!<%`%G%#%l%/%H%jFb$N%5%V%G%#%l%/%H%j$r;XDj$9(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1461 $B$k!%E57?E*$JNc$O(B\dirname{public\_html}$B$G$"$k!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1462
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1463 %Your file access permissions may be too restrictive. The web server
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1464 %must be able to traverse your home directory and directories under
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1465 %your \dirname{public\_html} directory, and read files under the latter
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1466 %too. Here's a quick recipe to help you to make your permissions more
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1467 %appropriate.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1468 $B%U%!%$%k%"%/%;%9%Q!<%_%C%7%g%s$,$-$D$9$.$k!%%&%'%V%5!<%P$O%[!<%`%G%#%l%/(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1469 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1470 $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
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1471 \begin{codesample2}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1472 chmod 755 ~
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1473 find ~/public_html -type d -print0 | xargs -0r chmod 755
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1474 find ~/public_html -type f -print0 | xargs -0r chmod 644
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1475 \end{codesample2}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1476
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1477 %The other possibility with permissions is that you might get a
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1478 %completely empty window when you try to load the script. In this
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1479 %case, it's likely that your access permissions are \emph{too
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1480 % permissive}. Apache's \texttt{suexec} subsystem won't execute a
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1481 %script that's group-~or world-writable, for example.
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1482
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1483 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1484 $B$k$H6u$N%&%#%s%I%&$,I=<($5$l$kLdBj$,$"$k!%$3$N>l9g$O!$%Q!<%_%C%7%g%s@_Dj(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1485 $B$,(B\emph{$B4K$9$.$k(B}$B2DG=@-$,9b$$!%Nc$($P(BApache$B$N(B\texttt{suexec}$B%5%V%7%9%F%`(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1486 $B$O!$%0%k!<%W$dA4@$3&$+$i=q$-9~$_$N$G$-$k%9%/%j%W%H$r<B9T$7$J$$!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1487
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1488 %Your web server may be configured to disallow execution of CGI
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1489 %programs in your per-user web directory. Here's Apache's
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1490 %default per-user configuration from my Fedora system.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1491 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1492 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1493 $B$F<($9!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1494 \begin{codesample2}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1495 <Directory /home/*/public_html>
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1496 AllowOverride FileInfo AuthConfig Limit
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1497 Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1498 <Limit GET POST OPTIONS>
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1499 Order allow,deny
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1500 Allow from all
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1501 </Limit>
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1502 <LimitExcept GET POST OPTIONS>
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1503 Order deny,allow
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1504 Deny from all
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1505 </LimitExcept>
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1506 </Directory>
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1507 \end{codesample2}
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1508 %If you find a similar-looking \texttt{Directory} group in your Apache
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1509 %configuration, the directive to look at inside it is \texttt{Options}.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1510 %Add \texttt{ExecCGI} to the end of this list if it's missing, and
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1511 %restart the web server.
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1512
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1513 Apache$B@_Dj$NCf$KF1MM$N(B\texttt{Directory}$B%0%k!<%W$,$"$k>l9g!$$=$NCf$GCmL\(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1514 $B$9$Y$-%G%#%l%/%F%#%V$O(B\texttt{Options}$B$G$"$k!%(B \texttt{ExecCGI}$B$,%j%9%H$K(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1515 $BL5$1$l$P:G8e$KDI2C$7!$%&%'%V%5!<%P$r:F5/F0$9$k!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1516
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1517 %If you find that Apache serves you the text of the CGI script instead
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1518 %of executing it, you may need to either uncomment (if already present)
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1519 %or add a directive like this.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1520 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
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
1521 $B$F$/$k>l9g$O!$0J2<$N%G%#%l%/%F%#%V$rDI2C$9$k!%%G%#%l%/%F%#%V$,$9$G$K$"$j!$(B
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
1522 $B%3%a%s%H%"%&%H$5$l$F$$$k$N$J$i!$M-8z2=$9$k!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1523 \begin{codesample2}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1524 AddHandler cgi-script .cgi
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1525 \end{codesample2}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1526
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1527 %The next possibility is that you might be served with a colourful
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1528 %Python backtrace claiming that it can't import a
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1529 %\texttt{mercurial}-related module. This is actually progress! The
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1530 %server is now capable of executing your CGI script. This error is
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1531 %only likely to occur if you're running a private installation of
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1532 %Mercurial, instead of a system-wide version. Remember that the web
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1533 %server runs the CGI program without any of the environment variables
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1534 %that you take for granted in an interactive session. If this error
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1535 %happens to you, edit your copy of \sfilename{hgweb.cgi} and follow the
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1536 %directions inside it to correctly set your \envar{PYTHONPATH}
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1537 %environment variable.
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1538
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1539 $B<!$N2DG=@-$O(B\texttt{mercurial}$B$K4XO"$7$?(Bmodule$B$,%$%s%]!<%H$G$-$J$$$3$H$r(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1540 $B7Y9p$9$k%+%i%U%k$J(BPython$B%P%C%/%H%l!<%9$,8+$($k$3$H$@!%$3$l$OA0?J$H8@$((B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1541 $B$k!%%5!<%P$O(BCGI$B%9%/%j%W%H$r<B9T$G$-$k$h$&$K$J$C$?!%$3$N%(%i!<$O(BMercurial
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1542 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1543 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1544 $B%i%`$r4D6-JQ?t$J$7$G5/F0$9$k!%$3$N%(%i!<$,5/$-$?>l9g$O(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1545 \sfilename{hgweb.cgi}$B$rJT=8$7!$4D6-JQ?t(B\envar{PYTHONPATH}$B$,%;%C%H$5$l$k$h(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1546 $B$&$K$9$k!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1547
372
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1548 %Finally, you are \emph{certain} to by served with another colourful
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1549 %Python backtrace: this one will complain that it can't find
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1550 %\dirname{/path/to/repository}. Edit your \sfilename{hgweb.cgi} script
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1551 %and replace the \dirname{/path/to/repository} string with the complete
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1552 %path to the repository you want to serve up.
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1553
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1554 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1555 $B$O(B\dirname{/path/to/repository}$B$,8+$D$+$i$J$$$3$H$r7Y9p$7$F$$$k!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1556 \sfilename{hgweb.cgi}$B%9%/%j%W%H$rJT=8$7!$(B\dirname{/path/to/repository}$B$H(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1557 $B$$$&J8;zNs$r!$%5!<%S%9$7$?$$%j%]%8%H%j$X$N40A4$J%Q%9$KCV$-49$($k!%(B
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1558
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1559 %At this point, when you try to reload the page, you should be
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1560 %presented with a nice HTML view of your repository's history. Whew!
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1561
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1562 $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
bc32663d557e more collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 371
diff changeset
1563 $B$:$@!%$d$C$?!*(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1564
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1565 %\subsubsection{Configuring lighttpd}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1566 \subsubsection{lighttpd$B$N@_Dj(B}
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1567
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1568 %To be exhaustive in my experiments, I tried configuring the
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1569 %increasingly popular \texttt{lighttpd} web server to serve the same
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1570 %repository as I described with Apache above. I had already overcome
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1571 %all of the problems I outlined with Apache, many of which are not
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1572 %server-specific. As a result, I was fairly sure that my file and
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1573 %directory permissions were good, and that my \sfilename{hgweb.cgi}
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1574 %script was properly edited.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1575
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1576 $BI.<T$N<B83$NCf$G$O!$(BApache$B$r;H$C$F%5!<%S%9$7$?$N$HF1$8%j%]%8%H%j$r?M5$$r(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1577 $B3MF@$7$D$D$"$k%&%'%V%5!<%P$G$"$k(B\texttt{lighttpd}$B$rMQ$$$F%5!<%S%9$9$k$3$H(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1578 $B$b;n$_$?!%(B Apache$B$K4X$9$kA4$F$NLdBjE@$r4{$K2r7h$7$F$$$?$,!$$=$NCf$NB?$/$O(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1579 $B%5!<%PFCM-$H$$$&$o$1$G$O$J$+$C$?!%7k2L$H$7$F!$%U%!%$%k$H%G%#%l%/%H%j$N%Q!<(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1580 $B%_%C%7%g%s@_Dj$,@5$7$$$3$H!$(B \sfilename{hgweb.cgi}$B%9%/%j%W%H$,@5$7$/@_Dj(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1581 $B$5$l$F$$$k$3$H$r3N?.$7$?!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1582
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1583 %Once I had Apache running, getting \texttt{lighttpd} to serve the
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1584 %repository was a snap (in other words, even if you're trying to use
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1585 %\texttt{lighttpd}, you should read the Apache section). I first had
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1586 %to edit the \texttt{mod\_access} section of its config file to enable
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1587 %\texttt{mod\_cgi} and \texttt{mod\_userdir}, both of which were
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1588 %disabled by default on my system. I then added a few lines to the end
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1589 %of the config file, to configure these modules.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1590 $B$9$G$K(BApache$B$r;H$C$F$$$?$N$G!$(B\texttt{lighttpd}$B$G%j%]%8%H%j$N%5!<%S%9$r9T(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1591 $B$&$3$H$O$?$d$9$+$C$?!%!J$3$l$O(B\texttt{lighttpd}$B$r;H$C$F%5!<%S%9$r;n$_$k>l(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1592 $B9g$b(BApache$B$N%;%/%7%g%s$rFI$`I,MW$,$"$k$H$$$&$3$H$G$b$"$k!%!KI.<T$N%7%9%F(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1593 $B%`$G$O(B\texttt{mod\_cgi}$B$H(B\texttt{mod\_userdir}$B$,6&$KL58z$K@_Dj$5$l$F$$$?(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1594 $B$N$G!$$3$l$i$rM-8z$K$9$k$?$a$K!$$^$:@_Dj%U%!%$%k$N(B\texttt{mod\_access}$B%;(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1595 $B%/%7%g%s$rJT=8$9$kI,MW$,$"$C$?!%$=$N8e$G!$2<5-$N%b%8%e!<%k$rM-8z$K$9$k$?(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1596 $B$a$K!$@_Dj%U%!%$%k$NKvHx$K?t9T$rDI2C$7$?!%(B
210
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1597 \begin{codesample2}
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1598 userdir.path = "public_html"
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1599 cgi.assign = ( ".cgi" => "" )
27b2c7c46af3 Start talking about basic CGI/HTTP configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 209
diff changeset
1600 \end{codesample2}
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1601 %With this done, \texttt{lighttpd} ran immediately for me. If I had
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1602 %configured \texttt{lighttpd} before Apache, I'd almost certainly have
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1603 %run into many of the same system-level configuration problems as I did
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1604 %with Apache. However, I found \texttt{lighttpd} to be noticeably
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1605 %easier to configure than Apache, even though I've used Apache for over
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1606 %a decade, and this was my first exposure to \texttt{lighttpd}.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1607 $B$3$l$i$N@_Dj$r$9$k$@$1$G(B\texttt{lighttpd}$B$O$9$0$KF0:n$7$?!%(B Apache$B$h$jA0(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1608 $B$K(B\texttt{lighttpd}$B$r;n$7$F$$$?$i!$(BApache$B$GD>LL$7$?$h$&$JMM!9$J%7%9%F%`%l(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1609 $B%Y%k$N@_DjLdBj$KAx6x$7$F$$$?$K0c$$$J$$$,!$=i$a$F;H$&(B\texttt{lighttpd}$B$N@_(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1610 $BDj$NJ}$,!$$3$l$^$G(B10$BG/0J>e$K$o$?$C$F;H$C$F$-$?(BApache$B$N$=$l$h$j$bL@$i$+$K(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1611 $B4JC1$G$"$k$3$H$,J,$+$C$?!%(B
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
1612
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1613 %\subsection{Sharing multiple repositories with one CGI script}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1614 \subsection{1$B$D$N(BCGI$B%9%/%j%W%H$GJ#?t$N%j%]%8%H%j$r6&M-$9$k(B}
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1615
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1616 %The \sfilename{hgweb.cgi} script only lets you publish a single
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1617 %repository, which is an annoying restriction. If you want to publish
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1618 %more than one without wracking yourself with multiple copies of the
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1619 %same script, each with different names, a better choice is to use the
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1620 %\sfilename{hgwebdir.cgi} script.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1621 \sfilename{hgweb.cgi}$B%9%/%j%W%H$K$O!$(B1$B$D$N%j%]%8%H%j$7$+8x3+$G$-$J$$$H$$(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1622 $B$&Lq2p$J@)8B$,$"$k!%(B 2$B$D0J>e$N%j%]%8%H%j$r8x3+$7$?$$>l9g$O!$F1$8%9%/%j%W(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1623 $B%H$rJL$NL>A0$G$$$/$D$bF0$+$9$N$G$O$J$/!$(B \sfilename{hgwebdir.cgi}$B%9%/%j%W(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1624 $B%H$r;H$&$N$,NI$$$@$m$&!%(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1625
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1626 %The procedure to configure \sfilename{hgwebdir.cgi} is only a little
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1627 %more involved than for \sfilename{hgweb.cgi}. First, you must obtain
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1628 %a copy of the script. If you don't have one handy, you can download a
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1629 %copy from the master Mercurial repository at
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1630 %\url{http://www.selenic.com/repo/hg/raw-file/tip/hgwebdir.cgi}.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1631 \sfilename{hgwebdir.cgi}$B$N@_Dj$N<j=g$O(B\sfilename{hgweb.cgi}$B$h$j$b$o$:$+$K(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1632 $B9~$_F~$C$F$$$k$@$1$@!%<j6a$J$H$3$m$K%9%/%j%W%H$,$J$1$l$P!$(BMercurial$B$N%^%9(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1633 $B%?!<%j%]%8%H%j(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1634 \url{http://www.selenic.com/repo/hg/raw-file/tip/hgwebdir.cgi}$B$+$i%9%/%j(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1635 $B%W%H$rF~<j$G$-$k!%(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1636
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1637 %You'll need to copy this script into your \dirname{public\_html}
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1638 %directory, and ensure that it's executable.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1639 $B$3$N%9%/%j%W%H$r(B\dirname{public\_html}$B%G%#%l%/%H%j$K%3%T!<$7!$<B9T%Q!<%_%C(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1640 $B%7%g%s$rM?$($k!%(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1641 \begin{codesample2}
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1642 cp .../hgwebdir.cgi ~/public_html
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1643 chmod 755 ~/public_html ~/public_html/hgwebdir.cgi
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1644 \end{codesample2}
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1645 %With basic configuration out of the way, try to visit
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1646 %\url{http://myhostname/~myuser/hgwebdir.cgi} in your browser. It
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1647 %should display an empty list of repositories. If you get a blank
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1648 %window or error message, try walking through the list of potential
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1649 %problems in section~\ref{sec:collab:wtf}.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1650 $BDL>o$N@_Dj$N>l9g!$%V%i%&%6$G(B\url{http://myhostname/~myuser/hgwebdir.cgi}
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1651 $B$r3+$/$H!$Cf?H$,6u$N%j%]%8%H%j$rI=<($9$k$O$:$@!%%&%#%s%I%&<+BN$,6u$@$C$?(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1652 $B$j!$%(%i!<%a%C%;!<%8$,I=<($5$l$k>l9g$O!$%;%/%7%g%s(B~\ref{sec:collab:wtf}
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1653 $B$NLdBj%j%9%H$r;2>H$7$F$[$7$$!%(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1654
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1655 %The \sfilename{hgwebdir.cgi} script relies on an external
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1656 %configuration file. By default, it searches for a file named
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1657 %\sfilename{hgweb.config} in the same directory as itself. You'll need
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1658 %to create this file, and make it world-readable. The format of the
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1659 %file is similar to a Windows ``ini'' file, as understood by Python's
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1660 %\texttt{ConfigParser}~\cite{web:configparser} module.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1661 \sfilename{hgwebdir.cgi}$B$O30It$N@_Dj%U%!%$%k$r;HMQ$7$F$$$k!%%G%U%)%k%H$G(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1662 $B$OF1$8%G%#%l%/%H%jFb$N(B\sfilename{hgweb.config}$B$H$$$&%U%!%$%k$r;2>H$9$k!%(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1663 $B$3$N%U%!%$%k$r:n@.$7!$A4$F$N%f!<%6$+$iFI$a$k$h$&$K@_Dj$9$k!%(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1664 $B$3$N%U%!%$%k$O(BPython$B$N(B\texttt{ConfigParser}~\cite{web:configparser}$B$G=h(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1665 $BM}$G$-$k$h$&(BWindows$B$N(B``ini''$B%U%!%$%k$H;w$?7A<0$K$J$C$F$$$k!%(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1666
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1667 %The easiest way to configure \sfilename{hgwebdir.cgi} is with a
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1668 %section named \texttt{collections}. This will automatically publish
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1669 %\emph{every} repository under the directories you name. The section
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1670 %should look like this:
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1671 \sfilename{hgwebdir.cgi}$B$N:G$b4JC1$J@_DjJ}K!$O!$(B\texttt{collections}$B%;%/(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1672 $B%7%g%s$rJT=8$9$k$3$H$G$"$k!%$3$l$O<+F0E*$K;XDj$7$?%G%#%l%/%H%j0J2<$N(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1673 \emph{$BA4$F$N(B}$B%j%]%8%H%j$r8x3+$9$k!%$3$N%;%/%7%g%s$O<!$N$h$&$K$J$C$F$$$k!'(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1674 \begin{codesample2}
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1675 [collections]
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1676 /my/root = /my/root
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1677 \end{codesample2}
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1678 %Mercurial interprets this by looking at the directory name on the
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1679 %\emph{right} hand side of the ``\texttt{=}'' sign; finding
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1680 %repositories in that directory hierarchy; and using the text on the
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1681 %\emph{left} to strip off matching text from the names it will actually
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1682 %list in the web interface. The remaining component of a path after
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1683 %this stripping has occurred is called a ``virtual path''.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1684 Mercurial$B$O(B``\texttt{=}''$B5-9f$N(B\emph{$B1&B&(B}$B$N%G%#%l%/%H%jL>$r;2>H$7$F!$%G%#(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1685 $B%l%/%H%j3,AXFb$N%j%]%8%H%j$rC5$9!%8+$D$+$C$?;~$O!$%j%]%8%H%j$N%Q%9$+$i(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1686 \emph{$B:8B&(B}$B$NJ8;zNs$H%^%C%A$9$kItJ,$r:o$j!$<B:]$K%&%'%V%$%s%?%U%'!<%9$KI=(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1687 $B<($5$l$k%Q%9J8;zNs$r:n$k!%:o=|8e$N%Q%9$r(B``$B2>A[%Q%9(B''$B$H8F$V!%(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1688
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1689 %Given the example above, if we have a repository whose local path is
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1690 %\dirname{/my/root/this/repo}, the CGI script will strip the leading
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1691 %\dirname{/my/root} from the name, and publish the repository with a
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1692 %virtual path of \dirname{this/repo}. If the base URL for our CGI
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1693 %script is \url{http://myhostname/~myuser/hgwebdir.cgi}, the complete
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1694 %URL for that repository will be
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1695 %\url{http://myhostname/~myuser/hgwebdir.cgi/this/repo}.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1696 $B>e$NNc$G!$(BCGI$B%9%/%j%W%H$O!$%m!<%+%k%Q%9$,(B\dirname{/my/root/this/repo}$B$G$"(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1697 $B$k%j%]%8%H%j$KBP$7$F(B\dirname{/my/root}$B$r<h$j=|$-!$(B\dirname{this/repo}$B$H$$(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1698 $B$&2>A[%Q%9$r:n@.$7!$8x3+$9$k!%$b$7(BCGI$B%9%/%j%W%H$N%Y!<%9(BURL$B$,(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1699 \url{http://myhostname/~myuser/hgwebdir.cgi}$B$@$H$9$k$H!$%j%]%8%H%j$N40A4(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1700 $B$J(BURL$B$O(B\url{http://myhostname/~myuser/hgwebdir.cgi/this/repo}$B$H$J$k!%(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1701
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1702 %If we replace \dirname{/my/root} on the left hand side of this example
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1703 %with \dirname{/my}, then \sfilename{hgwebdir.cgi} will only strip off
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1704 %\dirname{/my} from the repository name, and will give us a virtual
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1705 %path of \dirname{root/this/repo} instead of \dirname{this/repo}.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1706 $B$3$NNc$N:8JU$N(B\dirname{/my/root}$B$r(B\dirname{/my}$B$GCV$-49$($k$H(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1707 \sfilename{hgwebdir.cgi}$B$O(B\dirname{/my}$B$@$1$r%j%]%8%H%jL>$+$i<h$j=|$-!$2>(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1708 $BA[%Q%9$H$7$F(B\dirname{this/repo}$B$G$O$J$/(B\dirname{root/this/repo}$B$r:n$k!%(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1709
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1710 %The \sfilename{hgwebdir.cgi} script will recursively search each
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1711 %directory listed in the \texttt{collections} section of its
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1712 %configuration file, but it will \texttt{not} recurse into the
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1713 %repositories it finds.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1714 \sfilename{hgwebdir.cgi}$B%9%/%j%W%H$O!$@_Dj%U%!%$%k$N(B\texttt{collections}
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1715 $B%;%/%7%g%s$K=q$+$l$?%G%#%l%/%H%j$r:F5"E*$K%5!<%A$9$k!%$3$N%9%/%j%W%H$O8+(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1716 $B$D$1$?%j%]%8%H%j$NCf$O%5!<%A(B\texttt{$B$7$J$$(B}$B!%(B
211
b461d7ead9e1 Start to document hgwebdir.cgi.
Bryan O'Sullivan <bos@serpentine.com>
parents: 210
diff changeset
1717
373
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1718 %The \texttt{collections} mechanism makes it easy to publish many
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1719 %repositories in a ``fire and forget'' manner. You only need to set up
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1720 %the CGI script and configuration file one time. Afterwards, you can
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1721 %publish or unpublish a repository at any time by simply moving it
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1722 %into, or out of, the directory hierarchy in which you've configured
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1723 %\sfilename{hgwebdir.cgi} to look.
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1724 \texttt{collections}$B%a%+%K%:%`$K$h$C$FJ#?t$N%j%]%8%H%j$r4JC1$K8x3+$9$k$3(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1725 $B$H$,$G$-$k!%(BCGI$B%9%/%j%W%H$H@_Dj%U%!%$%k$rJT=8$9$k$N$O:G=i$N0l2s$@$1$G$h(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1726 $B$/!$%j%]%8%H%j$r(B\sfilename{hgwebdir.cgi}$B$NC5:w$9$k%G%#%l%/%H%j3,AXFb$K0\(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1727 $BF0$9$l$P8x3+$K!$3,AXFb$+$i30$;$PHs8x3+$K@_Dj$G$-$k!%(B
250ae1785828 finished collab.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 372
diff changeset
1728
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
1729
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1730 %\subsubsection{Explicitly specifying which repositories to publish}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1731 \subsubsection{$B$I$N%j%]%8%H%j$rI=<($9$k$+L@<(E*$K;XDj$9$k(B}
212
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1732
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1733 %In addition to the \texttt{collections} mechanism, the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1734 %\sfilename{hgwebdir.cgi} script allows you to publish a specific list
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1735 %of repositories. To do so, create a \texttt{paths} section, with
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1736 %contents of the following form.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1737 \sfilename{hgwebdir.cgi}$B%9%/%j%W%H$O(B\texttt{collections}$B$N%a%+%K%:%`$NB>(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1738 $B$K$b%j%]%8%H%j$NFCDj$N%j%9%H$r8x3+$9$kJ}K!$rMQ0U$7$F$$$k!%2<5-$N$h$&$J(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1739 $BFbMF$N(B\texttt{paths}$B%;%/%7%g%s$r:n$k!%(B
212
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1740 \begin{codesample2}
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1741 [paths]
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1742 repo1 = /my/path/to/some/repo
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1743 repo2 = /some/path/to/another
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1744 \end{codesample2}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1745 %In this case, the virtual path (the component that will appear in a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1746 %URL) is on the left hand side of each definition, while the path to
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1747 %the repository is on the right. Notice that there does not need to be
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1748 %any relationship between the virtual path you choose and the location
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1749 %of a repository in your filesystem.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1750 $B$3$N>l9g!$3F!9$NDj5A$N:8JU$K2>A[%Q%9!J(BURL$B$K8=$l$kMWAG!K$,!$%j%]%8%H%j$X$N(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1751 $B%Q%9$,1&JU$K8=$l$k!%A*$s$@2>A[%Q%9$H%U%!%$%k%7%9%F%`Cf$G$N0LCV$N4V$K$O$$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1752 $B$+$J$k4XO"@-$bI,MW$J$$!%(B
212
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1753
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1754 %If you wish, you can use both the \texttt{collections} and
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1755 %\texttt{paths} mechanisms simultaneously in a single configuration
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1756 %file.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1757 \texttt{collections}$B$H(B\texttt{paths}$B$NN>J}$N5!9=$rF10l$N@_Dj%U%!%$%kFb$G(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1758 $BF1;~$KMQ$$$k$3$H$b$G$-$k!%(B
212
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1759
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1760 %\begin{note}
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1761 %Beware duplicate virtual paths
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1762
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1763 %If several repositories have the same virtual path,
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1764 %\sfilename{hgwebdir.cgi} will not report an error. Instead, it will
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1765 %behave unpredictably.
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1766 %\end{note}
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1767
212
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1768 \begin{note}
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1769 $B2>A[%Q%9$N=EJ#$KCm0U(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1770
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1771 $BJ#?t$N%j%]%8%H%j$,F1$82>A[%Q%9$r;}$D>l9g$G$b(B\sfilename{hgwebdir.cgi}$B$O%(%i!<(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1772 $B$rI=<($7$J$$$,!$5sF0$OM=B,$N$D$+$J$$$b$N$H$J$k!%(B
212
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1773 \end{note}
ef8a5e393103 Mention the paths section of a hgwebdir config file.
Bryan O'Sullivan <bos@serpentine.com>
parents: 211
diff changeset
1774
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1775 %\subsection{Downloading source archives}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1776 \subsection{$B%=!<%9%"!<%+%$%V$N%@%&%s%m!<%I(B}
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1777
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1778 %Mercurial's web interface lets users download an archive of any
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1779 %revision. This archive will contain a snapshot of the working
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1780 %directory as of that revision, but it will not contain a copy of the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1781 %repository data.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1782 $B%f!<%6$O(BMercurial$B$N%&%'%V%$%s%?%U%'!<%9$+$i$I$N%j%S%8%g%s$N%"!<%+%$%V$b(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1783 $B%@%&%s%m!<%I$9$k$3$H$,$G$-$k!%%"!<%+%$%V$OEv3:%j%S%8%g%s$N%o!<%-%s%0%G%#(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1784 $B%l%/%H%j$N%9%J%C%W%7%g%C%H$r4^$`$,!$%j%]%8%H%j<+BN$N%G!<%?$O4^$^$J$$!%(B
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1785
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1786 %By default, this feature is not enabled. To enable it, you'll need to
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1787 %add an \rcitem{web}{allow\_archive} item to the \rcsection{web}
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1788 %section of your \hgrc; see below for details.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1789
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1790 $B%G%U%)%k%H$G$O$3$N5!G=$OL58z$K$5$l$F$$$k!%M-8z$K$9$k$K$O(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1791 \rcitem{web}{allow\_archive}$B9`L\$r(B\hgrc $B$N(B\rcsection{web}$B%;%/%7%g%s$KDI(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1792 $B2C$9$kI,MW$,$"$k!%!J>\:Y$K$D$$$F$O2<5-$r;2>H!%!K(B
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1793
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1794 %\subsection{Web configuration options}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1795 \subsection{Web$B@_Dj%*%W%7%g%s(B}
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1796
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1797 %Mercurial's web interfaces (the \hgcmd{serve} command, and the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1798 %\sfilename{hgweb.cgi} and \sfilename{hgwebdir.cgi} scripts) have a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1799 %number of configuration options that you can set. These belong in a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1800 %section named \rcsection{web}.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1801 Mercurial$B%&%'%V%$%s%?%U%'!<%9(B(the \hgcmd{serve}$B%3%^%s(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1802 $B%I!$(B\sfilename{hgweb.cgi}$B$*$h$S(B\sfilename{hgwebdir.cgi}$B%9%/%j%W%H(B)$B$K$OB?(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1803 $B$/$N@_Dj%*%W%7%g%s$,$"$k!%$3$l$i$O(B\rcsection{web}$B%;%/%7%g%s$K4^$^$l$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1804
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1805 \begin{itemize}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1806 %\item[\rcitem{web}{allow\_archive}] Determines which (if any) archive
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1807 % download mechanisms Mercurial supports. If you enable this
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1808 % feature, users of the web interface will be able to download an
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1809 % archive of whatever revision of a repository they are viewing.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1810 % To enable the archive feature, this item must take the form of a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1811 % sequence of words drawn from the list below.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1812 \item[\rcitem{web}{allow\_archive}] $B$I$N%"!<%+%$%V%@%&%s%m!<%I%a%+%K%:%`(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1813 $B$r(BMercurial$B$,%5%]!<%H$9$k$N$+$r7hDj$9$k!%$3$N5!G=$rM-8z$K$9(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1814 $B$k$H!$%&%'%V%$%s%?%U%'!<%9$N%f!<%6$O%j%]%8%H%j$NG$0U$N%j%S%8%g(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1815 $B%s$N%"!<%+%$%V$r%@%&%s%m!<%I$G$-$k$h$&$K$J$k!%%"!<%+%$%V:r(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1816 $BF|$rM-8z$K$9$k$K$O$3$N9`L\$O!$2<$N%j%9%H$K<($98l$+$i9=@.$5(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1817 $B$l$J$1$l$P$J$i$J$$!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1818
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1819 \begin{itemize}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1820 % \item[\texttt{bz2}] A \command{tar} archive, compressed using
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1821 % \texttt{bzip2} compression. This has the best compression ratio,
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1822 % but uses the most CPU time on the server.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1823 \item[\texttt{bz2}] \texttt{bzip2}$B05=L$5$l$?(B\command{tar}$B%"!<%+%$%V!%05=LN($,:G(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1824 $B$b9b$$$,!$%5!<%P$N(BCPU$B;~4V$b0lHV;HMQ$9$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1825
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1826 % \item[\texttt{gz}] A \command{tar} archive, compressed using
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1827 % \texttt{gzip} compression.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1828 \item[\texttt{gz}] \texttt{gzip}$B05=L$5$l$?(B\command{tar}$B%"!<%+%$%V!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1829
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1830 % \item[\texttt{zip}] A \command{zip} archive, compressed using LZW
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1831 % compression. This format has the worst compression ratio, but is
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1832 % widely used in the Windows world.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1833 \item[\texttt{zip}] LZW$B05=L$5$l$?(B\command{zip}$B%"!<%+%$%V!%$3$NCf$G05=LN((B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1834 $B$O:GDc$@$,!$(BWindows$B$N4D6-$G$O9-$/MQ$$$i$l$F$$$k!%(B
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1835 \end{itemize}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1836
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1837 % If you provide an empty list, or don't have an
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1838 % \rcitem{web}{allow\_archive} entry at all, this feature will be
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1839 % disabled. Here is an example of how to enable all three supported
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1840 % formats.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1841 $B6u$N%j%9%H$rM?$($k$+!$(B\rcitem{web}{allow\_archive}$B$r5-=R$7$J$1$l$P!$$3$N(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1842 $B:rF|$OL58z2=$5$l$k!%%5%]!<%H$5$l$F$$$k(B3$B$D$N%U%)!<%^%C%HA4$F(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1843 $B$rM-8z$K$9$kNc$r<($9!%(B
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1844 \begin{codesample4}
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1845 [web]
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1846 allow_archive = bz2 gz zip
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1847 \end{codesample4}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1848
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1849 %\item[\rcitem{web}{allowpull}] Boolean. Determines whether the web
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1850 % interface allows remote users to \hgcmd{pull} and \hgcmd{clone} this
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1851 % repository over~HTTP. If set to \texttt{no} or \texttt{false}, only
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1852 % the ``human-oriented'' portion of the web interface is available.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1853 \item[\rcitem{web}{allowpull}] $B%V!<%kCM!%%j%b!<%H%f!<%6$K%&%'%V%$%s%?%U%'!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1854 $B%9$rMQ$$$?(B~HTTP$B$K$h$k(B\hgcmd{pull}$B5Z$S(B\hgcmd{clone}$B$r5v2D$9(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1855 $B$k$+$I$&$+$r7h$a$k!%(B\texttt{no}$B$^$?$O(B\texttt{false}$B$N>l9g!$(B
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
1856 $B%&%'%V%$%s%?%U%'!<%9$O%V%i%&%6$K$h$k1\Mw$N$_$,2DG=$K$J$k!%(B
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1857
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1858 %\item[\rcitem{web}{contact}] String. A free-form (but preferably
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1859 % brief) string identifying the person or group in charge of the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1860 % repository. This often contains the name and email address of a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1861 % person or mailing list. It often makes sense to place this entry in
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1862 % a repository's own \sfilename{.hg/hgrc} file, but it can make sense
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1863 % to use in a global \hgrc\ if every repository has a single
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1864 % maintainer.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1865 \item[\rcitem{web}{contact}] $BJ8;zNs!%<+M37A<0!J4J7i$JI=5-$,9%$^$7$$!K$G%j(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1866 $B%]%8%H%j$rC4Ev$9$k?MJ*$d%0%k!<%W$r5-=R$9$k!%DL>o$O?ML>$H!$8D(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1867 $B?M$^$?$O%a!<%j%s%0%j%9%H$N%"%I%l%9$r4^$`!%B?$/$N>l(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1868 $B9g!$(B\sfilename{.hg/hgrc}$B$K$3$N5-=R$rCV$/$N$,NI$$!%$b$7A4$F$N(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1869 $B%j%]%8%H%j$rF10l?MJ*$,4IM}$9$k$N$G$"$l$P!$%0%m!<%P%k$J(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1870 \hgrc\ $B$KCV$/$N$b$h$$!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1871
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1872 %\item[\rcitem{web}{maxchanges}] Integer. The default maximum number
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1873 % of changesets to display in a single page of output.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1874 \item[\rcitem{web}{maxchanges}] $B@0?t!%(B1$B%Z!<%8$KI=<($9$k%A%'%s%8%;%C%H$N(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1875 $B%G%U%)%k%H$N:GBg?t!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1876
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1877 %\item[\rcitem{web}{maxfiles}] Integer. The default maximum number
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1878 % of modified files to display in a single page of output.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1879 \item[\rcitem{web}{maxfiles}] $B@0?t!%(B1$B%Z!<%8$KI=<($9$k99?7$5$l$?%U%!%$%k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1880 $B$N%G%U%)%k%H$N:GBg?t!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1881
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1882 %\item[\rcitem{web}{stripes}] Integer. If the web interface displays
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1883 % alternating ``stripes'' to make it easier to visually align rows
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1884 % when you are looking at a table, this number controls the number of
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1885 % rows in each stripe.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1886 \item[\rcitem{web}{stripes}] $B@0?t!%I=$NI=<($r9T$&:]$K!$9T$r8+0W$/$9$k$?$a(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1887 $B%&%'%V%$%s%?%U%'!<%9$,8r8_$K(B``$B%9%H%i%$%W(B''$BI=<($9$k>l9g!$$3$N(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1888 $BCM$G$=$l$>$l$N%9%H%i%$%W$N9T?t$r@_Dj$9$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1889
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1890 %\item[\rcitem{web}{style}] Controls the template Mercurial uses to
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1891 % display the web interface. Mercurial ships with several web
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1892 % templates.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1893 %
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1894 % \begin{itemize}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1895 % \item \texttt{coal} is monochromatic.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1896 % \item \texttt{gitweb} emulates the visual style of git's
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1897 % web interface.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1898 % \item \texttt{monoblue} uses solid blues and greys.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1899 % \item \texttt{paper} is the default.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1900 % \item \texttt{spartan} was the default for a long time.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1901 % \end{itemize}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1902 %
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1903 % You can also specify a custom template of your own; see
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1904 % chapter~\ref{chap:template} for details. Here, you can see
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1905 % how to enable the \texttt{gitweb} style.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1906
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1907 \item[\rcitem{web}{style}] Mercurial$B$,%&%'%V%$%s%?!<%U%'!<%9$rI=<($9$k$?(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1908 $B$a$K;HMQ$9$k%F%s%W%l!<%H$r@)8f$9$k!%(BMercurial$B$K$O$$$/$D$+$N(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1909 $B%&%'%V%F%s%W%l!<%H$,F1:-$5$l$F$$$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1910
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1911 \begin{itemize}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1912 \item \texttt{coal} $BC1?'$N%F%s%W%l!<%H!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1913 \item \texttt{gitweb} git$B$N%&%'%V%$%s%?!<%U%'!<%9$rLOJo$7(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1914 $B$?%G%6%$%s$N$b$N!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1915 \item \texttt{monoblue} $BC1?'$N@D$H%0%l!<!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1916 \item \texttt{paper} $B%G%U%)%k%H(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1917 \item \texttt{spartan} $B$3$l$^$GD9$i$/%G%U%)%k%H$H$7$F;H$o(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1918 $B$l$F$-$?$b$N!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1919 \end{itemize}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1920
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1921 $BFH<+$N%F%s%W%l!<%H$r;XDj$9$k$3$H$b2DG=$G$"$k!%>\:Y(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1922 $B$O(B~\ref{chap:template}$B$r;2>H$N$3$H!%$3$3$G$O(B\texttt{gitweb}$B%9(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
1923 $B%?%$%k$rM-8z$K$9$kJ}K!$r<($9!%(B
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1924 \begin{codesample4}
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1925 [web]
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1926 style = gitweb
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1927 \end{codesample4}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1928 %\item[\rcitem{web}{templates}] Path. The directory in which to search
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1929 % for template files. By default, Mercurial searches in the directory
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1930 % in which it was installed.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1931 \item[\rcitem{web}{templates}] $B%Q%9!%%F%s%W%l!<%H%U%!%$%k$r8!:w$9$k%G%#%l(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1932 $B%/%H%j!%%G%U%)%k%H$G$O(BMercurial$B$O%$%s%9%H!<%k$5$l$?%G%#%l%/(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1933 $B%H%j$+$i%F%s%W%l!<%H$rC5$9!%(B
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1934 \end{itemize}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1935 %If you are using \sfilename{hgwebdir.cgi}, you can place a few
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1936 %configuration items in a \rcsection{web} section of the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1937 %\sfilename{hgweb.config} file instead of a \hgrc\ file, for
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1938 %convenience. These items are \rcitem{web}{motd} and
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1939 %\rcitem{web}{style}.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1940 \sfilename{hgwebdir.cgi}$B$rMxMQ$9$k>l9g!$JXMx$N$?$a!$(B\hgrc\ $B%U%!%$%k$G$O$J$/(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1941 \sfilename{hgweb.config}$B%U%!%$%k$N(B\rcsection{web}$B%;%/%7%g%s$K(B\rcitem{web}{motd}$B$*$h$S(B\rcitem{web}{style}$B9`L\$rCV$/$3$H$,$G$-$k!%(B
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1942
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1943 %\subsubsection{Options specific to an individual repository}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1944 \subsubsection{$B8D!9$N%j%]%8%H%j$KFCM-$N%*%W%7%g%s(B}
216
699771d085c6 More notes on web configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 215
diff changeset
1945
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1946 %A few \rcsection{web} configuration items ought to be placed in a
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1947 %repository's local \sfilename{.hg/hgrc}, rather than a user's or
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1948 %global \hgrc.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1949 $B$$$/$D$+$N(B\rcsection{web} $B@_Dj9`L\$O%f!<%6$d%0%m!<%P%k$N(B \hgrc $B$G$O$J$/!$(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1950 $B%j%]%8%H%j%m!<%+%k$N(B\sfilename{.hg/hgrc}$B%U%!%$%k$K=q$+$l$k$N$,<+A3$G$"$k!%(B
216
699771d085c6 More notes on web configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 215
diff changeset
1951 \begin{itemize}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1952 %\item[\rcitem{web}{description}] String. A free-form (but preferably
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1953 % brief) string that describes the contents or purpose of the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1954 % repository.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1955 \item[\rcitem{web}{description}] $BJ8;zNs!%%j%]%8%H%j$NFbMF$dL\E*$K$D$$$F(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1956 $B$N@bL@!%7A<0$O<+M3$@$,!$4J7i$J$b$N$,9%$^$l$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1957 %\item[\rcitem{web}{name}] String. The name to use for the repository
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1958 % in the web interface. This overrides the default name, which is the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1959 % last component of the repository's path.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1960 \item[\rcitem{web}{name}] $BJ8;zNs!%%&%'%V%$%s%?%U%'!<%9$G$N%j%]%8%H%jL>!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1961 $B$3$NL>A0$O%j%]%8%H%j%Q%9Cf$N:G8e$NMWAG$+$i:n$i$l$k%G%U%)%k%H(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1962 $BL>$r%*!<%P%i%$%I$9$k!%(B
216
699771d085c6 More notes on web configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 215
diff changeset
1963 \end{itemize}
699771d085c6 More notes on web configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 215
diff changeset
1964
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1965 %\subsubsection{Options specific to the \hgcmd{serve} command}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
1966 \subsubsection{\hgcmd{serve}$B%3%^%s%IFCM-$N%*%W%7%g%s(B}
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1967
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1968 %Some of the items in the \rcsection{web} section of a \hgrc\ file are
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1969 %only for use with the \hgcmd{serve} command.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1970 \hgrc\ $B%U%!%$%k$N(B\rcsection{web}$B%;%/%7%g%s$N9`L\$O(B\hgcmd{serve}$B%3%^%s%I(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1971 $B$G$N$_MQ$$$i$l$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1972
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
1973 \begin{itemize}
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1974 %\item[\rcitem{web}{accesslog}] Path. The name of a file into which to
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1975 % write an access log. By default, the \hgcmd{serve} command writes
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1976 % this information to standard output, not to a file. Log entries are
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1977 % written in the standard ``combined'' file format used by almost all
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1978 % web servers.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1979 \item[\rcitem{web}{accesslog}] $B%Q%9!%%"%/%;%9%m%0$r=PNO$9$k%U%!%$%k$NL>(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1980 $BA0!%%G%U%)%k%H$G$O(B\hgcmd{serve}$B%3%^%s%I$O%U%!%$%k$G$O$J$/I8(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1981 $B=`=PNO$X=PNO$r9T$&!%%m%0%(%s%H%j$O$[$H$s$I$N%&%'%V%5!<%P$G(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1982 $BI8=`$N%3%s%P%$%s%I%U%!%$%k7A<0$G9T$o$l$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1983
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1984 %\item[\rcitem{web}{address}] String. The local address on which the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1985 % server should listen for incoming connections. By default, the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1986 % server listens on all addresses.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1987 \item[\rcitem{web}{address}] $BJ8;zNs!%@\B3$KBP$7$F%5!<%P$,BT5!$9$k%m!<%+(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1988 $B%k%"%I%l%9!%%G%U%)%k%H$G$OA4$F$N%"%I%l%9$KBP$7$FBT5!$9$k!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1989
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1990 %\item[\rcitem{web}{errorlog}] Path. The name of a file into which to
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1991 % write an error log. By default, the \hgcmd{serve} command writes this
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1992 % information to standard error, not to a file.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1993 \item[\rcitem{web}{errorlog}] $B%Q%9!%%(%i!<$r5-O?$9$k%U%!%$%k$NL>A0!%%G%U%)(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1994 $B%k%H$G$O(B \hgcmd{serve}$B%3%^%s%I$O%U%!%$%k$G$O$J$/I8=`%(%i!<(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1995 $B=PNO$X=PNO$r9T$&!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1996
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1997 %\item[\rcitem{web}{ipv6}] Boolean. Whether to use the IPv6 protocol.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1998 % By default, IPv6 is not used.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
1999 \item[\rcitem{web}{ipv6}] $B%V!<%kCM!%(BIPv6$B%W%m%H%3%kMxMQ$NM-L5!%%G%U%)%k%H(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2000 $B$O(BIPv6$BIT;HMQ!%(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2001
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2002 %\item[\rcitem{web}{port}] Integer. The TCP~port number on which the
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2003 % server should listen. The default port number used is~8000.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2004 \item[\rcitem{web}{port}] $B@0?t!%%5!<%P$,BT5!$9$k(BTCP$B%]!<%HHV9f!%%G%U%)%k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2005 $B%H$O(B8000$BHV(B.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2006
215
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
2007 \end{itemize}
70e1f8448699 Document some hgweb config options.
Bryan O'Sullivan <bos@serpentine.com>
parents: 212
diff changeset
2008
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
2009 %\subsubsection{Choosing the right \hgrc\ file to add \rcsection{web}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
2010 %items to}
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
2011 \subsubsection{\rcsection{web}$B%"%$%F%`$rDI2C$9$k@5$7$$(B\hgrc $B%U%!%$%k$rA*$V(B}
216
699771d085c6 More notes on web configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 215
diff changeset
2012
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2013 %It is important to remember that a web server like Apache or
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2014 %\texttt{lighttpd} will run under a user~ID that is different to yours.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2015 %CGI scripts run by your server, such as \sfilename{hgweb.cgi}, will
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2016 %usually also run under that user~ID.
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2017
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2018 Apache$B$d(B\texttt{lighttpd}$B$N$h$&$J%&%'%V%5!<%P$OFH<+$N%f!<%6(B~ID$B$GF0:n$9$k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2019 $B$3$H$KN10U$9$kI,MW$,$"$k!%(B\sfilename{hgweb.cgi}$B$N$h$&$J(BCGI$B%9%/%j%W%H$ODL(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2020 $B>o%5!<%P$,%5!<%P$N%f!<%6(B~ID$B$GF0:n$5$;$k!%(B
216
699771d085c6 More notes on web configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 215
diff changeset
2021
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2022 %If you add \rcsection{web} items to your own personal \hgrc\ file, CGI
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2023 %scripts won't read that \hgrc\ file. Those settings will thus only
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2024 %affect the behaviour of the \hgcmd{serve} command when you run it. To
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2025 %cause CGI scripts to see your settings, either create a \hgrc\ file in
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2026 %the home directory of the user ID that runs your web server, or add
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2027 %those settings to a system-wide \hgrc\ file.
216
699771d085c6 More notes on web configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 215
diff changeset
2028
369
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2029 \rcsection{web}$B%"%$%F%`$r%f!<%68D?M$N(B\hgrc\ $B%U%!%$%k$KDI2C$7$F$b(BCGI$B%9%/%j(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2030 $B%W%H$O$=$N(B\hgrc\ $B$r;2>H$7$J$$!%$3$l$i$N@_Dj$O!$%f!<%6$,5/F0$9$k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2031 \hgcmd{serve}$B%3%^%s%I$K$N$_1F6A$rM?$($k!%$"$J$?$,9T$C$?@_Dj$r(BCGI$B%9%/%j%W(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2032 $B%H$+$i;2>H$5$;$k$?$a$K$O!$%&%'%V%5!<%P$r5/F0$9$k%f!<%6(BID$B$N%[!<%`%G%#%l%/(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2033 $B%H%j$K(B\hgrc\ $B%U%!%$%k$r:n$j!$@_Dj$r%7%9%F%`$N(B\hgrc\ $B%U%!%$%k$K$bDI2C$9$k(B
73aa295a40da - build fix for en
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 367
diff changeset
2034 $BI,MW$,$"$k!%(B
216
699771d085c6 More notes on web configuration.
Bryan O'Sullivan <bos@serpentine.com>
parents: 215
diff changeset
2035
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2036 %\section{System-wide configuration}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2037 \section{$B%7%9%F%`%o%$%I$N@_Dj(B}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2038
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2039 %On Unix-like systems shared by multiple users (such as a server to which
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2040 %people publish changes), it often makes sense to set up some global
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2041 %default behaviors, such as what theme to use in web interfaces.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2042
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2043 $BJ#?t$N%f!<%6$,;HMQ$9$k(BUnix$B7O$N%7%9%F%`!J%f!<%6$,JQ99$r8x3+$9$k%5!<%P$J(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2044 $B$I!K$G$O!$%&%'%V%$%s%?%U%'!<%9$G;HMQ$9$k%F!<%^$N$h$&$K!$%7%9%F%`A4BN$G$N(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2045 $B%G%U%)%k%H$N5sF0$rDj5A$9$k$H$h$$>l9g$,$"$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2046
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2047 %If a file named \filename{/etc/mercurial/hgrc} exists, Mercurial will
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2048 %read it at startup time and apply any configuration settings it finds in
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2049 %that file. It will also look for files ending in a \texttt{.rc}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2050 %extension in a directory named \filename{/etc/mercurial/hgrc.d}, and
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2051 %apply any configuration settings it finds in each of those files.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2052
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2053 \filename{/etc/mercurial/hgrc}$B$H$$$&%U%!%$%k$,$"$k$H!$(BMercurial$B$O5/F0;~$K(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2054 $B$3$l$rFI$_!$A4$F$N@_Dj$rE,MQ$9$k!%$^$?!$(B\filename{/etc/mercurial/hgrc.d}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2055 $B%G%#%l%/%H%jFb$N%U%!%$%kL>$,(B\texttt{.rc}$B$G=*$k%U%!%$%k$rC5$7!$=q$+$l$?@_(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2056 $BDj$rE,MQ$9$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2057
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2058 %\subsection{Making Mercurial more trusting}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2059 \subsection{Mercurial$B$N?.Mj@-$r>e$2$k(B}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2060
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2061 %One situation in which a global \filename{hgrc} can be useful is if
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2062 %users are pulling changes owned by other users. By default, Mercurial
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2063 %will not trust most of the configuration items in a \filename{.hg/hgrc}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2064 %file inside a repository that is owned by a different user. If we clone
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2065 %or pull changes from such a repository, Mercurial will print a warning
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2066 %stating that it does not trust their \filename{.hg/hgrc}.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2067
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2068 $B%7%9%F%`A4BN$N(B\filename{hgrc}$B%U%!%$%k$,M-MQ$J>l9g$N0lNc$K!$B>$N%f!<%6$,=j(B
835
8a3041e6f3cb reflect comments by Hiroshi Someya.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 803
diff changeset
2069 $BM-$9$k%j%]%8%H%j$+$i(Bpull$B$9$k>l9g$,$"$k!%%G%U%)%k%H$G$O(BMercurial$B$OJL$N%f!<(B
803
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2070 $B%6$N=jM-$9$k%j%]%8%H%jFb$K$"$k(B\filename{.hg/hgrc}$B%U%!%$%k$N$[$H$s$I$N9`L\(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2071 $B$r?.Mj$7$J$$!%$=$N$h$&$J%j%]%8%H%j$+$i%/%m!<%s$dJQ99$N(Bpull$B$r9T$&(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2072 $B$H!$(BMercurial$B$O(B\filename{.hg/hgrc}$B$r?.Mj$7$J$$$H$$$&7Y9p$rI=<($9$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2073
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2074 %If everyone in a particular Unix group is on the same team and
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2075 %\emph{should} trust each other's configuration settings, or we want to
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2076 %trust particular users, we can override Mercurial's skeptical defaults
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2077 %by creating a system-wide \filename{hgrc} file such as the following:
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2078
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2079 Unix$B$GFCDj$N%0%k!<%W$KF~$C$F$$$k%f!<%6A4$F$,F1$8%A!<%`$KB0$7!$8_$$$KB>$N(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2080 $B%f!<%6$N@_Dj$r?.Mj(B\emph{$B$9$Y$-(B}$B>l9g$d!$FCDj$N%f!<%6$?$A$N@_Dj$r?.Mj$9$Y$-(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2081 $B>l9g$O!$<!$N$h$&$J%7%9%F%`A4BN$N(B\filename{hgrc}$B%U%!%$%k$r:n@.(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2082 $B$7!$(BMercurial$B$N2{5?E*$J@_Dj$r%*!<%P%i%$%I$9$k$3$H$,$G$-$k!%(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2083
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2084 %\begin{codesample2}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2085 %# Save this as e.g. /etc/mercurial/hgrc.d/trust.rc
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2086 %[trusted]
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2087 %# Trust all entries in any hgrc file owned by the "editors" or
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2088 %# "www-data" groups.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2089 %groups = editors, www-data
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2090 %
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2091 %# Trust entries in hgrc files owned by the following users.
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2092 %users = apache, bobo
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2093 %\end{codesample2}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2094
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2095 \begin{codesample2}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2096 # $B$3$NFbMF$r(B /etc/mercurial/hgrc.d/trust.rc $B$J$I$H$7$FJ]B8$9$k(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2097 [trusted]
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2098 # $B=jM-<T$,(B "editors" $B$^$?$O(B "www-data" $B$G$"$k(B hgrc $B%U%!%$%k$r?.Mj$9$k(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2099 groups = editors, www-data
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2100
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2101 # $B<!$N%f!<%6$N=jM-$9$k(B hgrc $B%U%!%$%k$N%(%s%H%j$r?.Mj$9$k(B
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2102 users = apache, bobo
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2103 \end{codesample2}
5276f40fca1c Propagate e6c99cbd0abd
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 802
diff changeset
2104
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
2105 %%% Local Variables:
293
3b1291f24c0d - replaved latex-mode to yatex-mode
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 290
diff changeset
2106 %%% mode: yatex
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
2107 %%% TeX-master: "00book"
367
586bd91d0c84 - translated title page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 293
diff changeset
2108 %%% End: