
foozy@708: \chapter{Introduction}
foozy@708: \label{chap:intro}
foozy@708: 
foozy@708: \section{About revision control}
foozy@708: 
foozy@708: $B9=@.4IM}$H$O!"(B
foozy@708: $BJ#?t$NHG$r;}$D>pJs72$r4IM}$9$k<j=g$N$3$H$G$9!#(B
foozy@708: $B:G$bC1=c$J<jK!$G$O!"(B
foozy@708: $BB?$/$N?M!9$,$3$l$r<jF0$G9T$$$^$9!#(B
foozy@708: $B%U%!%$%k99?7;~$K$O!"(B
foozy@708: $BD>A0$NHG$KMxMQ$7$?CM$h$j$bBg$-$JCM$r3d$jEv$F$F$+$i!"(B
foozy@708: $B$=$NCM$r4^$a$??7$7$$L>A0$G%U%!%$%k$rJ]B8$9$k!"(B
foozy@708: $B$H$$$C$?6q9g$G$9!#(B
foozy@708: 
foozy@708: $B$7$+$7$J$,$i!"$?$C$?#1$D$N%U%!%$%k$G$"$C$F$b!"(B
foozy@708: $BJ#?t$NHG$r<jF0$G4IM}$9$k:n6H$O4V0c$$$,$A$G$9$N$G!"(B
foozy@708: $B$3$N<j=g$r<+F02=$9$k%=%U%H%&%'%"%D!<%k$K$OD9$$Nr;K$,$"$j$^$9!#(B
foozy@708: $B=i4|$N9=@.4IM}$r<+F02=$9$k%D!<%k$O!"(B
foozy@708: $BC10l%f!<%6$K$h$kC10l%U%!%$%k$NHG4IM}$NJd=u$r0U?^$7$F$$$^$7$?!#(B
foozy@708: $B$3$3?t==G/$N4V$K!"(B
foozy@708: $B9=@.4IM}%D!<%k$NE,MQHO0O$OBgJQ3HBg$5$l$F$-$^$7$?!#(B
foozy@708: $B8=:_$G$O!"(B
foozy@708: $BJ#?t$N%U%!%$%k$KBP$9$kJ#?t$N%f!<%6$N6&F1:n6H$r4IM}$9$k$^$G$K$J$C$F$$$^$9!#(B
foozy@708: $B:#;~$N:GA1$N9=@.4IM}%D!<%k$O!"(B
foozy@708: $B6&F1:n6H$9$k?t@i?M$N%f!<%6$K$h$C$F!"(B
foozy@708: $B?t==K|$N%U%#%k$+$i$J$k%W%m%8%'%/%H$N%G!<%?$,J#@=$5$l$F$b!"(B
foozy@708: $B$S$/$H$b$7$^$;$s!#(B
foozy@708: 
foozy@708: \subsection{Why use revision control?}
foozy@708: 
foozy@708: $B%W%m%8%'%/%H$K$*$$$F!"FI<T$G$"$k$"$J$?$d!"(B
foozy@708: $B$"$J$?$N%A!<%`$,<+F02=$5$l$?9=@.4IM}%D!<%k$r;HMQ$7$?$/$J$k$N$O!"(B
foozy@708: $B0J2<$N$h$&$JM}M3$,$"$k$+$i$G$O$J$$$G$7$g$&$+!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $B%W%m%8%'%/%H$NNr;K$HH/E8$r5-O?$7$F$/$l$k$N$G!"(B
foozy@708:   $B<+J,$G$=$l$r5-O?$9$kI,MW$,L5$$$?$a!#(B
foozy@708:   $B9=@.4IM}%D!<%k$r;HMQ$9$k$3$H$G!"(B
foozy@708:   $BJQ99Kh$K!"(B\emph{$B2?;~(B}$B!"(B\emph{$BC/$,(B}$B!"(B\emph{$B2?8N(B}$B!"(B
foozy@708:   \emph{$B2?$r(B}$BJQ99$7$?$+$N5-O?$r8+$k$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \item $BB>$N%a%s%P!<$H$N6&F1:n6H$,MF0W$K$J$k$?$a!#(B  
foozy@708:   $BNc$($P!"@x:_E*$KN>N)$7$J$$JQ99$,$[$\F1;~$K9T$o$l$?:]$K!"(B
foozy@708:   $B9=@.4IM}%D!<%k$O$=$N$3$H$r8!=P$7$?>e$G!"(B
foozy@708:   $B$3$N$h$&$J>WFM$N2r>C$r<j=u$1$7$F$/$l$^$9!#(B
foozy@708: 
foozy@708: \item $B4V0c$$$+$i$NI|5l$r<j=u$1$7$F$/$l$k$?$a!#(B
foozy@708:   $BJQ99<B;\$7$?8e$G4V0c$$$K5$IU$$$?>l9g!"(B
foozy@708:   $BJ#?t$N%U%!%$%k$KEO$k4V0c$$$G$"$C$F$b!"(B
foozy@708:   $B0JA0$N>uBV$KI|5l$9$k$3$H$,$G$-$^$9!#(B
foozy@708:   $B<B$N$H$3$m!"(B
foozy@708:   \emph{$BK\Ev$K(B}$BNI$$9=@.4IM}%D!<%k$G$"$l$P!"(B
foozy@708:   $BLdBj$,:.F~$7$?;~E@$N87L)$J3d$j=P$7$r8z2LE*$KC5$7=P$9$3$H$,$G$-$k$G$7$g$&(B
foozy@708:   $B!J>\:Y$O!"(B\ref{sec:undo:bisect}~$B@a$r;2>H$7$F$/$@$5$$!K(B\footnote{$BLuCm(B:
foozy@708:   $B$D$^$j!"$=$l$,$G$-$k(B Mercurial $B$O(B\emph{$BK\Ev$K(B}$BNI$$9=@.4IM}%D!<%k$@!"(B
foozy@708:   $B$H$$$&$3$H$G$9$M!J>P!K(B}$B!#(B
foozy@708: 
foozy@708: \item $B%W%m%8%'%/%H$NJ#?t$NHG$N4V$G$NF1;~:n6H$d!"(B
foozy@708:   $BHG$N4V$G$N9T$-Mh$rJd=u$7$F$/$l$k$?$a!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: $B$3$l$i$NM}M3$NKX$I$,(B---
foozy@708: $B>/$J$/$H$bM}6~$N>e$G$O(B
foozy@708: ---$B0l?M$-$j$N%W%m%8%'%/%H$G$b!"(B
foozy@708: $BI4?M$H6&F1:n6H$9$k%W%m%8%'%/%H$G$bM-8z$G$9!#(B
foozy@708: 
foozy@708: $B$3$l$i#2$D$N5,LO$N0[$J$k%1!<%9(B
foozy@708: $B!J(B``lone hacker'' $B$H(B ``huge team''$B!K$N$=$l$>$l$K$*$$$F!"(B
foozy@708: $B9=@.4IM}%D!<%k$N<BMQ@-$K4X$9$k=EMW$JLdBj$O!"(B
foozy@708: $B%D!<%k$+$iF@$i$l$k(B\emph{$BMx1W(B}$B$H$=$N(B\emph{$B%3%9%H(B}$B$r$I$N$h$&$KHf3S$9$k$+!"(B
foozy@708: $B$H$$$&E@$K$"$j$^$9!#(B
foozy@708: $BM}2r$d;HMQ$,Fq$7$$9=@.4IM}%D!<%k$O!"(B
foozy@708: $B%3%9%H$,9b$/IU$/$G$7$g$&!#(B
foozy@708: 
foozy@708: $B9=@.4IM}$N%D!<%k$H%W%m%;%9H4$-$G$O!"(B
foozy@708: 500 $B?M$+$i$J$k%W%m%8%'%/%H$O$*$=$i$/<+J,<+?H$N=E$_$G!"(B
foozy@708: $B$9$0$K$G$bJx$l$F$7$^$&$G$7$g$&!#(B
foozy@708: $B$3$N>l9g!"(B
foozy@708: $B9=@.4IM}%D!<%k(B\emph{$BH4$-(B}$B$K$O<:GT$,J]>Z$5$l$?$h$&$J$b$N$G$9$+$i!"(B
foozy@708: $B$=$l$r;W$($P!"(B
foozy@708: $B9=@.4IM}%D!<%k$rMxMQ$9$k%3%9%H$K$D$$$F$O9M$($k$^$G$bL5$$$G$7$g$&!#(B
foozy@708: 
foozy@708: $B0lJ}$G!"0l?M$G$N(B``quick hack''$B$N>l9g!"(B
foozy@708: $B9=@.4IM}%D!<%k$r;H$&%3%9%H$O%W%m%8%'%/%HA4BN$N%3%9%H$HF10l$NH&$G$9$+$i!"(B
foozy@708: $B9=@.4IM}$r;H$&M>CO$OKX$IL5$$$h$&$K8+$($k$+$b$7$l$^$;$s!#(B
foozy@708: $B$7$+$7!"$=$l$OK\Ev$G$7$g$+!)(B
foozy@708: 
foozy@708: Mercurial $B$O$3$l$i(B\emph{$BN>J}(B}$B$N5,LO$N3+H/$r>e<j$K%5%]!<%H$7$^$9!#(B
foozy@708: $B$o$:$+?tJ,$G4pK\$r=,F@$G$-!"(B
foozy@708: $B$=$NDc%*!<%P%X%C%I$N$*1"$G(B
foozy@708: $B:G$b>.$5$J%W%m%8%'%/%H$K$b4JC1$K9=@.4IM}$rE,MQ$G$-$^$9!#(B
foozy@708: 
foozy@708: $B9=@.4IM}%D!<%k$NC1=c$5$O!"(B
foozy@708: $BFq2r$J35G0$d!"(B
foozy@708: \emph{$BK\Ev$K(B}$B$d$m$&$H$7$F$$$k$3$H$H?4M}E*$K6%9g$9$k%3%^%s%INs$H$$$C$?$b$N$r!"(B
foozy@708: $BBgNL$K?H$KIU$1$kI,MW$,L5$$$3$H$r0UL#$7$^$9!#(B
foozy@708: $BF1;~$K!"(B
foozy@708: Mercurial $B$N9b@-G=$5$H(B P2P $BE*FC@-$O!"(B
foozy@708: $BBg$-$J%W%m%8%'%/%H$X$NMxMQ$X$H6l$bL5$/3HBg$G$-$^$9!#(B
foozy@708: 
foozy@708: $B1?1D$N2<<j$J%W%m%8%'%/%H$r5_$($k9=@.4IM}%D!<%k$O$"$j$^$;$s$,!"(B
foozy@708: $BNI$$%D!<%k$rA*Br$9$k$3$H$G!"(B
foozy@708: $B%W%m%8%'%/%H$G$N:n6H$K$*$1$k3j$i$+$5$,A4$/0c$C$F$-$^$9!#(B
foozy@708: 
foozy@708: \subsection{The many names of revision control}
foozy@708: 
foozy@708: $B9=@.4IM}$OB?MM$JNN0h$J$N$G!"(B
foozy@708: $B<B:]$K$OE}0l$5$l$?L>A0$dF,;z8l8l$,$"$j$^$;$s!#(B
foozy@708: 
foozy@708: $B$h$/L\$K$9$k0lHLE*$JL>>N$*$h$SN,>N$r0J2<$KNs5s$7$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item Revision control (RCS)
foozy@708: \item Software configuration management (SCM), or configuration management
foozy@708: \item Source code management
foozy@708: \item Source code control, or source control
foozy@708: \item Version control (VCS)
foozy@708: \end{itemize}
foozy@708: 
foozy@708: $B$3$l$i$NMQ8l$O<B:]$K$O$=$l$>$l0[$J$k0UL#$r;}$C$F$$$k!"(B
foozy@708: $B$H<gD%$9$k?M$b$$$^$9$,!"(B
foozy@708: $B<B:]$K$O$*8_$$$KHs>o$K=EJ#$7$?0UL#$r;}$C$F$$$k$N$G!"(B
foozy@708: $B$3$l$i$KBP$7$F8DJL$K$"$l$3$l8@$&$3$H$K$O;?F1$b$G$-$^$;$s$7!"(B
foozy@708: $BM-MQ@-$b$"$j$^$;$s(B\footnote{$BLuCm!'(B
foozy@708: $B:r:#$N%=%U%H%&%'%"3+H/$K$*$1$kMQK!$r4U$_$F!"(B
foozy@708: $B86J8$G(B ``revision control'' $B$H$J$C$F$$$k2U=j$O!"(B
foozy@708: $B0U?^E*$K(B``$B9=@.4IM}(B''(configuration management)$B$HLu$7$F$$$^$9!#(B}$B!#(B
foozy@708: 
foozy@708: \section{A short history of revision control}
foozy@708: 
foozy@708: $B:G$bM-L>$J@N$N9=@.4IM}%D!<%k$O!"(B
foozy@708: Bell Labs $B$N(B Marc Rochkind $B$,(B 1970 $BG/Be=iF,$K<BAu$7$?(B
foozy@708: SCCS $B!J(BSource Code Control System$B!K$G$9!#(B
foozy@708: SCCS $B$O8DJL$N%U%!%$%k$KBP$7$F5!G=$7!"(B
foozy@708: $B%W%m%8%'%/%H$K=>;v$9$kA4$F$N:n6H<T$O!"(B
foozy@708: $BC10l%7%9%F%`>e$N6&M-:n6HNN0h$X$N%"%/%;%98"$,I,MW$G$7$?!#(B
foozy@708: $B$"$k;~E@$G$N$"$k%U%!%$%k$NJQ99$O!"$?$@0l?M$N:n6H<T$N$_$,2DG=$G!"(B
foozy@708: $B%U%!%$%k$N%"%/%;%9$O%m%C%/$K$h$jD4Dd$5$l$F$$$^$7$?!#(B
foozy@708: $B%U%!%$%k$r%m%C%/$7$?$^$^3+J|$7K:$l$F$7$^$$!"(B
foozy@708: $B4IM}<T$NJd=uL5$7$K$OB>$N?M$,%U%!%$%k$rJQ99$G$-$J$/$7$F$7$^$&$3$H$O!"(B
foozy@708: $BNI$/$"$k$3$H$G$7$?!#(B
foozy@708: 
foozy@708: SCCS $B$N%U%j!<$JBeBX%D!<%k$H$7$F(B
foozy@708: 1980 $BG/Be=iF,$K(B Walter Tichy $B$,(B
foozy@708: RCS $B!J(BRevison Control System$B!K$H8F$V%W%m%0%i%`$r3+H/$7$^$7$?!#(B
foozy@708: SCCS $B$HF1MM!"(B
foozy@708: RCS $B$NMxMQ$K$O!"(B
foozy@708: $BC10l$N6&M-:n6HNN0h$G$N:n6H$H!"(B
foozy@708: $BJ#?t$N:n6H<T$,F1;~$K2~JQ$9$k$N$rKI$0$?$a$N%m%C%/$,I,MW$G$7$?!#(B
foozy@708: 
foozy@708: 1980 $BG/Be8e4|!"(BDick Grune $B$O(B RCS $B$rMQ$$$F!"(B
foozy@708: $BEv=i(B cmt $B$H8F$P$l$k%7%'%k%9%/%j%W%H72$r<BAu$7!"(B
foozy@708: $B8e$K$3$l$i$O(B CVS $B!J(BConcurrent Versions System$B!K$H2~L>$5$l$^$7$?!#(B
foozy@708: CVS $B$K$*$1$kBg$-$JJQ3W$O!"(B
foozy@708: $B3F3+H/<T$4$H$N:n6HNN0h$K$*$$$F!"(B
foozy@708: $B3+H/<T$,J?9T3n$D4vJ,FHN)$7$?:n6H$,$G$-$k$h$&$K$J$C$?$3$H$G$9!#(B
foozy@708: SCCS $B$d(B RCS $B$G$ONI$/$"$C$?!"(B
foozy@708: $B$$$D$G$bB>?M$NB-$rF'$s$G$7$^$&>u67$,!"(B
foozy@708: $B3+H/<T$4$H$N:n6HNN0h$NF3F~$K$h$C$FKI$,$l$k$h$&$K$J$j$^$7$?!#(B
foozy@708: $B3F3+H/<T$O!"(B
foozy@708: $B%W%m%8%'%/%H$K4X$9$kA4$F$N%U%!%$%k$NJ#@=$r;}$A!"(B
foozy@708: $B3F<+$NJ#@=$rFHN)$7$FJQ99$9$k$3$H$,$G$-$^$7$?!#(B
foozy@708: $BCf1{$N%j%]%8%H%j$X$NJQ99$N%3%_%C%H$K@hN)$C$F!"(B
foozy@708: $BJQ99FbMF$N%^!<%8$r$9$kI,MW$,$"$j$^$7$?!#(B
foozy@708: 
foozy@708: Brian Berliner $B$O(B
foozy@708: Grune $B$N%*%j%8%J%k%9%/%j%W%H$r85$K(B C $B$G=q$-D>$7!"(B
foozy@708: $B0JMh8=BeHG$N(B CVS $B$X$HH/E8$9$k%3!<%I$r(B 1989 $B$K%j%j!<%9$7$^$7$?!#(B
foozy@708: CVS $B$O$=$N8e!"(B
foozy@708: $B!V%/%i%$%"%s%H!&%5!<%P!W%"!<%-%F%/%A%c$NF3F~$K$h$j!"(B
foozy@708: $B%M%C%H%o!<%/@\B31[$7$NA`:n$r2DG=$H$9$k5!G=$r3MF@$7$^$7$?!#(B
foozy@708: CVS $B$N%"!<%-%F%/%A%c$OCf1{=8LsE*$J$b$N$G!"(B
foozy@708: $B%5!<%P$N$_$,%W%m%8%'%/%H$NMzNr$N$3$T!<$r;}$C$F$$$^$9!#(B
foozy@708: $B%/%i%$%"%s%HB&$N:n6HNN0h$O!"(B
foozy@708: $B%W%m%8%'%/%H%U%!%$%k$N:G?7HG$rJ#@=$7$?$b$N$H!"(B
foozy@708: $B%5!<%P$N>l=jEy$rCN$k$?$a$N$o$:$+$J%a%?%G!<%?$r;}$C$F$$$k$@$1$G$9!#(B
foozy@708: CVS $B$OHs>o$K@.8y$7$F$$$F!"(B
foozy@708: $B$*$=$i$/@$3&$G:G$b9-$/;HMQ$5$l$F$$$k9=@.4IM}%7%9%F%`$G$7$g$&!#(B
foozy@708: 
foozy@708: Sun Microsystems $B$O(B 1990 $BG/Be=iF,$K!"(B
foozy@708: TeamWare $B$H8F$P$l$kJ,;69=@.4IM}%7%9%F%`$N$O$7$j$H$J$k$b$N$r3+H/$7$^$7$?!#(B
foozy@708: TeamWare $B$K$*$1$k!J8D?M$N!K:n6HNN0h$O!"(B
foozy@708: $B%W%m%8%'%/%H$N40A4$JJ#@=$r3JG<$7$F$$$^$9!#(B
foozy@708: TeamWare $B$K$O!VCf1{%j%]%8%H%j!W$H$$$&35G0$,$"$j$^$;$s(B
foozy@708: $B!J(BCVS $B$OMzNr3JG<$r(B RCS $B$K0MB8$7$F$$$^$7$?$,!"(B
foozy@708: TeamWare $B$O(B SCCS $B$rMxMQ$7$F$$$^$7$?!K!#(B
foozy@708: 
foozy@708: 1990 $BG/Be$,?J$`$K$D$l$F!"(B
foozy@708: $BLdBj0U<1$+$i(B CVS $B$K4X$9$kLdBj$,B?$/82:_2=$7$F$-$^$7$?!#(B
foozy@708: $BNc$($P(B CVS $B$O!"(B
foozy@708: $BJ#?t$N%U%!%$%k$KBP$9$kF1;~99?7$r!"(B
foozy@708: $BO@M}E*$KIT2DJ,$JC10l$N:nMQ$H$7$F$^$H$a$kBX$o$j$K!"(B
foozy@708: $B%U%!%$%k$4$H$K8DJL$K5-O?$7$F$$$^$9!#(B
foozy@708: $B$^$?!"%U%!%$%k3,AX$r>e<j$/4IM}$G$-$J$$$?$a!"(B
foozy@708: $B%U%!%$%k$d%G%#%l%/%H%j$r2~L>$9$k$3$H$G!"(B
foozy@708: $BMF0W$K%j%]%8%H%j$r:.Mp$5$;$k$3$H$,$G$-$^$9!#(B
foozy@708: $B$J$*0-$$$3$H$K!"(B
foozy@708: CVS $B<+?H$N%=!<%9%3!<%I$OFI$`$K$bJ]<i$9$k$K$bFq2r$J$?$a!"(B
foozy@708: $B%"!<%-%F%/%A%c>e$NLdBjE@$r=$@5$9$k(B``$B6lDKEY(B''$B$OK!30$J$b$N$G$7$?!#(B
foozy@708: 
foozy@708: CVS $B$N3+H/$r9T$C$F$$$?(B
foozy@708: Jim Blandy $B$*$h$S(B Karl Fogel $B$NFs?M$O!"(B
foozy@708: $B$h$jNI$$%"!<%-%F%/%A%c$r;}$A!"(B
foozy@708: $B>03n$D%3!<%I$,e:No$J%D!<%k$G(B CVS $B$rCV$-49$($k%W%m%8%'%/%H$r!"(B
foozy@708: 2001 $BG/$K;O$a$^$7$?!#(B
foozy@708: $B7k2L$H$7$F@8$_=P$5$l$?(B Subversion $B$O!"(B
foozy@708: CVS $B$NCf1{=8Ls7?%/%i%$%"%s%H!?%5!<%P%b%G%k$+$i$ON%$l$J$+$C$?$b$N$N!"(B
foozy@708: $BJ#?t%U%!%$%k$NIT2DJ,%3%_%C%H$d!"(B
foozy@708: $B$h$jNI$$L>A06u4V$N4IM}!"(B
foozy@708: $B$*$h$S(B CVS $B$h$j$b35$MNI9%$J%D!<%k$H8@$&$KB-$k$=$NB>$NB?$/$N5!G=$r;}$C$F$$$^$9!#(B
foozy@708: $B=i2s$N%j%j!<%90JMh!"$=$N?M5$$OB.$d$+$K>e>:$7$F$$$^$9!#(B
foozy@708: 
foozy@708: $B$=$l$H35$MF1;~4|$K!"(B
foozy@708: Graydon Hoare $B$O(B Monotone 
foozy@708: $B$H8F$P$l$kLn?4E*$JJ,;69=@.4IM}%7%9%F%`$K<h$j3]$+$j;O$a$^$7$?!#(B
foozy@708: Monotone $B$O!"(B
foozy@708: CVS $B@_7W>e$NB?$/$NLdBj$K<h$jAH$_!"(BP2P $B%"!<%-%F%/%A%c$r;}$D0lJ}$G!"(B
foozy@708: $BB?$/$N3W?7E*$JE@$K$*$$$F=i4|$N!J$=$7$F$=$N8e$N!K(B
foozy@708: $B9=@.4IM}%D!<%k$+$iHt$SH4$1$F$$$^$9!#(B
foozy@708: Monotone $B$O!"(B
foozy@708: $B0E9f$GMQ$$$i$l$k%O%C%7%eCM$r<1JL;R$H$7$F;HMQ$7$F$*$j!"(B
foozy@708: $B0[$J$kM3Mh$N%3!<%I$K$H$C$FIT2D7g$J(B``$B?.Mj(B''$B$N35G0$r;}$C$F$$$^$9!#(B
foozy@708: 
foozy@708: Mercurial $B$O(B 2005 $BG/$KCB@8$7$^$7$?!#(B
foozy@708: $B@_7W>e$N4v$D$+$N8+CO$K$*$$$F(B Monotone $B$+$i1F6A$r<u$1$k0lJ}$G!"(B
foozy@708: Mercurial $B$OMxMQ$N4JJX@-!"@-G=$N9b$5!"(B
foozy@708: $B$*$h$SBg5,LO%W%m%8%'%/%H$X$NE,MQ@-$K<g4c$rCV$$$F$$$^$9!#(B
foozy@708: 
foozy@708: \section{Trends in revision control}
foozy@708: 
foozy@708: $B2a5n#4#0G/$KEO$k9=@.4IM}%D!<%k$N3+H/$HMxMQ$K$*$1$kJ6$l$bL5$$798~$H$7$F!"(B
foozy@708: $B9=@.4IM}%D!<%k$NMxMQ<T$O!"(B
foozy@708: $BMxMQ$7$F$$$k%D!<%k$N5!G=$K@:DL$9$k$H6&$K!"(B
foozy@708: $B%D!<%k$N@)Ls$K$h$C$FM^@)$5$l$k$h$&$G$9!#(BXXXXXX
foozy@708: There has been an unmistakable trend in the development and use of
foozy@708: revision control tools over the past four decades, as people have
foozy@708: become familiar with the capabilities of their tools and constrained
foozy@708: by their limitations.
foozy@708: 
foozy@708: $B:G=i$N@$Be$O!"(B
foozy@708: $BC10l%U%!%$%k$r3F<+$N%3%s%T%e!<%?$G4IM}$9$k$3$H$+$i;O$^$j$^$7$?!#(B
foozy@708: $B$3$N@$Be$N%D!<%k$O!"(B
foozy@708: $B<jF0$K$h$k>lEv$?$j$J9=@.4IM}$KHf$Y$l$PBg$-$JA0?J$G$O$"$j$^$7$?$,!"(B
foozy@708: $BGSB>$K$h$kA`:n%b%G%k$H!"(B
foozy@708: $BC10l%3%s%T%e!<%?>e$G$NMxMQ$rA0Ds$H$7$?@_7W$N$?$a!"(B
foozy@708: $B>.$5$/6[L)$J%A!<%`$G$NMxMQ$K8BDj$5$l$F$$$^$7$?!#(B
foozy@708: 
foozy@708: $BBhFs@$Be$O!"(B
foozy@708: $B%M%C%H%o!<%/<gBN$N%"!<%-%F%/%A%c$X$N0\9T$H!"(B
foozy@708: $B%W%m%8%'%/%HA4BN$N0l3g4IM}$K$h$C$F!"(B
foozy@708: $B$3$l$i$N@)Ls$r4KOB$7$^$7$?!#(B
foozy@708: $B$7$+$7!"%W%m%8%'%/%H5,LO$,Bg$-$/$J$l$P$J$k$[$I!"?7$?$JLdBj$,H/@8$7$^$7$?!#(B
foozy@708: $B%/%i%$%"%s%H$O%5!<%P$HIQHK$KO"7H$9$kI,MW$,$"$k$?$a!"(B
foozy@708: $B%5!<%P$OBg5,LO%W%m%8%'%/%H$X$NE,MQ$,LdBj$K$J$j$^$7$?!#(B
foozy@708: $B?.Mj@-$NDc$$%M%C%H%o!<%/@\B3$G$O!"(B
foozy@708: $B1s3V%f!<%6$,%5!<%P$HA4$/O"7H$,$G$-$J$$$3$H$b$"$j$^$7$?!#(B
foozy@708: $B%*!<%W%s%=!<%9%W%m%8%'%/%H$,F?L>$NFI$_9~$_@lMQ%"%/%;%9$r3+J|$9$k$K$D$l!"(B
foozy@708: $B%j%]%8%H%j$X$N%3%_%C%H8"8B$r;}$?$J$$?M!9$O!"(B
foozy@708: $B9=@.4IM}%D!<%k$NDL>o$NJ}K!$G$O<+J,$?$A$NJQ99$,5-O?$G$-$:!"(B
foozy@708: $B$=$l8N$K%W%m%8%'%/%H$KBP$7$FF/$-$+$1$k$3$H$,$G$-$J$$$3$H$K5$IU$-;O$a$^$7$?!#(B
foozy@708: 
foozy@708: $B8=@$Be$N9=@.4IM}%D!<%k$O!";v<B>e(B P2P $B$G$9!#(B
foozy@708: $B$3$l$i$O!"(B
foozy@708: $BC10l$NCf1{%5!<%P$KBP$9$k0MB8$r;}$?$:!"(B
foozy@708: $B$=$N$?$a9=@.4IM}%G!<%?$rI,MW$J>l=j$KJ,;6$9$k$3$H$,2DG=$G$9!#(B
foozy@708: $B%$%s%?!<%M%C%H$r2p$7$?O"7H$K$*$1$k2]Bj$O!"(B
foozy@708: $B5;=QE*$J@)Ls$K4X$9$k$b$N$+$i!"(B
foozy@708: $BA*Br(B(of what ?)$B$H9g0U(B(of what)$B7A@.$NLdBj$X$H0\9T$7$D$D$"$j$^$9(B XXXX$B!#(B
foozy@708: Collaboration over the Internet
foozy@708: has moved from constrained by technology to a matter of choice and
foozy@708: consensus.
foozy@708: $B:G?7$N%D!<%k$O!"(B
foozy@708: $B%*%U%i%$%s>u67$G$bL5@)8B$KFHN)$7$FA`:n$G$-!"(B
foozy@708: $B%M%C%H%o!<%/@\B3$OB>$N%j%]%8%H%j$H$NF14|$K$N$_I,MW$H$5$l$^$9!#(B
foozy@708: 
foozy@708: \section{A few of the advantages of distributed revision control}
foozy@708: 
foozy@708: $BA0@$Be$X$NBP93GO$H$7$F!"(B
foozy@708: $B$3$3?tG/$N4V$KJ,;69=@.4IM}%D!<%k$,7xO43n$DJXMx$K$J$C$F$-$F$O$$$k$b$N$N!"(B
foozy@708: $B8E$$%D!<%k$rMxMQ$7$F$$$k?M!9$O!"(B
foozy@708: $BI,$:$7$bJ,;69=@.4IM}%D!<%k$ND9=j$K5$IU$$$F$$$k$o$1$G$O$"$j$^$;$s!#(B
foozy@708: $BCf1{=8LsE*7?!J%D!<%k!K$HHf3S$7$F!"(B
foozy@708: $BJ,;67?!J%D!<%k!K$NM%$l$F$$$kE@$,4v$D$+$"$j$^$9!#(B
foozy@708: 
foozy@708: $B3+H/<T8D?M$K$H$C$F$O!"(B
foozy@708: $BCf1{=8Ls7?$HHf3S$7$?>l9g!"(B
foozy@708: $B35$M$$$D$G$bJ,;67?$NJ}$,9bB.$G$9!#(B
foozy@708: $B$3$l$O!"(B
foozy@708: $BCf1{=8Ls7?$G$OKX$I$N%a%?%G!<%?$,Cf1{%5!<%P>e$K$7$+B8:_$7$J$$$?$a!"(B
foozy@708: $BB?$/$NDj7?=hM}$NEY$K%M%C%H%o!<%/1[$7$K%5!<%P$H$NDL?.$,I,MW!"(B
foozy@708: $B$H$$$&C1=c$JM}M3$N$?$a$G$9!#(B
foozy@708: $BJ,;67?$N>l9g$O!"A4$F$N%a%?%G!<%?$r<j85$K3JG<$7$F$$$^$9!#(B
foozy@708: $BB>$NA4$F$,F1$8$@$H$7$F$b!"(B
foozy@708: $B%M%C%H%o!<%/1[$7$NDL?.$OCf1{=8Ls7?$K$H$C$F$N%*!<%P%X%C%I$H$J$j$^$9!#(B
foozy@708: $B9=@.4IM}%D!<%k$H$NBPOC$KB?$/$N;~4V$rHq$d$=$&$H8@$&$N$G$9$+$i!"(B
foozy@708: $B%F%-%Q%-$HF0$/1~Ez@-$NNI$$%D!<%k$N2ACM$r7Z;k$7$F$O$$$1$^$;$s!#(B
foozy@708: 
foozy@708: $B7+$jJV$7$K$J$j$^$9$,!"(B
foozy@708: $BJ,;67?$O%a%?%G!<%?$r2?2U=j$K$bJ#@=$G$-$k$N$G!"(B
foozy@708: $B%5!<%P4D6-$N5$$^$0$l(B\footnote{$BLuCm(B: 
foozy@708: $BFCDj$N%5!<%P$NF0:nITNIEy(B}$B$O5$$K$J$j$^$;$s!#(B
foozy@708: $BCf1{=8Ls7?$G%5!<%P$,2P$rJ.$$$?>l9g$K$O!"(B
foozy@708: $B%P%C%/%"%C%W%a%G%#%"$N?.Mj@-$H!"(B
foozy@708: $B:G8e$N%P%C%/%"%C%W$,:G6a$N$b$N$G$"$k$3$H$r5'$k$K0c$$$"$j$^$;$s!#(B
foozy@708: $BJ,;67?$N>l9g!"(B
foozy@708: $B3F3+H/<T$N%3%s%T%e!<%?>e$KL5?t$N%P%C%/%"%C%W$,B8:_$9$k$3$H$K$J$j$^$9!#(B
foozy@708: 
foozy@708: $BJ,;67?$OCf1{=8Ls7?$N>l9g$h$j$b!"(B
foozy@708: $B%M%C%H%o!<%/$N?.Mj@-$K$h$k1F6A$r<u$1$^$;$s!#(B
foozy@708: $B$=$l$I$3$m$+!"(B
foozy@708: $BHs>o$K8BDjE*$J4v$D$+$N%3%^%s%I$r=|$1$P!"(B
foozy@708: $BCf1{=8Ls7?$G$O%M%C%H%o!<%/@\B3H4$-$K$O2?$b$G$-$^$;$s!#(B
foozy@708: $BJ,;67?$N>l9g!"(B
foozy@708: $B:n6HCf$K%M%C%H%o!<%/@\B3$,@Z$l$F$b!"(B
foozy@708: $B$=$N;v$K5$IU$+$J$$$+$b$7$l$^$;$s!#(B
foozy@708: $BB>$N%3%s%T%e!<%?>e$N%j%]%8%H%j$H$NO"7H$@$1$O$G$-$J$/$J$j$^$9$,!"(B
foozy@708: $B<j85$N%j%]%8%H%j$H$NO"7H$HHf$Y$l$P!"(B
foozy@708: $B$=$N$h$&$JO"7H$,I,MW$J;vBV$O$o$:$+$J$b$N$G$9!#(B
foozy@708: $BJ,;6$7$F$$$k$J6&F1:n6H%A!<%`$N>l9g$K$O!"(B
foozy@708: $B$3$l$O=EMW$G$9!#(B
foozy@708: 
foozy@708: \subsection{Advantages for open source projects}
foozy@708: 
foozy@708: $B%=!<%9$r%O%C%-%s%0$7$F$_$h$&$H;W$C$?%*!<%W%s%=!<%9$N%W%m%8%'%/%H$,!"(B
foozy@708: $BJ,;69=@.4IM}%D!<%k$r;HMQ$7$F$$$?>l9g!"(B
foozy@708: $B<+?H$r%W%m%8%'%/%H$N(B``$BCf3K(B''$B$H$_$J$9?MC#$HD>$A$KBPEy$K$J$l$^$9!#(B
foozy@708: $BH`$i$,%j%]%8%H%j$r8x3+$7$F$$$l$P!"(B
foozy@708: $BFbIt$N?MC#$HF1$8%D!<%k!&F1$8<j=g$G!"(B
foozy@708: $B%W%m%8%'%/%H$NMzNr$N%3%T!<$d!"JQ99$N<B;\!":n6H$N5-O?$H$$$C$?$3$H$r!"(B
foozy@708: $B$9$0$K$G$b9T$&$3$H$,$G$-$^$9!#(B
foozy@708: $BCf1{=8Ls7?$N>l9g$O$=$l$H$OBP>HE*$K!"(B
foozy@708: $BCf1{$N%5!<%P$KBP$9$kJQ99%3%_%C%H$N8"8B$rM?$($i$l$J$$8B$j!"(B
foozy@708: ``$BFI$_9~$_@lMQ(B''$B%b!<%I$G$7$+;H$&$3$H$,$G$-$^$;$s!#(B
foozy@708: $B%3%_%C%H8"8B$,IUM?$5$l$k$^$G$OJQ99$N5-O?$O$G$-$:!"(B
foozy@708: $BCf1{$N%j%]%8%H%j$H$NF14|$N:]$K$O>o$K<j85$G$NJQ99$,GKB;$9$k4m81$rJz$($F$$$^$9!#(B
foozy@708: 
foozy@708: \subsubsection{The forking non-problem}
foozy@708: 
foozy@708: $BJ,;69=@.4IM}%D!<%k$O!"(B
foozy@708: $B%W%m%8%'%/%H$r(B``$BJ,Nv(B''$B$5$;0W$/$7$F$7$^$&$?$a!"(B
foozy@708: $B%*!<%W%s%=!<%9%W%m%8%'%/%H$K$H$C$F$"$k<o$N4m81MW0x$H$J$k!"(B
foozy@708: $B$H8@$o$l$F$-$^$7$?!#(B
foozy@708: $BJ,Nv$O!"(B
foozy@708: $B$3$l0J>e0l=o$K3+H/$r7QB3$G$-$J$$$H7kO@IU$1$k860x$H$J$k$h$&$J!"(B
foozy@708: $B3+H/%0%k!<%W4V$G$N0U8+$dFC@-$NAj0c$N$,$"$k>l9g$KH/@8$7$^$9!#(B
foozy@708: $BN>?X1D$O!"(B
foozy@708: $B%W%m%8%'%/%H$N%=!<%9%3!<%I$N35$M40A4$J%3%T!<$r;}$C$F!"(B
foozy@708: $B$*8_$$$NJ}8~$X$HJ,$+$l$F$f$-$^$9!#(B
foozy@708: 
foozy@708: $B;~$K$O!"J,Nv$7$?3F?X1D$,!"(B
foozy@708: $B$*8_$$$NAj0c$K@^$j9g$$$rIU$1$k7hDj$r$9$k$3$H$,$"$j$^$9!#(B
foozy@708: $BCf1{=8Ls7?$N9=@.4IM}%7%9%F%`$G$O!"(B
foozy@708: $B@^$j9g$$$rIU$1$k$?$a$N(B\emph{$B5;=QE*$J(B}$B=hM}$,6l$7$/!"(B
foozy@708: $BBgItJ,$O<jF0$G<B;\$7$J$1$l$P$J$j$^$;$s!#(B
foozy@708: $BC/$NJQ99MzNr$,(B``$B@8$-;D$k(B''$B$N$+$r7hDj$7$?>e$G!"(B
foozy@708: $B2?$H$+$7$FB>$N%A!<%`$NJQ99$r%=!<%9%D%j!<$K0\?"$7$J$1$l$P$J$j$^$;$s!#(B
foozy@708: $B$3$N:n6H$ODL>o!"(B
foozy@708: $BB>J}$NMzNr>pJs$N0lIt$J$$$7A4It$r<:$&$3$H$K$J$j$^$9!#(B
foozy@708: 
foozy@708: $BJ,;67?$K$H$C$F$O!"(B
foozy@708: $BJ,Nv$3$=$,%W%m%8%'%/%H$rH/E8$5$;$k(B\emph{$BM#0l$N(B}$BJ}K!$J$N$G$9!#(B
foozy@708: $B8D!9$NJQ99$O!"A4$F@x:_E*$JJ,NvE@$J$N$G$9!#(B
foozy@708: $BJ,Nv$O>o$KH/@8$7$F$$$kA4$/4pK\E*$J;v>]$J$N$G!"(B
foozy@708: $BJ,;69=@.4IM}$O<B:]$KJ,Nv$r>e<j$/(B\emph{$B%^!<%8(B}$B$G$-$J$1$l$P$J$i$J$$!"(B
foozy@708: $B$H$$$&E@$K$3$N9M$(J}$N6/$_$,$"$j$^$9!#(B
foozy@708: 
foozy@708: $BA4$F$N?M$NA4$F$N:n6H$,!"(B
foozy@708: $B>o$KJ,Nv$H%^!<%8$N4QE@$+$iAH$_N)$F$i$l$?>l9g!"(B
foozy@708: $B%*!<%W%s%=!<%9@$3&$,(B``$BJ,Nv(B''$B$H$7$F8@5Z$9$k$b$N$O!"(B
foozy@708: \emph{$B=c?h$K(B}$B<R2qE*$JLdBj$H$J$k$G$7$g$&!#(B
foozy@708: $B$I$A$i$+$H$$$($P!"(B
foozy@708: $BJ,;67?$OJ,Nv$N2DG=@-$r(B\emph{$BDc2<(B}$B$5$;$F$$$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $BCf1{=8Ls7?$,>7$$$F$7$^$&(B``$BFbIt(B''$B!J%3%_%C%H8"8B$r;}$D?M!9!K(B
foozy@708:   $B$H(B``$B30It(B''$B!J;}$?$6$k?M!9!K$H$$$C$?<R2qE*6hJ,$rL5$/$7$^$9!#(B
foozy@708: 
foozy@708: \item $B9=@.4IM}%=%U%H%&%'%"$N;kE@$G$O!"C1$J$k%^!<%8$K2a$.$^$;$s$N$G!"(B
foozy@708:   $B<R2qE*J,Nv$N8e$NOB2r$rMF0W$K$7$^$9!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: $B%W%m%8%'%/%HA4HL$X$N6[L)$JE}<#$N0];}$,Cf1{=8Ls7?%D!<%k$K$h$C$FF@$i$l$k!"(B
foozy@708: $B$H?.$8$F$$$k$?$a$K!"J,;67?$KDq93$9$k?M$b$$$^$9!#(B
foozy@708: $B$7$+$7!"$=$&$$$C$?4|BT$N85$G(B
foozy@708: CVS $B$J$$$7(B Subversion $B$K$h$k%j%]%8%H%j$r8x3+$7$F$b!"(B
foozy@708: $BL5?t$KB8:_$9$k%D!<%k$K$h$C$F!"(B
foozy@708: $B%W%m%8%'%/%HA4BN$NMzNr$r!JNc$(CY$$$H$O8@$(!K<h$j=P$7!"(B
foozy@708: $B$"$J$?$N@)8f$N5Z$P$J$$>l=j$G:F9=C[$9$k$3$H$,$G$-$F$7$^$$$^$9!#(B
foozy@708: ``$B%W%m%8%'%/%HA4HL$X$N6[L)$JE}<#$N0];}(B''$B$,:x3P$G$"$k0lJ}!"(B
foozy@708: So while your control in this case is illusory, you are
foozy@708: foregoing the ability to fluidly collaborate with whatever people feel
foozy@708: compelled to mirror and fork your history.
foozy@708: XXXXXX
foozy@708: 
foozy@708: \subsection{Advantages for commercial projects}
foozy@708: 
foozy@708: $BB?$/$N>&6H%W%m%8%'%/%H$O!"(B
foozy@708: $B@$3&Cf$K;6$i$P$C$?%A!<%`$,@A$1Ii$C$F$$$^$9!#(B
foozy@708: $BCf1{$N%5!<%P$+$i1s$/N%$l$?%a%s%P!<$O!"(B
foozy@708: $B%3%^%s%I<B9T$NCY$5$d!"(B
foozy@708: $B$*$=$i$/KX$I?.Mj@-$NL5$$%5!<%P$H$N@\B3$rL\$K$9$k$3$H$G$7$g$&!#(B
foozy@708: $B>&6HE*$J9=@.4IM}%7%9%F%`$O!"(B
foozy@708: $B1s3V%5%$%HJ#@=(B\footnote{$BLuCm!'(B
foozy@708: ``$BJ]<i$,BgJQ(B''$B$H8@$C$F$$$k$3$H$+$i!"(B
foozy@708: $B$3$N>l9g$NJ#@=$O(B``$B%5!<%P$NJ#@=(B''$B$r;X$7$F$$$k$N$+$J!)(B
foozy@708: }$B$NDI2C5!G=$K$h$k$3$l$i$NLdBj$r2r7h$7$h$&$H$7$F$$$^$9$,!"(B
foozy@708: $BDL>o!"$3$&$$$C$?5!G=$O9b2A$GJ]<i$,BgJQ$G$9!#(B
foozy@708: $BJ,;67?$N>l9g$O!"(B
foozy@708: $B$=$b$=$b$3$&$$$C$?LdBj$GG:$`I,MW$,$"$j$^$;$s!#(B
foozy@708: $B99$K!"Nc$($P%5%$%H$4$H$K0lBf$:$D$H$$$&1vG_$G!"(B
foozy@708: $B?.Mj$G$-$k%5!<%P$rJ#?tN)$A>e$2$k$3$H$b4JC1$G$9$N$G!"(B
foozy@708: $B9b2A$G5wN%$N$"$k%M%C%H%o!<%/7PO)1[$7$N%j%]%8%H%j4V$G!"(B
foozy@708: $BM>7W$JDL?.$r$9$kI,MW$O$"$j$^$;$s!#(B
foozy@708: 
foozy@708: $BCf1{=8Ls7?$N9=@.4IM}%7%9%F%`$O!"(B
foozy@708: $BAjBPE*$K%9%1!<%i%S%j%F%#$,Dc$$798~$K$"$j$^$9!#(B
foozy@708: $B9b2A$JCf1{=8Ls%7%9%F%`$@$+$i$H$$$C$F!"(B
foozy@708: $BJ?9TMxMQ$9$k?t%@!<%9$N%f!<%6$NIi2Y$K$h$C$F%@%&%s$7$F$7$^$&$3$H$O!"(B
foozy@708: $BM-$jF@$J$$$3$H$G$O$"$j$^$;$s!#(B
foozy@708: $B7+$jJV$7$K$J$j$^$9$,!"(B
foozy@708: $B9bIi2Y$K$*$1$k%@%&%s$KBP$9$kE57?E*$JBP1~$O!"(B
foozy@708: $B9b2A$G8E=-$$J#@=5!G=$NMxMQ$G$9!#(B
foozy@708: $BJ,;67?%D!<%k$r;HMQ$9$k>l9g!"Cf1{%5!<%P(B--
foozy@708: $B2>$K;}$C$F$$$k$H$7$F$b0lBf$@$1$G$7$g$&$,(B
foozy@708: --$B$K$*$1$kIi2Y$OHs>o$KDc$$$N$G!"(B
foozy@708: $B$b$C$HBg?M?t$N%A!<%`$NMW5a$rC10l$N0B2A$J%5!<%P$G;+$/$3$H$,$G$-$^$9$7!"(B
foozy@708: $BIi2YJ,;6$OC1$K%9%/%j%W%H:n@.$NLdBj$H$J$j$^$9!#(B
foozy@708: 
foozy@708: $B8\5R$N85$K=P$FLdBjBP1~$9$k%a%s%P!<$,$$$k>l9g!"(B
foozy@708: $BJ,;69=@.4IM}$OM-1W$G$9!#(B
foozy@708: $BB>$N%S%k%I$+$i$O3VN%$5$l$?>uBV$GFCJL$J%S%k%I$N$?$a$KJ#?t$N=$@5$r;n$7$?$j!"(B
foozy@708: $B>c32$dB`9T$NMW0x$r%=!<%9$N=$@5MzNr$+$i8z2LE*$K8!:w$7$?$j$H$$$C$?$3$H$r!"(B
foozy@708: $B5R@h4D6-$G<+<R$N%M%C%H%o!<%/$K@\B3$9$k$3$HL5$7$K9T$&$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \section{Why choose Mercurial?}
foozy@708: 
foozy@708: Mercurial $B$O!"(B
foozy@708: $B$H$j$o$19=@.4IM}%7%9%F%`$H$7$FNI$$A*Br$r$7$?$H8@$($k!"(B
foozy@708: $BN`$r8+$J$$FCD'$r;}$C$F$$$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $B=,F@!&MxMQ$,MF0W(B
foozy@708: \item $B7ZNL(B
foozy@708: \item $B5,LO3HBg$KBQ$(F@$k(B
foozy@708: \item $B2~B$$,MF0W(B
foozy@708: \end{itemize}
foozy@708: 
foozy@708: $B9=@.4IM}%7%9%F%`$K47$l?F$7$s$G$$$k$N$G$"$l$P!"(B
foozy@708: Mercurial $B$r;H$($k$h$&$K$J$k$N$K#5J,$b3]$+$i$J$$H&$G$9!#(B
foozy@708: $B$=$&$G$J$$>l9g$G$b!"(B
foozy@708: $B99$K?tJ,0J>e$O3]$+$i$J$$$G$7$g$&!#(B
foozy@708: Mercurial $B$N%3%^%s%I$d5!G=72$O!"(B
foozy@708: $BA4BNE*$KE}0l@-$H0l4S@-$,J]$?$l$F$$$^$9$N$G!"(B
foozy@708: $BBt;3$NNc30;v9`$G$O$J$/!"(B
foozy@708: $B>/?t$N0lHLE*$JJ}K!$@$1$r3P$($F$*$1$PNI$$$N$G$9!#(B
foozy@708: 
foozy@708: $B>.$5$J%W%m%8%'%/%H$N>l9g!"(B
foozy@708: $B$9$0$K$G$b(B Mercurial $B$r;H$$;O$a$k$3$H$,$G$-$k$G$7$g$&!#(B
foozy@708: $B?7$?$JJQ99$d%V%i%s%A$r@8@.$7!"(B
foozy@708: $BJQ99$r!JF10l%[%9%H$J$$$7%M%C%H%o!<%/1[$7$G!K;}$AJb$$$?$j!"(B
foozy@708: $BMzNr;2>H$d>uBV3NG'$H$$$C$?A4$F$NA`:n$,9bB.$G$9!#(B
foozy@708: $B85MhHs>o$K9bB.$JA`:n$K2C$($F!"(B
foozy@708: $BL\$K8+$($k%*!<%P!<%X%C%I$,>/$J$$$?$a$K!"(B
foozy@708: Mercurial $B$O=SIR$5$rJ]$A!"(B
foozy@708: $BMxMQ<T$N:n6H$rK8$2$k$3$H$rHr$1$k$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: Mercurial $B$NM-MQ@-$O>.$5$J%W%m%8%'%/%H$K8BDj$5$l$^$;$s!#(B
foozy@708: $B?tI4$+$i?t@i$N%a%s%P$r;}$A!"(B
foozy@708: $B%=!<%9%3!<%I$,?tK|%U%!%$%k!&(B
foozy@708: $B?tI4%a%,%P%$%H$K5Z$V%W%m%8%'%/%H$G$b:NMQ$5$l$F$$$^$9!#(B
foozy@708: 
foozy@708: Mercurial $B$N4pK\5!G=$KK~B-$G$-$J$$>l9g$G$b!"(B
foozy@708: $BMF0W$K3HD%$9$k$3$H$,$G$-$^$9!#(B
foozy@708: Mercurial $B$O=hM}$N%9%/%j%W%H2=$KE,$7$F$*$j!"(B
foozy@708: Python $B$r;H$C$Fe:No$K<BAu$5$l$F$$$k$3$H$,!"(B
foozy@708: $B!V%$%/%9%F%s%7%g%s!W$H$$$&7A<0$G$N5!G=DI2C$rMF0W$K$7$F$$$^$9!#(B
foozy@708: $B!V>c32FCDj$NJd=u!W$+$i!V@-G=8~>e!W$H$$$C$?9-$$HO0O$G!"(B
foozy@708: $BI>H=$NNI$$M-MQ$JB?$/$N%$%/%9%F%s%7%g%s$,4{$KDs6!$5$l$F$$$^$9!#(B
foozy@708: 
foozy@708: \section{Mercurial compared with other tools}
foozy@708: 
foozy@708: $B$3$N@h$rFI$`A0$K!"(B
foozy@708: $BCx<T<+?H$N7P83!?4X?4!?!J$"$($F8@$$$^$9$,!KJP8+$H$$$C$?$b$N$,!"(B
foozy@708: $BK\@a$KH?1G$;$6$k$rF@$J$$E@$r$4M}2r$/$@$5$$!#(B
foozy@708: $BCx<T$O!"0J2<$K$"$2$k9=@.4IM}%D!<%k$N$=$l$>$l$r!"(B
foozy@708: $B:GD9$G?tG/DxEY;HMQ$7$?7P83$,$"$j$^$9!#(B
foozy@708: 
foozy@708: \subsection{Subversion}
foozy@708: 
foozy@708: Subversion $B$O(B CVS $B$NCV$-49$($rL\;X$7$F3+H/$5$l$?!"(B
foozy@708: $BI>H=$N$h$$9=@.4IM}%D!<%k$G$9!#(B
foozy@708: Subversion $B$OCf1{=8Ls7?$N!V%/%i%$%"%s%H!?%5!<%P!W(B
foozy@708: $B%"!<%-%F%/%A%c$r;}$C$F$$$^$9!#(B
foozy@708: 
foozy@708: Subversion $B$H(B Mercurial $B$O!"(B
foozy@708: $BF1$8:nMQ$r;}$D;w$?$h$&$JL>A0$N%3%^%s%I$r;}$C$F$$$k$N$G!"(B
foozy@708: $B0lJ}$KFk@w$_$N$"$k%f!<%6$OB>J}$NMQK!$rMF0W$K=,F@$G$-$^$9!#(B
foozy@708: $B$3$l$i$ON>J}$H$bA4$F$NCxL>$J(B OS $B>e$GMxMQ2DG=$G$9!#(B
foozy@708: 
foozy@708: Subversion $B$OMzNr$r0U<1$7$?%^!<%85!G=$r;}$C$F$$$J$$$N$G!"(B
foozy@708: $B$I$N%j%S%8%g%s$N%V%i%s%A4V$G%^!<%8$9$Y$-$+$r!"(B
foozy@708: $B%f!<%6<+?H$,87L)$K;XDj$9$k$3$H$r6/@)$7$^$9!#(B
foozy@708: $B$3$N;XDj$,$G$-$J$+$C$?$j4V0c$($?$j$7$?>l9g!"(B
foozy@708: $B%^!<%8$K$*$1$kITI,MW$J>WFM$r<jF0$G2r7h$9$k1)L\$K$J$j$^$9!#(B
foozy@708: 
foozy@708: $BCx<T$,%Y%s%A%^!<%/7WB,$7$?8B$j$G$O!"(B
foozy@708: Subversion $B$NA4$F$N9=@.4IM}A`:n$K$*$$$F!"(B
foozy@708: Mercurial $B$O@-G=$NLL$GAjEv$KM%0L$K$$$^$9!#(B
foozy@708: $BI.<T$NHf3S$K$h$k$H!"(B
foozy@708: Subversion $B$N(B 1.4.3~$BHG$K$*$1$k(B
foozy@708: \emph{ra\_local} $B%U%!%$%k3JG<(B
foozy@708: $B!JMxMQ2DG=$J:GB.$N%"%/%;%95!G=!K$HHf3S$7$?>l9g!"(B
foozy@708: $B#2G\$+$i#6G\DxEY$NM%0L@-$,$"$j$^$7$?!#(B
foozy@708: $B%M%C%H%o!<%/1[$7$N%j%]%8%H%j$rI,MW$H$9$k!"(B
foozy@708: $B$h$j8=<BE*$JG[CV$N>l9g!"(B
foozy@708: Subversion $B$OAjEv$KITMx$J>u67$K$J$k$G$7$g$&!#(B
foozy@708: $BB?$/$N(B Subversion $B%3%^%s%I$O%5!<%P$H$NO"7H$,I,MW$J>e$K!"(B
foozy@708: Subversion $B$OM-MQ$JJ#@=5!G=$r;}$C$F$$$J$$$?$a!"(B
foozy@708: $B>/!9Bg$-$a$N%W%m%8%'%/%H$N>l9g!"(B
foozy@708: $B%5!<%P$N@-G=$,%\%H%k%M%C%/$H$J$k$G$7$g$&!#(B
foozy@708: 
foozy@708: $B$=$l$K2C$($F!"(B
foozy@708: $B%U%!%$%k$N99?7$N8!:w!J(B\texttt{status}$B!K(B
foozy@708: $B$d8=9THG$H$N:9J,I=<(!J(B\texttt{diff}$B!K$H$$$C$?!"(B
foozy@708: $B4v$D$+$N6&DLA`:n$K$*$1$k%M%C%H%o!<%/=hM}$r2sHr$9$k$?$a$K!"(B
foozy@708: Subversion $B$OAjEv$J3JG<%*!<%P%X%C%I$rJz$(9~$s$G$$$^$9!#(B
foozy@708: Mercurial $B$N%j%]%8%H%j$,%W%m%8%'%/%H$N40A4$JMzNr$rJ];}$7$F$$$k$K$b4X$o$i$:!"(B
foozy@708: Subversion $B$,Jz$(9~$`:n6H%3%T!<$O!"(B
foozy@708: Mercurial $B%j%]%8%H%j$H:n6HNN0h%G%#%l%/%H%j$N%5%$%:$H!"(B
foozy@708: $B7k2L$H$7$F$*$*$h$=F1%5%$%:$+!"$"$k$$$O$=$l0J>e$K$J$k$3$H$,B?$$$G$9!#(B
foozy@708: 
foozy@708: $B9=@.4IM}4XO"$N%5!<%I%Q!<%F%#%D!<%k$K4X$7$F$O!"(B
foozy@708: $B$=$N:9$O=y!9$KKd$^$C$F$O$$$k$b$N!"(B
foozy@708: Mercurial $B$HHf3S$7$F!"(B
foozy@708: $B8=;~E@$G$O(B Subversion $B$NJ}$,$h$jB?$/$N%5%]!<%H$r<u$1$k$3$H$,$G$-$^$9!#(B
foozy@708: $B$^$?!"(BMercurial $B$HF1MM$K(B
foozy@708: Subversion $B$OAG@2$i$7$$%f!<%6%^%K%e%"%k$,$"$j$^$9!#(B
foozy@708: 
foozy@708: Subversion $B%j%]%8%H%j$+$i(B Mercurial $B%j%]%8%H%j$X$N!"(B
foozy@708: $B@53N$G40A4$JJQ99MzNr$N<h$j9~$_$r9T$&%D!<%k$,4v$D$b$"$j$^$9$N$G!"(B
foozy@708: $B8E$$%D!<%k$+$i$N0\9T$OHf3SE*MF0W$G$9!#(B
foozy@708: 
foozy@708: \subsection{Git}
foozy@708: 
foozy@708: git $B$O!"(B
foozy@708: Linux $B%+!<%M%k%=!<%9%D%j!<$r4IM}$9$k$?$a$K3+H/$5$l$?J,;69=@.4IM}%D!<%k$G$9!#(B
foozy@708: Mercurial $B$HF1MM$K!"(B
foozy@708: $B$=$N=i4|$N@_7W$O(B Monotone $B$+$i1F6A$r<u$1$F$$$^$9!#(B
foozy@708: 
foozy@708: git $B$O05E]E*$J$^$G$N%3%^%s%I72$r;}$C$F$*$j!"(B
foozy@708: 1.5.0~$BHG$K$*$$$F$O(B 139~$B8D$NFHN)$7$?%3%^%s%I$,$"$j$^$9!#(B
foozy@708: $B$3$l$i$O=,F@$,Fq$7$$$H$NI>H=$G$9!#(B
foozy@708: $B%f!<%6%^%K%e%"%k$,B8:_$;$:!"(B
foozy@708: $B8DJL$N%3%^%s%I$K4X$9$kJ8=q$,$"$k$N$_$G$9!#(B
foozy@708: 
foozy@708: $B@-G=$NLL$G$O(B git $B$OHs>o$K9bB.$G$9!#(B
foozy@708: $B>/$J$/$H$b(B Linux $B$K$*$$$F$O!"(B
foozy@708: Mercurial $B$h$j$b(B git $B$NJ}$,Aa$$%1!<%9$,4v$D$+$"$j$^$9!#(B
foozy@708: $B$7$+$7$J$,$iK\=q$N<9I.;~E@$G$O!"(B
foozy@708: Windows $B4D6-$K$*$1$k@-G=!J$*$h$S0lHLE*$J%5%]!<%H!K$K4X$7$F$O(B
foozy@708: Mercurial $B$K5Z$S$^$;$s!#(B
foozy@708: 
foozy@708: Mercurial $B$N%j%]%8%H%j$OJ]<i$NI,MW$,$"$j$^$;$s$,!"(B
foozy@708: git $B%j%]%8%H%j$O<jF0$K$h$k%a%?%G!<%?$N(B``$B5M$aD>$7(B''$B$rIQHK$K9T$&I,MW$,$"$j$^$9!#(B
foozy@708: $B$3$N5M$aD>$7$r$7$J$$>l9g!"(B
foozy@708: $BMxMQNN0h$,B.$d$+$KA}2C$9$k0lJ}$G!"@-G=$,Dc2<$7$F$7$^$$$^$9!#(B
foozy@708: $B873J3n$DIQHK$K5M$aD>$7$r$7$J$$(B git $B%j%]%8%H%j$rBt;3Jz$($k%5!<%P$O!"(B
foozy@708: $B%P%C%/%"%C%W$N4V!"Hs>o$K(B disk-bound $B$K$J$j$^$9$7!"(B
foozy@708: $B7k2L$H$7$F!"(B
foozy@708: $BF|;~%P%C%/%"%C%W=hM}$K#2#4;~4V0J>e$rMW$9$k$h$&$K$J$C$F$7$^$C$?Nc$,!"(B
foozy@708: $B$$$/$D$b$"$j$^$9!#(B
foozy@708: $B5M$aBX$($K$h$C$FA/EY$,J]$?$l$F$$$k(B git $B%j%]%8%H%j$O!"(B
foozy@708: Mercurial $B$N%j%]%8%H%j$h$j$b$o$:$+$K>.$5$$$G$9$,!"(B
foozy@708: $B5M$aBX$($5$l$F$$$J$$>l9g$O$+$J$j$NBg$-$5$G$9!#(B
foozy@708: 
foozy@708: git $B$N4pK\ItJ,$O(B C $B$G<BAu$5$l$F$$$^$9!#(B
foozy@708: $BB?$/$N(B git $B%3%^%s%I$O%7%'%k$J$$$7(B Perl $B$N%9%/%j%W%H$K$h$j<BAu$5$l$F$$$^$9$,!"(B
foozy@708: $B$=$NIJ<A$OHs>o$KI}$,9-$$$G$9!#(B
foozy@708: $BCWL?E*$H$_$J$9$Y$-%(%i!<$,H/@8$7$F$$$kCf$G0G1@$K=hM}$rB3$1$k%9%/%j%W%H$r!"(B
foozy@708: $B2?EY$+8+$+$1$?$3$H$,$"$j$^$9!#(B
foozy@708: 
foozy@708: \subsection{CVS}
foozy@708: 
foozy@708: CVS $B$O$*$=$i$/@$3&Cf$G:G$b9-$/;HMQ$5$l$F$$$k9=@.4IM}%D!<%k$G$9!#(B
foozy@708: $B$=$NNr;K$ND9$5$H!"FbItE*$J$^$H$^$j$NL5$5$+$i!"(B
foozy@708: $BD9$$4V!"K\<AE*$K$OJ]<i$5$l$F$-$^$;$s$G$7$?!#(B
foozy@708: 
foozy@708: CVS $B$OCf1{=8Ls7?$N!V%/%i%$%"%s%H!?%5!<%P!W(B
foozy@708: $B%"!<%-%F%/%A%c$r;}$C$F$$$^$9!#(B
foozy@708: CVS $B$O4XO"$9$k%U%!%$%k$NJQ99$rIT2DJ,%3%_%C%H$X$H%0%k!<%W2=$7$J$$$?$a!"(B
foozy@708: $BNc$($P!"(B
foozy@708: $B!V$"$kMxMQ<T$K$h$k@.2L$N%3%_%C%H$,!"(B
foozy@708: $B%^!<%8$NI,MW@-$+$iItJ,E*$K$7$+@.8y$7$J$+$C$?>l9g!"(B
foozy@708: $BB>$NMxMQ<T$+$i$OH`$N0U?^$7$?JQ99$N0lIt$7$+8+$k$3$H$,$G$-$J$$!W$H$$$C$?!"(B
foozy@708: ``$B%S%k%I$rMp$9(B''$B9T0Y$,MF0W$K9T$($F$7$^$$$^$9!#(B
foozy@708: $B$3$l$O!"%W%m%8%'%/%HMzNr$KBP$9$k:n6H$N?J$aJ}$K$b1F6A$7$^$9!#(B
foozy@708: $B$H$"$k%?%9%/$N0lIt$H$7$F!"(B
foozy@708: $B$"$k%a%s%P$,9T$C$?JQ99$rA4$FI=<($7$h$&$H$7$?>l9g!"(B
foozy@708: $B4XO"$9$k3F%U%!%$%k!J$I$N%U%!%$%k$,$=$&$G$"$k$+$rCN$C$F$$$l$P!"(B
foozy@708: $B$NOC$G$9$,!K$KBP$7$F9T$o$l$?JQ99$N!"(B
foozy@708: $B8D!9$N%3%_%C%H%m%0$HF|IU$r<jF0$G3NG'$9$kI,MW$,$"$j$^$9!#(B
foozy@708: 
foozy@708: CVS $B$N%?%0$d%V%i%s%A$N9M$(J}$O:.Mp$7$F$$$k$?$a!"(B
foozy@708: $B$=$l$K$D$$$F@bL@$9$k5$$K$b$J$l$^$;$s!#(B
foozy@708: $B%U%!%$%k$d%G%#%l%/%H%j$N2~L>$,%5%]!<%H$5$l$F$$$J$$$?$a!"(B
foozy@708: $B%j%]%8%H%j$,4JC1$K;(A3$H$7$F$7$^$$$^$9!#(B
foozy@708: $BFbItE*$J@09g@-$r%A%'%C%/$9$k5!G=$b;}$?$J$$$?$a!"(B
foozy@708: $B%j%]%8%H%j$,GKB;$7$F$$$k$N$+H]$+$rH=Dj$7$?$j!"(B
foozy@708: $B$I$N$h$&$KGKB;$7$F$$$k$N$+$r$7$k$3$H$O!"0lHL$K$OIT2DG=$G$9!#(B
foozy@708: $B8=B8!&?75,$N$$$:$l$N%W%m%8%'%/%H$KBP$7$F$b!"(B
foozy@708: CVS $B$O$*A&$a$G$-$^$;$s!#(B
foozy@708: 
foozy@708: Mercurial $B$O(B CVS $B$N%j%]%8%H%j$r<h$j9~$`$3$H$,$G$-$^$9!#(B
foozy@708: $B$7$+$7!"$$$/$D$+$NCm0U$,I,MW$G!"(B
foozy@708: $B$3$l$O(B CVS $B$N%j%]%8%H%j$r<h$j9~$`$3$H$N$G$-$k!"(B
foozy@708: $BB>$N9=@.4IM}%D!<%k$KBP$7$F$bF1MM$G$9!#(B
foozy@708: CVS $B$OIT2DJ,%3%_%C%H$r;}$C$F$*$i$:!"(B
foozy@708: $B%U%!%$%k%7%9%F%`3,AX$NMzNr4IM}$b9T$C$F$$$J$$$?$a!"(B
foozy@708: CVS $B$+$iMzNr$r@53N3n$D87L)$K:F9=C[$9$k$3$H$OIT2DG=$G$9!#(B
foozy@708: $B4vJ,$+$N?dB,$,I,MW$G$"$j!"2~L>$ODL>o8!CN$G$-$^$;$s!#(B
foozy@708: $B9bEY$J(B CVS $B4IM}$NB?$/$,<jF0$G9T$o$l!"$=$l8N$K4V0c$$$d$9$$$3$H$+$i!"(B
foozy@708: CVS $B$+$i$N<h$j9~$_$r9T$&%D!<%k$K$H$C$F!"(B
foozy@708: $BGKB;$7$?%j%]%8%H%j$+$i$N<h$j9~$_$OJ#?t$NLdBj$K9T$-Ev$?$k$N$,>o$G$9(B
foozy@708: $B!JI.<T$N8D?ME*7P83$+$i;W$$=P$;$k!"LLGr$/$bL5$$LdBj$NNc$H$7$F$O!"(B
foozy@708: $B40A4$K56J*$N%?%$%`%9%?%s%W$d!"(B
foozy@708: $B#1#0G/0J>e%m%C%/$5$l$?$^$^$N%U%!%$%k$J$I$,$"$j$^$9!K!#(B
foozy@708: 
foozy@708: \subsection{Commercial tools}
foozy@708: 
foozy@708: Perforce $B$OCf1{=8Ls7?$N!V%/%i%$%"%s%H!?%5!<%P!W(B
foozy@708: $B%"!<%-%F%/%A%c$r;}$C$F$$$^$9$,!"(B
foozy@708: $B%/%i%$%"%s%HB&$G$OA4$/%-%c%C%7%e$r9T$C$F$$$^$;$s!#(B
foozy@708: $B6aG/$N9=@.4IM}%D!<%k$H0[$J$j!"(B
foozy@708: $BJT=8BP>]$H$J$kA4$F$N%U%!%$%k$K4X$7$F!"(B
foozy@708: Perforce $B$O%3%^%s%I<B9T$K$h$k%5!<%P$X$NDLCN$r%f!<%6$KBP$7$FMW5a$7$^$9!#(B
foozy@708: 
foozy@708: Perforce $B$N@-G=$O>.5,LO$J%A!<%`$G$OHs>o$KNI9%$G$9$,!"(B
foozy@708: $B%f!<%6?t$,?t%@!<%9$rD6$($k:"$+$i5^B.$KDc2<$7$^$9!#(B
foozy@708: $B>/!9Bg5,LO$J3+H/8~$1$N(B Perforce $B%$%s%9%H!<%k$O!"(B
foozy@708: $B%f!<%6%"%/%;%9$K$h$kIi2Y$r>e<j$/=hM}$9$k$?$a$K!"(B
foozy@708: $B!V%W%m%-%7!W$NG[CV$,MW5a$5$l$^$9!#(B
foozy@708: 
foozy@708: %%% Local Variables: 
foozy@708: %%% mode: latex
foozy@708: %%% TeX-master: "00book"
foozy@708: %%% End: 




