changeset 389:5981a0f7540a

finished intro.tex
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 20 Apr 2009 23:50:34 +0900
parents 2e072e3d8637
children 019040fbf5f5
files ja/intro.tex ja/todo.txt
diffstat 2 files changed, 326 insertions(+), 141 deletions(-) [+]
line wrap: on
line diff
--- a/ja/intro.tex	Fri Mar 27 17:39:24 2009 +0900
+++ b/ja/intro.tex	Mon Apr 20 23:50:34 2009 +0900
@@ -98,7 +98,7 @@
 500$B?M$+$i$J$k%W%m%8%'%/%H$G$O!$%j%S%8%g%s%3%s%H%m!<%k%D!<%k$J$7$G$OKX$s$I(B
 $BN)$A9T$+$J$$!%$3$N>l9g!$%j%S%8%g%s%3%s%H%m!<%k$J$7$G$O<:GT$9$k$3$H$,KX$s(B
 $B$IL@Gr$J$?$a!$%j%S%8%g%s%3%s%H%m!<%k$r9T$&%3%9%H$rJ'$&$3$H$OFC$KLdBj$H$O(B
-$B$J$i$J$$!%(Bxxx
+$B$J$i$J$$!%(B%xxx
 
 %On the other hand, a one-person ``quick hack'' might seem like a poor
 %place to use a revision control tool, because surely the cost of using
@@ -426,8 +426,18 @@
 %be at risk of corruption any time you try to update your client's view
 %of the repository.
 
+$B%*!<%W%s%=!<%9%W%m%8%'%/%H$,9%$-$K$J$j!$:n6H$r;O$a$h$&$H$9$k$H$-!$%W%m%8%'(B
+$B%/%H$,J,;6%j%S%8%g%s%3%s%H%m!<%k%D!<%k$r;H$C$F$$$l$P!$$?$@$A$K%W%m%8%'%/(B
+$B%H$N%3%"%a%s%P!<$NCg4V$H$J$k!%H`$i$,%j%]%8%H%j$r8x3+$7$F$$$l$P!$D>$A$K%W(B
+$B%m%8%'%/%HMzNr$r%3%T!<$7!$JQ99$r9T$$!$FbIt$N%a%s%P!<$,;H$C$F$$$k$N$HA4$/(B
+$BF1$8%D!<%k$rMQ$$$F:n6H7k2L$r5-O?$9$k$3$H$,$G$-$k!%BP>NE*$K%a%s%P!<$,Cf1{(B
+$B=8Cf7?$N%D!<%k$r;H$C$F$$$k>l9g!$C/$+$,$"$J$?$KJQ99$rCf1{$N%5!<%P$K%3%_%C(B
+$B%H$9$k5v2D$rM?$($J$$8B$j!$%D!<%k$r%j!<%I%*%s%j!<%b!<%I$G;HMQ$9$k$3$H$K$J(B
+$B$k!%$=$l$^$G$OJQ99$r5-O?$9$k$3$H$O$G$-$:!$$"$J$?$N%m!<%+%k$JJQ99$O%j%]%8(B
+$B%H%j$N%/%i%$%"%s%H%3%T!<$r99?7$9$k$?$S$KGK2u$5$l$k%j%9%/$rH<$&!%(B
+
 %\subsubsection{The forking non-problem}
-\subsubsection{$BLdBj$J$/%U%)!<%/2DG=(B}
+\subsubsection{$B%U%)!<%/$7$F$bLdBj$J$7(B}
 
 %It has been suggested that distributed revision control tools pose
 %some sort of risk to open source projects because they make it easy to
@@ -437,6 +447,12 @@
 %side takes a more or less complete copy of the project's source code,
 %and goes off in its own direction.
 
+$B%*!<%W%s%=!<%9%W%m%8%'%/%H$GJ,;6%j%S%8%g%s%3%s%H%m!<%k%D!<%k$rMQ$$$k$3$H(B
+$B$O!$%W%m%8%'%/%H$N3+H/$r%U%)!<%/$5$;$k%j%9%/$,$"$k$H8@$o$l$F$$$k!%0U8+$N(B
+$BAj0c$d!$3+H/<T$N%0%k!<%W4V$G$NBVEY$N0c$$$+$i!$H`$i$,$=$l0J>e6&$K:n6H$rB3(B
+$B$1$k$3$H$,$G$-$J$$$H7hCG$9$k$3$H$G%U%)!<%/$O5/$3$k!%APJ}$N?X1D$O%W%m%8%'(B
+$B%/%H$N%=!<%9%3!<%I$N$[$\40A4$J%3%T!<$+$i$=$l$>$l$NJ}8~$KJL$l$F$$$/!%(B
+
 %Sometimes the camps in a fork decide to reconcile their differences.
 %With a centralised revision control system, the \emph{technical}
 %process of reconciliation is painful, and has to be performed largely
@@ -444,6 +460,13 @@
 %``win'', and graft the other team's changes into the tree somehow.
 %This usually loses some or all of one side's revision history.
 
+$B;~$K$O%U%)!<%/$7$??X1D$,!$8_$$$N%3!<%I$N:90[$r2r>C$9$k$3$H$b$"$k!%Cf1{=8(B
+$BCf%j%S%8%g%s%3%s%H%m!<%k%7%9%F%`$G$O!$:90[$r(B\emph{$B5;=QE*$K(B}$B2r7h$9$k2aDx$K(B
+$B:$Fq$rH<$$!$B?$/$N>l9g!$<jF0$G2r>C$9$kI,MW$,$"$k!%$I$N%j%S%8%g%sMzNr$r;D(B
+$B$9$N$+7h$a!$$[$+$N%A!<%`$K$h$kJQ99$r%D%j!<$X$J$s$i$+$NJ}K!$G7Q$.LZ$9$kI,(B
+$BMW$,$"$k!%$3$NA`:n$G$O!$DL>o!$0lJ}$N%j%S%8%g%sMzNr$N0lIt$^$?$OA4BN$r<:$&(B
+$B$3$H$K$J$k!%(B
+
 %What distributed tools do with respect to forking is they make forking
 %the \emph{only} way to develop a project.  Every single change that
 %you make is potentially a fork point.  The great strength of this
@@ -451,10 +474,27 @@
 %good at \emph{merging} forks, because forks are absolutely
 %fundamental: they happen all the time.
 
+%$BJ,;6%D!<%k$O!$%U%)!<%/$rC1$K%W%m%8%'%/%H$r?J$a$k$?$a$N0l$D$NJ}K!$H$7$F07(B
+%$B$&!%$9$Y$F$NJQ99$O@x:_E*$K%U%)!<%/%]%$%s%H$K$J$j$&$k!%$3$N%"%W%m!<%A$NM%(B
+%$B0LE@$O!$J,;6%j%S%8%g%s%3%s%H%m!<%k%D!<%k$O%U%)!<%/4V$N(B\emph{$B%^!<%8(B}$B$K6K$a(B
+%$B$FM%$l$F$$$k$3$H$@!%%U%)!<%/$O@dBPE*$K4pACE*$J$3$H$G$"$k!'$3$l$O>o$K5/$3(B
+%$B$k!%(B
+
+$BJ,;6%D!<%k$O!$%U%)!<%/$r%W%m%8%'%/%H$r?J$a$k$?$a$N0l$D$NJ}K!$H$7$F07$&$K(B
+$B$9$.$J$$!%9T$C$?JQ99$9$Y$F$O@x:_E*$K%U%)!<%/%]%$%s%H$K$J$j$&$k!%J,;6%j%S(B
+$B%8%g%s%3%s%H%m!<%k%D!<%k$G$O!$%U%)!<%/$OF|>oE*$K5/$-!$$3$l$r<h$j07$&$3$H(B
+$B$OF0:n$N:,K\$G$"$k!%$=$N$?$a%U%)!<%/4V$N(B\emph{$B%^!<%8(B}$B$K$O6K$a$FM%$l$F$*(B
+$B$j!$$3$l$,J,;6%D!<%k$K$h$k%"%W%m!<%A$NBg$-$JMxE@$H$J$C$F$$$k!%(B
+
 %If every piece of work that everybody does, all the time, is framed in
 %terms of forking and merging, then what the open source world refers
 %to as a ``fork'' becomes \emph{purely} a social issue.  If anything,
 %distributed tools \emph{lower} the likelihood of a fork:
+
+$B3F?M$,>o$K9T$&:n6H$NCGJR$,%U%)!<%/$H%^!<%8$K0LCVIU$1$i$l$k$J$i$P!$%*!<%W(B
+$B%s%=!<%93&$O(B``$B%U%)!<%/(B''$B$r(B\emph{$B=c?h$K(B}$B<R2qE*$J;v>]$H$7$F07$&$@$m$&!%$$$:(B
+$B$l$K$;$hJ,;6%D!<%k$O%U%)!<%/$N38A3@-$r(B\emph{$B2<$2$k(B}$B!'(B
+
 %\begin{itemize}
 %\item They eliminate the social distinction that centralised tools
 %  impose: that between insiders (people with commit access) and
@@ -463,6 +503,13 @@
 %  all that's involved from the perspective of the revision control
 %  software is just another merge.
 %\end{itemize}
+\begin{itemize}
+ \item $BCf1{=8CfE*$J%D!<%k$,2]$9!$%3%_%C%H8"$r;}$C$?FbIt$N?M4V$H;}$?$J$$30(B
+       $BIt$N?M4V$N<R2qE*$J6hJL$r<h$j5n$k(B
+ \item $B%j%S%8%g%s%3%s%H%m!<%k%=%U%H%&%'%"$N4QE@$+$i$9$k$H!$F1$8%^!<%8$G$"(B
+       $B$k$?$a!$<R2qE*$J%U%)!<%/$N8e$K:90[$r2r>C$9$k$N$rMF0W$K$9$k!%(B
+\end{itemize}
+
 
 %Some people resist distributed tools because they want to retain tight
 %control over their projects, and they believe that centralised tools
@@ -474,74 +521,131 @@
 %forgoing the ability to fluidly collaborate with whatever people feel
 %compelled to mirror and fork your history.
 
+$B%W%m%8%'%/%H$r873J$K%3%s%H%m!<%k$7$?$$$?$a$KJ,;6%D!<%k$K93$&?M!9$b$$$k!%(B
+$BH`$i$OCf1{=8Cf%D!<%k$,$3$N$h$&$J%3%s%H%m!<%k$rM?$($k$H9M$($F$$$k!%$7$+$7(B
+$B$=$&;W$C$F$$$F$b!$(BCVS$B$d(BSubversion$B%j%]%8%H%j$r8x3+$9$l$P!$(B $B!J;~4V$O$+$+$C(B
+$B$F$b!K%W%m%8%'%/%H$NMzNrA4BN$r<hF@$7$F!$%3%s%H%m!<%k$N<j$N5Z$P$J$$$I$3$+(B
+$B$G$=$l$r:F8=$9$kJ}K!$O$$$/$i$G$b$"$k!%7k6I!$MzNr$r%_%i!<$7!$%U%)!<%/$9$k(B
+$B$h$&$JN.F0E*$J6(NO$rGS=|$9$k$h$&$J%3%s%H%m!<%k$OHs8=<BE*$G$"$k!%(B
+
 %\subsection{Advantages for commercial projects}
 \subsection{$B>&MQ%W%m%8%'%/%H$G$NMxE@(B}
 
-Many commercial projects are undertaken by teams that are scattered
-across the globe.  Contributors who are far from a central server will
-see slower command execution and perhaps less reliability.  Commercial
-revision control systems attempt to ameliorate these problems with
-remote-site replication add-ons that are typically expensive to buy
-and cantankerous to administer.  A distributed system doesn't suffer
-from these problems in the first place.  Better yet, you can easily
-set up multiple authoritative servers, say one per site, so that
-there's no redundant communication between repositories over expensive
-long-haul network links.
+%Many commercial projects are undertaken by teams that are scattered
+%across the globe.  Contributors who are far from a central server will
+%see slower command execution and perhaps less reliability.  Commercial
+%revision control systems attempt to ameliorate these problems with
+%remote-site replication add-ons that are typically expensive to buy
+%and cantankerous to administer.  A distributed system doesn't suffer
+%from these problems in the first place.  Better yet, you can easily
+%set up multiple authoritative servers, say one per site, so that
+%there's no redundant communication between repositories over expensive
+%long-haul network links.
+
+$B>&MQ%W%m%8%'%/%H$NB?$/$OCOM}E*$K9-$,$C$?%A!<%`$K$h$C$F3+H/$5$l$F$$$k!%Cf(B
+$B1{%5!<%P$O!$1s$/N%$l$?6(NO<T$+$i$O%3%^%s%I<B9T$,CY$+$C$?$j!$?.Mj@-$,Dc$+$C(B
+$B$?$j$9$k$h$&$K8+$($k!%>&MQ%j%S%8%g%s%3%s%H%m!<%k%7%9%F%`$O$3$NLdBj$N2r7h(B
+$B$K%j%b!<%H%5%$%H$NJ#@=$r:n@.$9$k%"%I%*%s$rDs6!$7$F$$$k!%$3$l$i$NB?$/$O9b(B
+$B2A$@$C$?$j!$4IM}$,J#;($@$H$$$&LdBj$r;}$C$F$$$k!%J,;6%7%9%F%`$K$O$=$b$=$b(B
+$B$3$l$i$NLdBj$,$J$$!%$5$i$K9%$^$7$$$3$H$K!$J#?t$N%5%$%HKh$K@5<0$J%5!<%P$r(B
+$B4JC1$K@_Dj$9$k$3$H$,$G$-!$9b2A$JD95wN%$N%M%C%H%o!<%/%j%s%/>e$K>iD9$JDL?.(B
+$B$r9T$&$3$H$,$J$$!%(B
 
-Centralised revision control systems tend to have relatively low
-scalability.  It's not unusual for an expensive centralised system to
-fall over under the combined load of just a few dozen concurrent
-users.  Once again, the typical response tends to be an expensive and
-clunky replication facility.  Since the load on a central server---if
-you have one at all---is many times lower with a distributed
-tool (because all of the data is replicated everywhere), a single
-cheap server can handle the needs of a much larger team, and
-replication to balance load becomes a simple matter of scripting.
+%Centralised revision control systems tend to have relatively low
+%scalability.  It's not unusual for an expensive centralised system to
+%fall over under the combined load of just a few dozen concurrent
+%users.  Once again, the typical response tends to be an expensive and
+%clunky replication facility.  Since the load on a central server---if
+%you have one at all---is many times lower with a distributed
+%tool (because all of the data is replicated everywhere), a single
+%cheap server can handle the needs of a much larger team, and
+%replication to balance load becomes a simple matter of scripting.
 
-If you have an employee in the field, troubleshooting a problem at a
-customer's site, they'll benefit from distributed revision control.
-The tool will let them generate custom builds, try different fixes in
-isolation from each other, and search efficiently through history for
-the sources of bugs and regressions in the customer's environment, all
-without needing to connect to your company's network.
+$BCf1{=8Cf7?$N%j%S%8%g%s%3%s%H%m!<%k%7%9%F%`$N%9%1!<%i%S%j%F%#$OAjBPE*$K>.(B
+$B$5$/!$?t==?M$N%f!<%6$NF1;~%"%/%;%9$K$h$kIi2Y$GCf1{$N9b2A$J%7%9%F%`$,Dd;_(B
+$B$9$k$3$H$bDA$7$/$J$$!%$7$+$7!$$3$l$K9b2A$GJ#;($JJ#@=5!G=$rDI2C$9$k$3$H$,(B
+$B$h$/9T$o$F$7$^$&!%$?$@0l$D$NCf1{%5!<%P$N$_$r;}$D>l9g$G$b!$J,;6%D!<%k$rMQ(B
+$B$$$k$3$H$G!J%G!<%?$O$9$Y$F$"$i$f$k$H$3$m$KJ#@=$5$l$k$?$a!KCf1{%5!<%P$NIi(B
+$B2Y$O?tJ,$N0l$KM^$($i$l$k!%$3$N$?$aC10l$N0B2A$J%5!<%P$GBg$-$J%A!<%`$N<{MW(B
+$B$rK~$?$9$3$H$,$G$-!$Ii2YJ,;6$N$?$a$N%G!<%?$NJ#@=$b%9%/%j%W%H$@$1$G<B8=$G(B
+$B$-$k!%(B
+
+%If you have an employee in the field, troubleshooting a problem at a
+%customer's site, they'll benefit from distributed revision control.
+%The tool will let them generate custom builds, try different fixes in
+%isolation from each other, and search efficiently through history for
+%the sources of bugs and regressions in the customer's environment, all
+%without needing to connect to your company's network.
+
+$B8\5R$NB&$G$3$NNN0h$NLdBj2r7h$r9T$&=>6H0w$,$$$l$P!$J,;6%j%S%8%g%s%3%s%H%m!<(B
+$B%k$NMx1W$rF@$k$3$H$,$G$-$k!%%D!<%k$r;H$&$3$H$G!$%+%9%?%`%S%k%I!$8_$$$KFH(B
+$BN)$7$?=$@5$N%F%9%H!$%W%m%8%'%/%H$NMzNr$+$i%P%0$d%j%0%l%C%7%g%s$N860x$NC5(B
+$B:w$J$I$r8\5R$N4D6-$G%M%C%H%o!<%/$K@\B3$9$kI,MW$J$/<B8=$G$-$k!%(B
 
 %\section{Why choose Mercurial?}
 \section{Mercurial$B$rA*$VM}M3(B}
 
-Mercurial has a unique set of properties that make it a particularly
-good choice as a revision control system.
+%Mercurial has a unique set of properties that make it a particularly
+%good choice as a revision control system.
+Mercurial$B$O!$%j%S%8%g%s%3%s%H%m!<%k%7%9%F%`$H$7$FA*Br$9$k$N$K$U$5$o$7$$(B
+$B%f%K!<%/$J@-<A$r;}$C$F$$$k!%(B
 \begin{itemize}
-\item It is easy to learn and use.
-\item It is lightweight.
-\item It scales excellently.
-\item It is easy to customise.
+%\item It is easy to learn and use.
+%\item It is lightweight.
+%\item It scales excellently.
+%\item It is easy to customise.
+\item $B3X=,$HMxMQ$,4JC1(B
+\item $B7ZNL$G$"$k(B
+\item $B6K$a$FNI9%$K%9%1!<%k$9$k(B
+\item $B%+%9%?%^%$%:$,MF0W$G$"$k(B
 \end{itemize}
 
-If you are at all familiar with revision control systems, you should
-be able to get up and running with Mercurial in less than five
-minutes.  Even if not, it will take no more than a few minutes
-longer.  Mercurial's command and feature sets are generally uniform
-and consistent, so you can keep track of a few general rules instead
-of a host of exceptions.
+%If you are at all familiar with revision control systems, you should
+%be able to get up and running with Mercurial in less than five
+%minutes.  Even if not, it will take no more than a few minutes
+%longer.  Mercurial's command and feature sets are generally uniform
+%and consistent, so you can keep track of a few general rules instead
+%of a host of exceptions.
+
+$BFI<T$,%j%S%8%g%s%3%s%H%m!<%k$K47$l$F$$$k$N$G$"$l$P!$(B Mercurial$B$r(B5$BJ,0JFb$K(B
+$B;H$$;O$a$k$3$H$,$G$-$k$@$m$&!%(B $B2>$K(B5$BJ,$,L5M}$G$b!$$"$H?tJ,$b$"$l$P==J,$K(B
+$B0c$$$J$$!%(B Mercurial$B$N%3%^%s%I$H5!G=%;%C%H$OA4BN$K6Q0l$G0l4S@-$,$"$k$N(B
+$B$G!$B??t$NNc30$r3P$($k$N$G$O$J$/!$6&DL$9$k%k!<%k$5$(3P$($F$*$1$P$h$$!%(B
+
+%On a small project, you can start working with Mercurial in moments.
+%Creating new changes and branches; transferring changes around
+%(whether locally or over a network); and history and status operations
+%are all fast.  Mercurial attempts to stay nimble and largely out of
+%your way by combining low cognitive overhead with blazingly fast
+%operations.
 
-On a small project, you can start working with Mercurial in moments.
-Creating new changes and branches; transferring changes around
-(whether locally or over a network); and history and status operations
-are all fast.  Mercurial attempts to stay nimble and largely out of
-your way by combining low cognitive overhead with blazingly fast
-operations.
+$B>.$5$J%W%m%8%'%/%H$G$O!$$9$0$K(BMercurial$B$r;H$$;O$a$k$3$H$,$G$-$k!%?7$7$$JQ(B
+$B99$H%V%i%s%A$r:n$j!$!J%m!<%+%k$d%M%C%H%o!<%/1[$7$K!KJQ99$rE>Aw$7!$MzNr$H(B
+$B>uBV$K4X$9$kF0:n$O$9$Y$F9bB.$G$"$k!%(B Mercurial$B$N8D!9$NF0:n$O6K$a$F9bB.$G(B
+$B$"$j!$A4BN$H$7$F$bAGAa$/!$%*!<%P%X%C%I$,$[$H$s$ICN3P$G$-$J$$$h$&$JF0:n$r(B
+$B$9$k$h$&$K$J$C$F$$$k!%(B
+
+%The usefulness of Mercurial is not limited to small projects: it is
+%used by projects with hundreds to thousands of contributors, each
+%containing tens of thousands of files and hundreds of megabytes of
+%source code.
 
-The usefulness of Mercurial is not limited to small projects: it is
-used by projects with hundreds to thousands of contributors, each
-containing tens of thousands of files and hundreds of megabytes of
-source code.
+Mercurial$B$NM-MQ@-$O!$>.$5$J%W%m%8%'%/%H$K8B$i$J$$!%(BMercurial$B$O?tI4?M$+$i(B
+$B?t@i?M$N9W8%<T$rMJ$7!$?tK|$N%U%!%$%k$+$i$J$k?tI4%a%,%P%$%H$K$b5Z$V%=!<%9(B
+$B%3!<%I$+$i$J$k%W%m%8%'%/%H$G$bM-8z$G$"$k!%(B
 
-If the core functionality of Mercurial is not enough for you, it's
-easy to build on.  Mercurial is well suited to scripting tasks, and
-its clean internals and implementation in Python make it easy to add
-features in the form of extensions.  There are a number of popular and
-useful extensions already available, ranging from helping to identify
-bugs to improving performance.
+%If the core functionality of Mercurial is not enough for you, it's
+%easy to build on.  Mercurial is well suited to scripting tasks, and
+%its clean internals and implementation in Python make it easy to add
+%features in the form of extensions.  There are a number of popular and
+%useful extensions already available, ranging from helping to identify
+%bugs to improving performance.
+
+Mercurial$B$N3K$K$J$k5!G=$,==J,$G$J$+$C$?>l9g!$3HD%$9$k$3$H$O$?$d$9$$!%(B
+Mercurial$B$O%9%/%j%W%H$H$h$/Fk@w$`!%$^$?@0$C$?FbIt9=B$$H(BPython$B$K$h$k<BAu$N(B
+$B$?$a!$3HD%$N7A$G?7$7$$5!G=$rDI2C$9$k$N$,MF0W$G$"$k!%%P%0$N<1JL$r=u$1$k$b(B
+$B$N$+$i!$@-G=$r2~A1$9$k$b$N$^$G!$?M5$$N9b$$M-MQ$J3HD%$,$9$G$K?tB?$/B8:_$7(B
+$B$F$$$k!%(B
 
 %\section{Mercurial compared with other tools}
 \section{Mercurial$B$HB>$N%D!<%k$NHf3S(B}
@@ -555,71 +659,123 @@
 $B%"%9$,$+$+$C$F$$$k$3$H$rM}2r$7$FM_$7$$!%I.<T$O2<5-$N%j%S%8%g%s%3%s%H%m!<(B
 $B%k%D!<%k$N$9$Y$F$r;HMQ$7$?$3$H$,$"$j!$$=$N;HMQ4|4V$OB?$/$N>l9g?tG/$K5Z$V!%(B
 
-
 \subsection{Subversion}
 
-Subversion is a popular revision control tool, developed to replace
-CVS.  It has a centralised client/server architecture.
+%Subversion is a popular revision control tool, developed to replace
+%CVS.  It has a centralised client/server architecture.
+
+Subversion$B$O!$(BCVS$B$rCV$-49$($k$Y$/3+H/$5$l$?!$?M5$$N9b$$%j%S%8%g%s%3%s%H%m!<(B
+$B%k%D!<%k$G$"$k!%$3$l$bCf1{=8Cf7?$N%/%i%$%"%s%H%5!<%P%"!<%-%F%/%A%c$r;}$D!%(B
+
+%Subversion and Mercurial have similarly named commands for performing
+%the same operations, so if you're familiar with one, it is easy to
+%learn to use the other.  Both tools are portable to all popular
+%operating systems.
 
-Subversion and Mercurial have similarly named commands for performing
-the same operations, so if you're familiar with one, it is easy to
-learn to use the other.  Both tools are portable to all popular
-operating systems.
+Subversion$B$H(BMercurial$B$G$O!$F1$8F0:n$N$?$a$N%3%^%s%I$KF1MM$NL>A0$,IU$1$i$l(B
+$B$F$$$k$?$a!$$I$A$i$+$K47$l$F$$$l$P$b$&0lJ}$r3X$V$N$O$?$d$9$$!%$I$A$i$N%D!<(B
+$B%k$b$9$Y$F$N?M5$$N9b$$%*%Z%l!<%F%#%s%0%7%9%F%`$K0\?"$5$l$F$$$k!%(B
+
+%Subversion lacks a history-aware merge capability, forcing its users
+%to manually track exactly which revisions have been merged between
+%branches.  If users fail to do this, or make mistakes, they face the
+%prospect of manually resolving merges with unnecessary conflicts.
+%Subversion also fails to merge changes when files or directories are
+%renamed.  Subversion's poor merge support is its single biggest
+%weakness.
 
-Subversion lacks a history-aware merge capability, forcing its users
-to manually track exactly which revisions have been merged between
-branches.  If users fail to do this, or make mistakes, they face the
-prospect of manually resolving merges with unnecessary conflicts.
-Subversion also fails to merge changes when files or directories are
-renamed.  Subversion's poor merge support is its single biggest
-weakness.
+Subversion$B$OMzNr$r9MN8$7$?%^!<%8$N5!G=$r7g$$$F$*$j!$@53N$K$I$N%j%S%8%g%s(B
+$B$,%V%i%s%A4V$G%^!<%8$5$l$?$N$+%f!<%6<+?H$,%H%i%C%/$9$kI,MW$,$"$k!#%f!<%6(B
+$B$,DI$$@Z$l$J$+$C$?>l9g$d4V0c$$$rHH$7$?>l9g!$I,MW$N$J$$%3%s%U%j%/%H$r<jF0(B
+$B$G2r7h$9$k$3$H$K$J$k!%(BSubversion$B$O%U%!%$%k$d%G%#%l%/%H%j$,%j%M!<%`$5$l$F(B
+$B$$$?>l9g$b%^!<%8$K<:GT$9$k!%%^!<%8%5%]!<%H$N<e$5$O(BSubversion$B$N:GBg$N<eE@(B
+$B$N0l$D$G$"$k!%(B
 
-Mercurial has a substantial performance advantage over Subversion on
-every revision control operation I have benchmarked.  I have measured
-its advantage as ranging from a factor of two to a factor of six when
-compared with Subversion~1.4.3's \emph{ra\_local} file store, which is
-the fastest access method available).  In more realistic deployments
-involving a network-based store, Subversion will be at a substantially
-larger disadvantage.  Because many Subversion commands must talk to
-the server and Subversion does not have useful replication facilities,
-server capacity and network bandwidth become bottlenecks for modestly
-large projects.
+%Mercurial has a substantial performance advantage over Subversion on
+%every revision control operation I have benchmarked.  I have measured
+%its advantage as ranging from a factor of two to a factor of six when
+%compared with Subversion~1.4.3's \emph{ra\_local} file store, which is
+%the fastest access method available.  In more realistic deployments
+%involving a network-based store, Subversion will be at a substantially
+%larger disadvantage.  Because many Subversion commands must talk to
+%the server and Subversion does not have useful replication facilities,
+%server capacity and network bandwidth become bottlenecks for modestly
+%large projects.
+
+Mercurial$B$OI.<T$,%Y%s%A%^!<%/$r9T$C$?A4$F$N%j%S%8%g%s%3%s%H%m!<%kA`:n$K$*(B
+$B$$$F(BSubversion$B$h$j$bL@3N$J@-G=>e$NM%0L@-$r;}$C$F$$$k!%I.<T$O(B2$B$+$i(B6$B$^$G$N(B
+$BHO0O$GM%0L@-$r(BSubversion~1.4.3$B$GMxMQ2DG=$JCf$G:G$b9bB.$J(B\emph{ra\_$B%m!<%+(B
+$B%k(B}$B%U%!%$%kJ]B8$HHf3S$7$?!%$h$j8=<BE*$JMxMQ$G$O%M%C%H%o!<%/$rMxMQ$7$?%U%!(B
+$B%$%k%5!<%S%9$rMQ$$$k$3$H$K$J$j!$(BSubversion$B$G$OL@3N$KBg$-$JITMx$,$"$k!%B?(B
+$B$/$N(BSubversion$B%3%^%s%I$O%5!<%P$HDL?.$9$kI,MW$,$"$j!$(BSubversion$B$O<BMQE*$J(B
+$BJ#@=5!9=$r;}$?$J$$$?$a!$0lDj0J>e$N5,LO$N%W%m%8%'%/%H$G$O!$%5!<%P%-%c%Q%7(B
+$B%F%#$H%M%C%H%o!<%/$N%P%s%II}$,%\%H%k%M%C%/$H$J$k$+$i$G$"$k!%(B
+
+%Additionally, Subversion incurs substantial storage overhead to avoid
+%network transactions for a few common operations, such as finding
+%modified files (\texttt{status}) and displaying modifications against
+%the current revision (\texttt{diff}).  As a result, a Subversion
+%working copy is often the same size as, or larger than, a Mercurial
+%repository and working directory, even though the Mercurial repository
+%contains a complete history of the project.
 
-Additionally, Subversion incurs substantial storage overhead to avoid
-network transactions for a few common operations, such as finding
-modified files (\texttt{status}) and displaying modifications against
-the current revision (\texttt{diff}).  As a result, a Subversion
-working copy is often the same size as, or larger than, a Mercurial
-repository and working directory, even though the Mercurial repository
-contains a complete history of the project.
+$B$5$i$K!$(BSubversion$B$O99?7$5$l$?%U%!%$%k$NC5:w(B(\texttt{status})$B$H!$8=:_$N%j(B
+$B%S%8%g%s$KBP$9$k:9J,$N$rI=<((B(\texttt{diff})$B$J$I$N$$$/$D$+$NA`:n$G%M%C%H%o!<(B
+$B%/%H%i%s%6%/%7%g%s$rHr$1$k$?$a$KL@3N$J%9%H%l!<%8%*!<%P%X%C%I$r$b$?$i$9!%(B
+$B7k2L$H$7$F!$(BSubversion$B$N%o!<%-%s%0%3%T!<$O!$%W%m%8%'%/%H$N40A4$JMzNr$r4^(B
+$B$`(BMercurial$B$N%j%]%8%H%j5Z$S%o!<%-%s%0%G%#%l%/%H%j$HF1$8$+$h$jBg$-$J%5%$%:(B
+$B$H$J$C$F$7$^$&!%(B
+
+%Subversion is widely supported by third party tools.  Mercurial
+%currently lags considerably in this area.  This gap is closing,
+%however, and indeed some of Mercurial's GUI tools now outshine their
+%Subversion equivalents.  Like Mercurial, Subversion has an excellent
+%user manual.
 
-Subversion is widely supported by third party tools.  Mercurial
-currently lags considerably in this area.  This gap is closing,
-however, and indeed some of Mercurial's GUI tools now outshine their
-Subversion equivalents.  Like Mercurial, Subversion has an excellent
-user manual.
+Subversion$B$K$OB?$/$N%5!<%I%Q!<%F%#%D!<%k$,$"$k!%(BMercurial$B$O$3$NE@$G$+$J$j(B
+$BCY$l$F$$$k!%%.%c%C%W$O=L$^$j$D$D$"$k$,!$(BMercurial$B$N(BGUI$B%D!<%k$N$$$/$D$+(B
+$B$O!$BP1~$9$k(BSubversion$BMQ$N$b$N$h$j$b=($G$F$$$k!%(BSubversion$B$K$O(BMercurial$B$H(B
+$BF1MM$KM%$l$?%f!<%6%^%K%e%"%k$,$"$k!%(B
+
+%Because Subversion doesn't store revision history on the client, it is
+%well suited to managing projects that deal with lots of large, opaque
+%binary files.  If you check in fifty revisions to an incompressible
+%10MB file, Subversion's client-side space usage stays constant. The
+%space used by any distributed SCM will grow rapidly in proportion to
+%the number of revisions, because the differences between each revision
+%are large.
 
-Because Subversion doesn't store revision history on the client, it is
-well suited to managing projects that deal with lots of large, opaque
-binary files.  If you check in fifty revisions to an incompressible
-10MB file, Subversion's client-side space usage stays constant The
-space used by any distributed SCM will grow rapidly in proportion to
-the number of revisions, because the differences between each revision
-are large.
+Subversion$B$O%j%S%8%g%s$NMzNr$r%/%i%$%"%s%HFb$K;}$?$J$$$?$a!$%5%$%:$,Bg$-(B
+$B$/FbMF$NL@$i$+$G$J$$B??t$N%P%$%J%j%U%!%$%k$r<h$j07$&$N$K$O8~$$$F$$$k!%(B
+$B05=L$N8z$+$J$$(B10MB$B$N%U%!%$%k$KBP$7$F(B50$B%j%S%8%g%s$r%A%'%C%/%$%s$9$k>l(B
+$B9g!$(BSubversion$B$N%/%i%$%"%s%HB&$N%9%H%l!<%8$N;HMQNL$O0lDj$G$"$k!%(B
+$BJ,;6(BSCM$B$G$O!$%9%H%l!<%8;HMQNL$O3F!9$N%j%S%8%g%s4V$G$N:9J,$,Bg$-$$$?$a!$%j(B
+$B%S%8%g%s?t$KHfNc$7$F$9$0$KA}$($F$7$^$&!%(B
+
+%In addition, it's often difficult or, more usually, impossible to
+%merge different versions of a binary file.  Subversion's ability to
+%let a user lock a file, so that they temporarily have the exclusive
+%right to commit changes to it, can be a significant advantage to a
+%project where binary files are widely used.
 
-In addition, it's often difficult or, more usually, impossible to
-merge different versions of a binary file.  Subversion's ability to
-let a user lock a file, so that they temporarily have the exclusive
-right to commit changes to it, can be a significant advantage to a
-project where binary files are widely used.
+$B2C$($F!$0[$J$k%P!<%8%g%s$N%P%$%J%j%U%!%$%k$r%^!<%8$9$k$N$OIT2DG=$G$"$C$?(B
+$B$j!$:$Fq$G$"$C$?$j$9$k!%(B Subversion$B$G$O%U%!%$%k%m%C%/5!G=$K$h$C$F%f!<%6$,(B
+$B0l;~E*$K%U%!%$%k$X$NJQ99$r%3%_%C%H$9$kGSB>E*$J8"Mx$rF@$k$3$H$,$G$-$k!%$3(B
+$B$l$O%P%$%J%j%U%!%$%k$r9-HF$K;H$&%W%m%8%'%/%H$G$OBg$-$JMxE@$K$J$jF@$k!%(B
 
-Mercurial can import revision history from a Subversion repository.
-It can also export revision history to a Subversion repository.  This
-makes it easy to ``test the waters'' and use Mercurial and Subversion
-in parallel before deciding to switch.  History conversion is
-incremental, so you can perform an initial conversion, then small
-additional conversions afterwards to bring in new changes.
+%Mercurial can import revision history from a Subversion repository.
+%It can also export revision history to a Subversion repository.  This
+%makes it easy to ``test the waters'' and use Mercurial and Subversion
+%in parallel before deciding to switch.  History conversion is
+%incremental, so you can perform an initial conversion, then small
+%additional conversions afterwards to bring in new changes.
 
+Mercurial$B$O(BSubversion$B%j%]%8%H%j$+$i%j%S%8%g%sMzNr$r%$%s%]!<%H$9$k$3$H$,$G(B
+$B$-$k!%$^$?!$%j%S%8%g%sMzNr$r(BSubversion$B%j%]%8%H%j$K%(%/%9%]!<%H$9$k$3$H$b(B
+$B2DG=$@!%$3$N$?$a!$0\9T$r7h$a$kA0$K(BMercurial$B$r;n$7$?$j!$(BMercurial$B$r(B
+Subversion$B$HJB9T$7$FMxMQ$9$k$3$H$,MF0W$G$"$k!%(B
+$BMzNr$NJQ49$OA2?JE*$K9T$($k$?$a!$:G=i$KJQ49$r9T$C$?8e!$?7$?$JJQ99$r<h$j9~(B
+$B$`$?$a$KDI2C$NJQ49$r9T$&$3$H$,$G$-$k!%(B
 
 \subsection{Git}
 
@@ -682,44 +838,73 @@
 
 Mercurial$B$O(BGit$B%j%]%8%H%j$+$i%j%S%8%g%sMzNr$r%$%s%]!<%H$9$k$3$H$,$G$-$k!%(B
 
-
 \subsection{CVS}
 
-CVS is probably the most widely used revision control tool in the
-world.  Due to its age and internal untidiness, it has been only
-lightly maintained for many years.
+%CVS is probably the most widely used revision control tool in the
+%world.  Due to its age and internal untidiness, it has been only
+%lightly maintained for many years.
+
+CVS$B$O$*$=$i$/@$3&Cf$G:G$b9-HO$K;HMQ$5$l$F$$$k%j%S%8%g%s%3%s%H%m!<%k%D!<(B
+$B%k$G$"$m$&!%$=$N8E$5$HFbIt$NMp;($5$N$?$a!$D9$i$/7Z$$%a%s%F%J%s%9$N$_$,9T(B
+$B$o$l$F$-$?!%(B
 
-It has a centralised client/server architecture.  It does not group
-related file changes into atomic commits, making it easy for people to
-``break the build'': one person can successfully commit part of a
-change and then be blocked by the need for a merge, causing other
-people to see only a portion of the work they intended to do.  This
-also affects how you work with project history.  If you want to see
-all of the modifications someone made as part of a task, you will need
-to manually inspect the descriptions and timestamps of the changes
-made to each file involved (if you even know what those files were).
+%It has a centralised client/server architecture.  It does not group
+%related file changes into atomic commits, making it easy for people to
+%``break the build'': one person can successfully commit part of a
+%change and then be blocked by the need for a merge, causing other
+%people to see only a portion of the work they intended to do.  This
+%also affects how you work with project history.  If you want to see
+%all of the modifications someone made as part of a task, you will need
+%to manually inspect the descriptions and timestamps of the changes
+%made to each file involved (if you even know what those files were).
+
+CVS$B$O=8Cf7?$N%/%i%$%"%s%H%5!<%P%"!<%-%F%/%A%c$r;}$D!%(BCVS$B$O!$4XO"$7$?%U%!(B
+$B%$%kJQ99$r%0%k!<%W2=$7!$%"%H%_%C%/$K%3%_%C%H$9$k$3$H$,$G$-$J$$!%$3$N$?$a(B
+$B%f!<%6$,%3%_%C%H$K$h$C$F%S%k%I$rGK2u$9$k$3$H$,5/$3$k!%C/$+$,JQ99$N0lIt$r(B
+$B@.8yN"$K%3%_%C%H$7$?$b$N$N!$;D$j$NItJ,$O%^!<%8$,I,MW$J$?$a%V%m%C%/$5$l$F(B
+$B$$$k>l9g!$B>$N%f!<%6$OI,MW$JJQ99$N0lIt$7$+8+$k$3$H$,$G$-$J$$!%F1$8$3$H$O(B
+$B%W%m%8%'%/%H$NMzNr$KBP$7$F$b5/$3$k!%C/$+$N:n6H$K4X78$9$kJQ99$9$Y$F$r;2>H(B
+$B$7$?$$>l9g!$!J$I$N%U%!%$%k$,2?$J$N$+CN$C$F$$$l$P!K4XO"$9$k3F%U%!%$%k$K$D(B
+$B$$$F!$JQ99$N@bL@$H%?%$%`%9%?%s%W$r<+NO$GD4$Y$FJQ99$rFCDj$9$kI,MW$,$"$k!%(B
 
-CVS has a muddled notion of tags and branches that I will not attempt
-to even describe.  It does not support renaming of files or
-directories well, making it easy to corrupt a repository.  It has
-almost no internal consistency checking capabilities, so it is usually
-not even possible to tell whether or how a repository is corrupt.  I
-would not recommend CVS for any project, existing or new.
+%CVS has a muddled notion of tags and branches that I will not attempt
+%to even describe.  It does not support renaming of files or
+%directories well, making it easy to corrupt a repository.  It has
+%almost no internal consistency checking capabilities, so it is usually
+%not even possible to tell whether or how a repository is corrupt.  I
+%would not recommend CVS for any project, existing or new.
+
+CVS$B$N%?%0$H%V%i%s%A$O8l$k5$$5$(5/$-$J$$$h$&$J:.Mp$7$?7A<0$r;}$C$F$$$k!%$-(B
+$B$A$s$H$7$?%U%!%$%k$d%G%#%l%/%H%j$N%j%M!<%`$r%5%]!<%H$7$J$$$?$a!$%j%]%8%H(B
+$B%j$,4JC1$K2u$l$F$7$^$&!%(B cvs$B$OFbIt$G0l4S@-$r%A%'%C%/$9$k5!G=$,$J$/!$%j%](B
+$B%8%H%j$NGKB;$rCN$i$;$k$3$H$b$G$-$J$$!%I.<T$O4{B8$^$?$O?75,$rLd$o$:!$$I$N(B
+$B$h$&$J%W%m%8%'%/%H$G$"$C$F$b(BCVS$B$N;HMQ$OA&$a$J$$!%(B
 
-Mercurial can import CVS revision history.  However, there are a few
-caveats that apply; these are true of every other revision control
-tool's CVS importer, too.  Due to CVS's lack of atomic changes and
-unversioned filesystem hierarchy, it is not possible to reconstruct
-CVS history completely accurately; some guesswork is involved, and
-renames will usually not show up.  Because a lot of advanced CVS
-administration has to be done by hand and is hence error-prone, it's
-common for CVS importers to run into multiple problems with corrupted
-repositories (completely bogus revision timestamps and files that have
-remained locked for over a decade are just two of the less interesting
-problems I can recall from personal experience).
+%Mercurial can import CVS revision history.  However, there are a few
+%caveats that apply; these are true of every other revision control
+%tool's CVS importer, too.  Due to CVS's lack of atomic changes and
+%unversioned filesystem hierarchy, it is not possible to reconstruct
+%CVS history completely accurately; some guesswork is involved, and
+%renames will usually not show up.  Because a lot of advanced CVS
+%administration has to be done by hand and is hence error-prone, it's
+%common for CVS importers to run into multiple problems with corrupted
+%repositories (completely bogus revision timestamps and files that have
+%remained locked for over a decade are just two of the less interesting
+%problems I can recall from personal experience).
 
-Mercurial can import revision history from a CVS repository.
+Mercurial$B$O(BCVS$B$N%j%S%8%g%sMzNr$r%$%s%]!<%H$9$k$3$H$,$G$-$k!%$7$+$7B>$N%j(B
+$B%S%8%g%s%3%s%H%m!<%k%D!<%k$N(BCVS$B%$%s%]!<%?!<F1MM$$$/$D$+$N@)8B$b$"$k!%(B
+CVS$B$K$O%"%H%_%C%/%A%'%s%8$,$J$/!$%U%!%$%k%7%9%F%`3,AX$r%P!<%8%g%s4IM}$9(B
+$B$kG=NO$b$J$$$?$a!$(BCVS$B$NMzNr$r40A4$+$D@53N$K:F8=$9$k$3$H$O$G$-$J$$!%:F8=(B
+$B$K$O$$$/$D$+$N?dB,$,F~$j!$%j%M!<%`$ODL>o:F8=$5$l$J$$!%(B
+CVS$B$G$O9bEY$J4IM}$NB?$/$,<jF0$G9T$o$l$k$?$a!$4V0c$$$,5/$3$j$d$9$/!$GKB;$7(B
+$B$?%j%]%8%H%j$G(BCVS$B%$%s%]!<%?!<$,F1;~$KJ#?t$NLdBj$K8+Iq$o$l$k$3$H$,$h$/$"(B
+$B$k!%!JI.<T$NITL{2w$JBN83$G$O!$(B10$BG/0J>e$K$o$?$C$F%m%C%/$5$l$?$^$^$N40A4$K(B
+$BL50UL#$J%j%S%8%g%s%?%$%`%9%?%s%W$d%U%!%$%k$r8+$?$3$H$,$"$k!%!K(B
 
+%Mercurial can import revision history from a CVS repository.
+
+Mercurial$B$O(BCVS$B%j%]%8%H%j$+$i%j%S%8%g%sMzNr$r%$%s%]!<%H$9$k$3$H$,$G$-$k!%(B
 
 %\subsection{Commercial tools}
 \subsection{$B>&MQ%D!<%k(B}
--- a/ja/todo.txt	Fri Mar 27 17:39:24 2009 +0900
+++ b/ja/todo.txt	Mon Apr 20 23:50:34 2009 +0900
@@ -8,7 +8,7 @@
 hg_id.tex	noneed
 hgext.tex	100%
 hook.tex	50%
-intro.tex	40%
+intro.tex	100%
 license.tex
 mq-collab.tex   100%
 mq-ref.tex	100%