
foozy@708: \chapter{Behind the scenes}
foozy@708: \label{chap:concepts}
foozy@708: 
foozy@708: $BB?$/$N9=@.4IM}%7%9%F%`$H0[$J$j!"(B
foozy@708: Mercurial $B$,4p$K$7$F$$$k35G0$OHs>o$KC1=c$J$N$G!"(B
foozy@708: Mercurial $B$N%W%m%0%i%`$,<B:]$K$I$N$h$&$KF0:n$9$k$N$+$rM}2r$9$k$N$O4JC1$G$9!#(B
foozy@708: $B$=$N$h$&$JCN<1$OI,MWL5$$$+$b$7$l$^$;$s$,!"(B
foozy@708: $BI.<T$OFb>p$K4X$9$k(B``$B35G0M}2r(B''$B$,M-MQ$G$"$k$H9M$($F$$$^$9!#(B
foozy@708: 
foozy@708: $BI.<T<+?H$O!"Fb>p$rM}2r$9$k$3$H$G!"(B
foozy@708: Mercurial $B$,(B\emph{$B0BA4@-(B}$B$H(B\emph{$B8zN((B}$B$KN10U$7$F@_7W$5$l$F$$$k!"(B
foozy@708: $B$H$$$&3N?.$rF@$k$3$H$,$G$-$^$7$?!#(B
foozy@708: $B$^$?!"(B
foozy@708: $B9=@.4IM}A`:n$r9T$C$?:]$K%=%U%H%&%'%"$,$I$N$h$&$K5!G=$9$k$N$+$r!"(B
foozy@708: $BMF0W$K3P$($F$*$1$k$N$G$"$l$P!"(B
foozy@708: $B9=@.4IM}%D!<%k$N?6$kIq$$$K6C$+$5$l$k5!2q$,8:$k!"(B
foozy@708: $B$H$$$&E@$bHs>o$K=EMW$G$9!#(B
foozy@708: 
foozy@708: $B$3$N>O$G$O!"(B
foozy@708: $B:G=i$K(B
foozy@708: Mercurial $B$N@_7W$K$*$1$kCf3KE*$J35G0$K$D$$$F@bL@$7$?>e$G!"(B
foozy@708: $B<BAu$K$*$1$k6=L#?<$$E@$K4X$9$k>\:Y$r4v$D$+<h$j>e$2$h$&$H;W$$$^$9!#(B
foozy@708: 
foozy@708: \section{Mercurial's historical record}
foozy@708: 
foozy@708: \subsection{Tracking the history of a single file}
foozy@708: 
foozy@708: $B%U%!%$%k$NJQ99$rDI@W$9$k>l9g!"(B
foozy@708: Mercurial $B$O%U%!%$%k$NMzNr$r(B
foozy@708: \emph{filelog} $B$H8F$P$l$k%a%?%G!<%?%*%V%8%'%/%H7A<0$GJ]B8$7$^$9!#(B
foozy@708: filelog $B$K5-O?$5$l$k8D!9$NMWAG$O!"(B
foozy@708: $BDI@WBP>]%U%!%$%k$N!"(B
foozy@708: $B$H$"$k%j%S%8%g%s$r:F8=$9$k$N$K==J,$J>pJs$rJ];}$7$F$$$^$9!#(B
foozy@708: filelog $B$O(B
foozy@708: \sdirname{.hg/store/data} $B%G%#%l%/%H%jG[2<$K%U%!%$%k$H$7$FJ]B8$5$l$F$*$j!"(B
foozy@708: $BMzNr>pJs$H!"(B
foozy@708: Mercurial $B$N%j%S%8%g%s8!:w$rJd=u$9$k%$%s%G%C%/%9$N!"(B
foozy@708: $B#2<oN`$N>pJs$rJ];}$7$F$$$^$9!#(B
foozy@708: 
foozy@708: $B%5%$%:$,Bg$-$+$C$?$jJQ99MzNr$NB?$$%U%!%$%k$N>l9g!"(B
foozy@708: filelog $B$rMzNr>pJs!J3HD%;R(B ``\texttt{.d}''$B!K(B
foozy@708: $B$H%$%s%G%C%/%9!J3HD%;R(B ``\texttt{.i}''$B!K$N#2$D$KJ,N%$7$FJ]B8$5$l$^$9!#(B
foozy@708: $BJQ99MzNr$,$=$l$[$IL5$$>.$5$J%U%!%$%k$N>l9g!"(B
foozy@708: $BMzNr>pJs$H%$%s%G%C%/%9$O(B
foozy@708: ``\texttt{.i}'' $B3HD%;R$r;}$DC10l$N%U%!%$%k$KJ]B8$5$l$^$9!#(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$H!"(B
foozy@708: $B$=$NJQ99MzNr$rDI@W$9$k$?$a$N%j%]%8%H%jCf$N(B filelog $B%U%!%$%k$NBP1~$r!"(B
foozy@708: $B?^(B~\ref{fig:concepts:filelog}$B$K<($7$^$9!#(B
foozy@708: 
foozy@708: \begin{figure}[ht]
foozy@708:   \centering
foozy@708:   \grafix{filelog}
foozy@708:   \caption{Relationships between files in working directory and
foozy@708:     filelogs in repository}
foozy@708:   \label{fig:concepts:filelog}
foozy@708: \end{figure}
foozy@708: 
foozy@708: \subsection{Managing tracked files}
foozy@708: 
foozy@708: 
foozy@708: $BDI@WBP>]%U%!%$%k$N>pJs$r$^$H$a$k$?$a$K!"(B
foozy@708: Mercurial $B$O(B \emph{manifest} $B$H8F$P$l$k9=B$$r;HMQ$7$F$$$^$9!#(B
foozy@708: manifest $B$K5-O?$5$l$k8D!9$NMWAG$O!"(B
foozy@708: $BEv3:%A%'%s%8%;%C%H$K$*$1$k%U%!%$%k$N0lMw$d!"(B
foozy@708: $B3F%U%!%$%k$N%j%S%8%g%s!"(B
foozy@708: $B4v$D$+$N%U%!%$%k$N%a%?%G!<%?$H$$$C$?!"(B
foozy@708: $B8D!9$N%A%'%s%8%;%C%H$4$H$N%U%!%$%k$K4X$9$k>pJs$rJ];}$7$F$$$^$9!#(B
foozy@708: 
foozy@708: \subsection{Recording changeset information}
foozy@708: 
foozy@708: \emph{changelog} $B$O!"(B
foozy@708: $B%A%'%s%8%;%C%H$N%3%_%C%H<g$d!"(B
foozy@708: $B%3%_%C%H;~$N%m%0%a%C%;!<%8!"(B
foozy@708: $B$=$NB>%A%'%s%8%;%C%H$K4X$9$k4v$D$+$N>pJs$d!"(B
foozy@708: manifest $B$N%j%S%8%g%s$H$$$C$?!"(B
foozy@708: $B8D!9$N%A%'%s%8%;%C%H$K4X$9$k>pJs$rJ];}$7$F$$$^$9!#(B
foozy@708: 
foozy@708: \subsection{Relationships between revisions}
foozy@708: 
foozy@708: changelog$B!"(Bmanifest $B$J$$$7(B filelog $B$K$*$1$k8D!9$N%j%S%8%g%s$O!"(B
foozy@708: $BD>@\$N?F%j%S%8%g%s(B
foozy@708: $B!J%^!<%8$r9T$C$?%j%S%8%g%s$N>l9g$O!"(B
foozy@708: $B%^!<%8BP>]$H$J$C$?#2$D$N?F%j%S%8%g%s!K(B
foozy@708: $B$X$N;2>H$rJ];}$7$F$$$^$9!#(B
foozy@708: $B:#=R$Y$?$h$&$K!"(B
foozy@708: $B3F9=B$$K(B\emph{$B$^$?$,$C$?(B}$B4XO"@-$r$b$A!"(B
foozy@708: $B$=$l$i$OI,A3E*$K3,AX9=B$$r;}$C$F$$$^$9!#(B
foozy@708: 
foozy@708: $B%j%]%8%H%jCf$NA4$F$N%A%'%s%8%;%C%H$K4X$7$F!"(B
foozy@708: changelog $B$K$O87L)$K#1$D$N%j%S%8%g%s$,J]B8$5$l$^$9!#(B
foozy@708: changelog $B$K$*$1$k3F%j%S%8%g%s$O!"(B
foozy@708: manifest $BCf$N%j%S%8%g%s$X$N;2>H$rJ];}$7$F$$$^$9!#(B
foozy@708: manifest $BCf$N3F%j%S%8%g%s$O!"(B
foozy@708: $B%A%'%s%8%;%C%H$,@8@.$5$l$?:]$N3F%U%!%$%k$N%j%S%8%g%s$KBP1~$9$k(B
foozy@708: filelog $BCf$N%j%S%8%g%s$X$N;2>H$rJ];}$7$F$$$^$9!#(B
foozy@708: $B$3$N4XO"@-$r?^(B~\ref{fig:concepts:metadata}$B$K<($7$^$9!#(B
foozy@708: 
foozy@708: \begin{figure}[ht]
foozy@708:   \centering
foozy@708:   \grafix{metadata}
foozy@708:   \caption{Metadata relationships}
foozy@708:   \label{fig:concepts:metadata}
foozy@708: \end{figure}
foozy@708: 
foozy@708: $B?^$+$i$b$o$+$k$h$&$K!"(B
foozy@708: changelog$B!"(Bmanifest $B$*$h$S(B 
foozy@708: filelog $B$,J];}$9$k%j%S%8%g%s>pJs4V$N4X78$O!"(B
foozy@708: $BI,$:$7$b(B``$B#1BP#1(B''$B$H$$$&$o$1$G$O$"$j$^$;$s!#(B
foozy@708: $B#2$D$N%A%'%s%8%;%C%H$N4V$G(B
foozy@708: manifest $B$,JQ99$5$l$F$$$J$$>l9g!"(B
foozy@708: $B$=$l$i$N%A%'%s%8%;%C%H$KBP1~$9$k(B changelog $BMWAG$O!"(B
foozy@708: manifest $BCf$NF1$8%j%S%8%g%s$r;2>H$7$^$9!#(B
foozy@708: $B#2$D$N%A%'%s%8%;%C%H$N4V$G(B
foozy@708: Mercurial $B$,DI@W$9$k%U%!%$%k$,JQ99$5$l$F$$$J$$>l9g!"(B
foozy@708: $B$=$l$i$N%A%'%s%8%;%C%H$KBP1~$9$k(B manifest $BMWAG$O!"(B
foozy@708: filelog $BCf$NF1$8%j%S%8%g%s$r;2>H$7$^$9!#(B
foozy@708: 
foozy@708: \section{Safe, efficient storage}
foozy@708: 
foozy@708: changelog$B!"(Bmanifest $B$*$h$S(B filelog $B$O!"(B
foozy@708: \emph{revlog} $B$H8F$P$l$kF1$89=B$$K$h$j9=@.$5$l$F$$$^$9!#(B
foozy@708: 
foozy@708: \subsection{Efficient storage}
foozy@708: 
foozy@708: revlog $B$O(B \emph{$B:9J,(B}$B<jK!$H$$$&;EAH$_$r;HMQ$7$F!"(B
foozy@708: $B%j%S%8%g%s>pJs$r8zN(E*$K3JG<$7$F$$$^$9!#(B
foozy@708: $B:9J,<jK!$G$O!"(B
foozy@708: $B%U%!%$%k$N3F%j%S%8%g%s$4$H$K40A4$JJ#@=$rJ];}$9$kBe$o$j$K!"(B
foozy@708: $B5l%j%S%8%g%s$+$i?7%j%S%8%g%s$X$NJQ7A$KI,MW$J>pJs$rJ];}$7$^$9!#(B
foozy@708: $BB?$/$N%U%!%$%k$G$N%G!<%?3JG<$K$*$$$F!"(B
foozy@708: $B:9J,<jK!$O0lHLE*$K40A4$JJ#@=$N>l9g$N?t%Q!<%;%s%HDxEY$N%5%$%:$K$J$j$^$9!#(B
foozy@708: 
foozy@708: $B5l<0$N9=@.4IM}%7%9%F%`$G$O!"(B
foozy@708: $B%F%-%9%H7A<0$N%U%!%$%k$G$7$+:9J,<jK!$,E,MQ$G$-$J$$$b$N$b$"$j$^$9!#(B
foozy@708: $B$=$l$i$N%7%9%F%`$K$*$1$k%P%$%J%j%U%!%$%k$N3JG<$O!"(B
foozy@708: $B40A4$J%9%J%C%W%7%g%C%H$+!"(B
foozy@708: $B%F%-%9%HI=8=7A<0$X$NJQ49$K$h$C$F9T$o$l$^$9$,!"(B
foozy@708: $B$3$l$i$O6&$KIT7P:Q$J<jK!$G$9!#(B
foozy@708: $BG$0U$N%P%$%J%j%G!<%?$r4^$`%U%!%$%k$G$"$C$F$b!"(B
foozy@708: Mercurial $B$O:9J,$r8zN(E*$K07$&$3$H$,$G$-$^$9$N$G!"(B
foozy@708: $B%F%-%9%H$rFCJL07$$$9$kI,MW$O$"$j$^$;$s(B\footnote{$BLuCm(B:
foozy@708: <code>cvs add</code> $B$K$*$1$k(B
foozy@708: <code>-kb</code> $B;XDj$N7gMn$K$h$k%U%!%$%kFbMF$NGKB;!"(B
foozy@708: $B$H$$$C$??4G[$O$"$j$^$;$s!#(B
foozy@708: $BL`$b!"(BMercurial $B$N4pDlF0:n$G$O!"(B
foozy@708: $B%-!<%o!<%I$NCV49Ey$r9T$$$^$;$s$N$G!"(B
foozy@708: $B$=$b$=$b?4G[$9$kI,MW$,L5$$$N$G$9$,!D!#(B}$B!#(B
foozy@708: 
foozy@708: \subsection{Safe operation}
foozy@708: \label{sec:concepts:txn}
foozy@708: 
foozy@708: Mercurial $B$O(B revlog $B$NKvHx$K%G!<%?$r(B\emph{$BDI2C(B}$B$9$k$@$1$G!"(B
foozy@708: $B=q$-9~$^$l$?8e$+$i%U%!%$%k$N0lIt$r2~JQ$9$k$h$&$J$3$H$O9T$$$^$;$s!#(B
foozy@708: $B4{B8%G!<%?$N2~JQ$rI,MW$H$9$k;EAH$_$HHf3S$7$?>l9g!"(B
foozy@708: $B$3$N<jK!$O7xO43n$D8zN(E*$G$9!#(B
foozy@708: 
foozy@708: $B$=$l$K2C$($F!"(B
foozy@708: Mercurial $B$OJ#?t$N%U%!%$%k$K$^$?$,$C$?A4$F$N=q$-9~$_$r!"(B
foozy@708: $BC10l$N(B\emph{$B%H%i%s%6%/%7%g%s(B}$B$N0lIt$H$7$F07$$$^$9!#(B
foozy@708: $B%H%i%s%6%/%7%g%s$O(B\emph{$BIT2DJ,(B}$B$J$b$N$H$7$F07$o$l$^$9$N$G!"(B
foozy@708: $B%H%i%s%6%/%7%g%sA4BN$,@.8y$9$l$P7k2L$NA4$F$,MxMQ<T$K8+$($k$h$&$K$J$j$^$9$,!"(B
foozy@708: $B%H%i%s%6%/%7%g%s$N0lIt$G$b<:GT$7$?>l9g$K$O!"(B
foozy@708: $BA4$F$N=q$-9~$_A`:n$O<h$j>C$5$l$^$9!#(B
foozy@708: $B0lJ}$O%G!<%?$NFI$_9~$_$r9T$$B>J}$O%G!<%?$N=q$-=P$7$r9T$&$h$&$J!"(B
foozy@708: $B#2$D$N(B Mercurial $B%W%m%;%9$rF1;~$K<B9T$7$?>l9g$G$b!"(B
foozy@708: $B$3$NIT2DJ,J]>Z$K$h$j!"(B
foozy@708: $BFI$_9~$_$r:.Mp$5$;$k$h$&$JItJ,E*$J=q$-9~$_%G!<%?$r!"(B
foozy@708: $B%G!<%?FI$_9~$_B&$N%W%m%;%9$,FI$_9~$`$3$H$O$"$j$^$;$s(B
foozy@708: \footnote{$BLuCm(B:
foozy@708: $B87L)$K$O$3$N5-=R$O@5$7$/$"$j$^$;$s!#(B
foozy@708: $B>\:Y$O(B \ref{sec:hook:carepretxn}~$B@a$r;2>H$7$F$/$@$5$$!#(B}$B!#(B
foozy@708: 
foozy@708: Mercurial $B$,%U%!%$%k$X$NDI2C$7$+9T$o$J$$$3$H$,!"(B
foozy@708: $B%H%i%s%6%/%7%g%s$NIT2DJ,@-J]>Z$NDs6!$rMF0W$K$7$F$$$^$9!#(B
foozy@708: $B%H%i%s%6%/%7%g%sJ]>Z$,MF0W$G$"$kDx!"(B
foozy@708: $B$=$l$,@5$7$/5!G=$7$F$$$k$3$H$r3N?.$G$-$kH&$G$9!#(B
foozy@708: 
foozy@708: \subsection{Fast retrieval}
foozy@708: 
foozy@708: $B=i4|$N9=@.4IM}%7%9%F%`$,6&$K4Y$C$F$$$?(B\emph{$BHs8zN($JI|5l(B}$BLdBj$NMn$H$77j$r!"(B
foozy@708: Mercurial $B$O>e<j$K2sHr$7$F$$$^$9!#(B
foozy@708: $BKX$I$N9=@.4IM}%7%9%F%`$O!"(B
foozy@708: ``$B%9%J%C%W%7%g%C%H(B''$B$KBP$9$kJQ99$NDI2CE*$JO"B3$H$7$F!"(B
foozy@708: $B%j%S%8%g%s$NFbMF$rJ];}$7$F$$$^$7$?!#(B
foozy@708: $B$3$N<jK!$N>l9g!"(B
foozy@708: $BFCDj$N%j%S%8%g%s$r:F9=C[$9$k$K$O!"(B
foozy@708: $B:G=i$K%9%J%C%W%7%g%C%H$rFI$_9~$_!"(B
foozy@708: $BB3$$$FBP>]%j%S%8%g%s$H$N4V$NA4$F$N:9J,%G!<%?$rFI$_9~$`I,MW$,$"$j$^$9!#(B
foozy@708: $B%U%!%$%k$NMzNr$,@Q$_=E$J$k$[$I!"(B
foozy@708: $B:9J,%G!<%?$rFI$_9~$^$J$1$l$P@.$i$J$$%j%S%8%g%s$,A}2C$7!"(B
foozy@708: $BFCDj$N%j%S%8%g%s$N:F9=C[$K;~4V$,I,MW$H$J$j$^$9!#(B
foozy@708: 
foozy@708: \begin{figure}[ht]
foozy@708:   \centering
foozy@708:   \grafix{snapshot}
foozy@708:   \caption{Snapshot of a revlog, with incremental deltas}
foozy@708:   \label{fig:concepts:snapshot}
foozy@708: \end{figure}
foozy@708: 
foozy@708: Mercurial $B$,$3$NLdBj$N2r7h$K;HMQ$7$F$$$k<jK!$O!"(B
foozy@708: $B4JC1$J$b$N$G$9$,8z2LE*$G$9!#(B
foozy@708: $BA02s$N%9%J%C%W%7%g%C%H:n@.;~E@$+$i!"(B
foozy@708: $B8GDj$5$l$?ogCM$rD6$($F:9J,>pJs$,C_@Q$5$l$?:]$K$O!"(B
foozy@708: $B:9J,>pJs$NC_@Q$G$O$J$/!"(B
foozy@708: $B?7$?$J%9%J%C%W%7%g%C%H!JL^O@05=L$O9T$$$^$9!K$rJ]B8$9$k!"(B
foozy@708: $B$H$$$&$b$N$G$9!#(B
foozy@708: $B$3$N<jK!$O!"(B
foozy@708: \emph{$BG$0U$N(B}$B%j%S%8%g%s$K$*$1$k%U%!%$%k$rAGAa$/:F9=C[$G$-$^$9!#(B
foozy@708: $B$3$N<jK!$OHs>o$KM-8z$G$"$k$?$a!"(B
foozy@708: $BB>$N4v$D$+$N9=@.4IM}%7%9%F%`$K$b<h$j9~$^$l$F$$$^$9!#(B
foozy@708: 
foozy@708: $B?^(B~\ref{fig:concepts:snapshot}$B$N35MW$,<($9$h$&$K!"(B
foozy@708: Mercurial $B$O!"(B
foozy@708: revlog $B$N%$%s%G%C%/%9%U%!%$%k$K$*$1$k3FMWAG$K!"(B
foozy@708: $BFCDj$N%j%S%8%g%s$N:F9=C[$N:]$KFI$_9~$_$,I,MW$H$5$l$k!"(B
foozy@708: $B%G!<%?%U%!%$%kCf$NMWAG$NHO0O$r3JG<$7$^$9!#(B
foozy@708: 
foozy@708: \subsubsection{Aside: the influence of video compression}
foozy@708: 
foozy@708: $BF02h05=L$r=OCN$7$F$$$k$+!"(B
foozy@708: $B%1!<%V%k$J$$$71R@1$K$h$k%G%8%?%k%F%l%SG[?.$r;kD0$7$?$3$H$,$"$k$J$i$P!"(B
foozy@708: $B$?$$$F$$$NF02h05=L7A<0$K$*$$$F3FF02h%U%l!<%`$,!"(B
foozy@708: $B@h9T$9$k%U%l!<%`$H$N:9J,$GJ];}$5$l$F$$$k$3$H$r$4B8CN$+$b$7$l$^$;$s!#(B
foozy@708: $B2C$($F$=$l$i$N7A<0$G$O!"(B
foozy@708: $B05=LN($r8~>e$5$;$k$?$a$K(B``$BHs2D5U(B''$B05=L<jK!$rMQ$$$F$$$^$9$N$G!"(B
foozy@708: $B%U%l!<%`4V:9J,$N?t$K1~$8$F;k3PE*%(%i!<$,C_@Q$5$l$^$9!#(B
foozy@708: 
foozy@708: $BF02hG[?.$N>l9g!"(B
foozy@708: $B;~@^$N?.9f0[>o$K$h$k(B``$B7gMn(B''$B$,M-$jF@$^$9$7!"(B
foozy@708: $B2D5U05=L2aDx$K$h$j@8$8$k8m:9$NC_@Q$r@)8B$9$kI,MW$b$"$k$?$a!"(B
foozy@708: $BF02h05=LB&$G$ODj4|E*$K40A4$J%U%l!<%`(B
foozy@708: $B!J(B``$B%-!<%U%l!<%`(B''$B$H8F$P$l$^$9!K$r05=L7A<0$NCf$KA^F~$7$^$9!#(B
foozy@708: $B$3$l$OF02h?.9f$,CfCG$5$l$F$b!"(B
foozy@708: $B<!$N%-!<%U%l!<%`$NE~Ce;~E@$+$i$N:F3+$,2DG=$G$"$k$3$H$r0UL#$7$^$9!#(B
foozy@708: $BId9f2=%(%i!<$NC_@Q$b!"(B
foozy@708: $B8D!9$N%-!<%U%l!<%`$G%/%j%"$5$l$^$9!#(B
foozy@708: 
foozy@708: \subsection{Identification and strong integrity}
foozy@708: 
foozy@708: $B:9J,$J$$$7%9%J%C%W%7%g%C%H>pJs$N%G!<%?$KBP$7$F!"(B
foozy@708: revlog $BMWAG$O0E9f2=$KMQ$$$i$l$k%O%C%7%eCM$r7W;;$7$FJ];}$7$F$$$^$9!#(B
foozy@708: $B$3$l$K$h$j!"(B
foozy@708: $B%j%S%8%g%s$K4X$9$k>pJs$N56B$$r:$Fq$K$9$k$HF1;~$K!"(B
foozy@708: $BITN8$NGKB;$N8!=P$,MF0W$K$J$j$^$9!#(B
foozy@708: 
foozy@708: $B%O%C%7%eCM$N;;=P$O!"(B
foozy@708: $BC1$J$kGKB;$N8!=P0J>e$N$b$N$r$b$?$i$7$^$9!#(B
foozy@708: $B%O%C%7%eCM$O3F%j%S%8%g%s$N<1JL;R$H$7$F;HMQ$5$l$^$9!#(B
foozy@708: Mercurial $B$N%(%s%I%f!<%6$H$7$FL\$K$9$k%A%'%s%8%;%C%H<1JL;R$N%O%C%7%eCM$O!"(B
foozy@708: changelog $B$N%j%S%8%g%s$KM3Mh$9$kCM$G$9!#(B
foozy@708: filelog $B$d(B manifest $B$G$b%O%C%7%eCM$r;HMQ$7$F$$$^$9$,!"(B
foozy@708: Mercurial $B$G$O$3$l$i$OIqBfN"$N$_$G;HMQ$5$l$F$$$^$9!#(B
foozy@708: 
foozy@708: $BFCDj%j%S%8%g%s$N%U%!%$%k$r:F9=C[$9$k>l9g$d!"(B
foozy@708: $BB>$N%j%]%8%H%j$+$i%A%'%s%8%;%C%H$r<h$j9~$s$@>l9g!"(B
foozy@708: Mercurial $B$O%O%C%7%eCM$,@5$7$$$3$H$r3NG'$7$^$9!#(B
foozy@708: $B0l4S@-$KLdBj$,$"$k$3$H$,8!=P$5$l$?>l9g!"(B
foozy@708: $B7Y9p$rH/$7$?>e$G!"(B
foozy@708: $B?J9TCf$NA4$F$N=hM}$rDd;_$7$^$9!#(B
foozy@708: 
foozy@708: Mercurial $B$,Dj4|E*$K:9$79~$s$G$$$k%9%J%C%W%7%g%C%H$O!"(B
foozy@708: $BFCDj%j%S%8%g%s$N:F9=C[$N:]$N8zN($K2C$($F!"(B
foozy@708: $BItJ,E*$J%G!<%?$NGKB;$KBP$9$k7xO4@-$r$b$?$i$7$F$^$9!#(B
foozy@708: $B%O!<%I%&%'%"%(%i!<$d%7%9%F%`$N%P%0$K$h$C$F!"(B
foozy@708: revlog $B$,ItJ,E*$KGKB;$7$?>l9g!"(B
foozy@708: $BGKB;$rLH$l$?(B revlog $B$N%G!<%?$+$i!"(B
foozy@708: $BGKB;$7$?It0L$NA08e6&$K!"(B
foozy@708: $B0lIt!J$"$k$$$OKX$I$N!K%j%S%8%g%s$rI|5l$9$k$3$H$,2DG=$G$9!#(B
foozy@708: $B:9J,$N$_$rJ];}$9$k%b%G%k$r:NMQ$9$k9=@.4IM}%7%9%F%`$G$O!"(B
foozy@708: $B$3$N$h$&$J$3$H$O$G$-$^$;$s!#(B
foozy@708: 
foozy@708: \section{Revision history, branching, and merging}
foozy@708: 
foozy@708: $BA4$F$N(B Mercurial $B$N(B revlog $BMWAG$O!"(B
foozy@708: $BDL>o$O(B\emph{$B?F(B}$B$H8@$o$l$kD>A0$N%j%S%8%g%s$N<1JL;R$rJ];}$7$F$$$^$9!#(B
foozy@708: $B<B:]$K$O!"(B
foozy@708: $B3F(B revlog $BMWAG$O#1$D$G$O$J$/#2$D$N?F$N>pJs$rJ];}$G$-$^$9!#(B
foozy@708: Mercurial $B$O(B``$B6u<1JL;R(B''$B!J(Bnull ID$B!K$H8F$P$l$kFCJL$J%O%C%7%eCM$r;H$C$F!"(B
foozy@708: ``$B?FIT:_(B''$B$rI=8=$7$^$9(B\footnote{$BLuCm(B:
foozy@708: $B$D$^$j!"B?$/$N(B revlog $BMWAG$O!"(B
foozy@708: $B0lJ}$N?F%j%S%8%g%s$H$7$F6u(BID$B$rJ];}$7$F$$$^$9!#(B}$B!#(B
foozy@708: $B$3$N%O%C%7%eCM$OC1=c$K(B0$B$,O"B3$7$?J8;zNs$G$9!#(B
foozy@708: 
foozy@708: revlog $B$N35G0?^$r?^(B~\ref{fig:concepts:revlog}$B$K8+$k$3$H$,$G$-$^$9!#(B
foozy@708: filelog $B$d(B manifest$B!"(Bchangelog $B$NA4$F$,F1$89=B$$r;}$C$F$*$j!"(B
foozy@708: $B8D!9$NMWAG$,J];}$7$F$$$k!"(B
foozy@708: $B:9J,$d%9%J%C%W%7%g%C%H$H$$$C$?%G!<%?$N<oJL$,0[$J$k$@$1$G$9!#(B
foozy@708: 
foozy@708: revlog $B$K$*$1$k:G=i$N%j%S%8%g%s(B
foozy@708: $B!J?^$K$*$1$kDl0LCV$N%j%S%8%g%s!K$O!"(B
foozy@708: $B#2$D$N?F%j%S%8%g%s3JG<NN0h$NN>J}$K6u<1JL;R$rJ];}$7$F$$$^$9!#(B
foozy@708: ``$BDL>o$N(B''$B%j%S%8%g%s$G$O!"(B
foozy@708: $BBh#1?F$N3JG<NN0h$K$O?F%j%S%8%g%s$N<1JL;R$,!"(B
foozy@708: $BBh#2?F$N3JG<NN0h$K$O6u<1JL;R$,3JG<$5$l!"(B
foozy@708: $B?F%j%S%8%g%s$,#1$D$7$+$J$$$3$H$rI=$7$^$9!#(B
foozy@708: $B?F%j%S%8%g%s$N<1JL;R$H$7$FF1$8<1JL;R$r3JG<$9$k%j%S%8%g%sF1;N$O!"(B
foozy@708: $B8_$$$K%V%i%s%A$H$J$j$^$9!#(B
foozy@708: $B%V%i%s%A$r%^!<%8$7$?%j%S%8%g%s$O!"(B
foozy@708: $BE}9g$5$l$?N>J}$N%j%S%8%g%s$N<1JL;R$r?F%j%S%8%g%s$N<1JL;R$H$7$F3JG<$7$^$9!#(B
foozy@708: 
foozy@708: \begin{figure}[ht]
foozy@708:   \centering
foozy@708:   \grafix{revlog}
foozy@708:   \caption{}
foozy@708:   \label{fig:concepts:revlog}
foozy@708: \end{figure}
foozy@708: 
foozy@708: \section{The working directory}
foozy@708: 
foozy@708: Mercurial $B$O!"(B
foozy@708: $B%j%]%8%H%j$G9=@.4IM}$5$l$F$$$k%U%!%$%k$N!"(B
foozy@708: $BFCDj$N%j%S%8%g%s$K$*$1$k%9%J%C%W%7%g%C%H$r:n6HNN0h%G%#%l%/%H%j$KJ];}$7$^$9!#(B
foozy@708: 
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$O!"(B
foozy@708: $B$I$N%j%S%8%g%s$N%9%J%C%W%7%g%C%H$rJ];}$7$F$$$k$N$+$r(B``$BCN$C$F$$$^$9(B''$B!#(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$rFCDj$N%j%S%8%g%s$G99?7$7$h$&$H$7$?>l9g!"(B
foozy@708: Mercurial $B$O(B (1) $BAj1~$7$$%j%S%8%g%s$N(B manifest $B$r;2>H$7!"(B
foozy@708: (2) $BEv3:%j%S%8%g%s$N%3%_%C%H;~E@$G$N4IM}BP>]%U%!%$%k$rFCDj$7!"(B
foozy@708: (3) $B:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$,J];}$9$Y$-FbMF$r7hDj$7$^$9!#(B
foozy@708: $B$=$N>e$G!"(B
foozy@708: $BEv3:%A%'%s%8%;%C%H$N%3%_%C%H;~E@$HF1$8FbMF$r;}$D$h$&$K!"(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%jCf$K3F%U%!%$%k$NJ#@=$r:F@8@.$7$^$9!#(B
foozy@708: 
foozy@708: dirstate $B7A<0$K$O!"(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$,$I$N%A%'%s%8%;%C%H$G99?7$5$l$F$$$k$+$H$+!"(B
foozy@708: $B:n6HNN0h$G(B Mercurial $B$K$h$j9=@.4IM}$5$l$F$$$k%U%!%$%k$N0lMw$J$I!"(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$K4X$9$k(B
foozy@708: Mercurial $B$N4IM}>pJs$,3JG<$5$l$F$$$^$9!#(B
foozy@708: 
foozy@708: $B8D!9$N%j%S%8%g%s$K4X$9$k(B revlog $BMWAG$O!"(B
foozy@708: $B#2$D$N?F%j%S%8%g%s<1JL;R$r3JG<$9$kNN0h$r;}$C$F$$$^$9$N$G!"(B
foozy@708: $BDL>o$N%j%S%8%g%s!J#1$D$N?F%j%S%8%g%s$@$1$r;2>H!K$b!"(B
foozy@708: $B#2$D$N%j%S%8%g%s$r%^!<%8$9$k%j%S%8%g%s$bI=8=2DG=$G$9$,!"(B
foozy@708: dirstate $B7A<0$b#2$D$N?F%j%S%8%g%s<1JL;R$r3JG<$9$kNN0h$r;}$C$F$$$^$9!#(B
foozy@708: \hgcmd{update} $B%3%^%s%I$r<B9T$7$?:]$K$O!"(B
foozy@708: $B;XDj$7$?%A%'%s%8%;%C%H$O(B``$BBh#1?F(B''$B!J(Bfirst parent$B!K$H$7$FJ];}$5$l!"(B
foozy@708: $BBh#2?F$O6u<1JL;R$rJ];}$7$^$9!#(B
foozy@708: $B%A%'%s%8%;%C%H$H$N(B \hgcmd{merge} $B$r9T$C$?:]$K$O!"(B
foozy@708: dirstate $B7A<0$,J];}$9$kBh#1?F$OJQ2=$7$^$;$s$,!"(B
foozy@708: $BBh#2?F$O(B \hgcmd{merge} $B%3%^%s%I$K;XDj$5$l$?%A%'%s%8%;%C%H$K@_Dj$5$l$^$9!#(B
foozy@708: \hgcmd{parents} $B%3%^%s%I$K$h$j!"(B
foozy@708: dirstate $B7A<0$,J];}$9$k?F%j%S%8%g%s$N<1JL;R$rI=<($G$-$^$9!#(B
foozy@708: 
foozy@708: \subsection{What happens when you commit}
foozy@708: 
foozy@708: dirstate $B7A<0$,?F%j%S%8%g%s>pJs$rJ];}$9$k$N$O!"(B
foozy@708: $B2?$b3P$(=q$-$N$?$a$@$1$G$O$"$j$^$;$s!#(B
foozy@708: Mercurial $B$O(B dirstate $B7A<0$N;}$D?F%j%S%8%g%s>pJs$r!"(B
foozy@708: $B%3%_%C%H$N:]$N(B\emph{$B?75,%A%'%s%8%;%C%H$N?F%A%'%s%8%;%C%H(B}$B$H$7$F;HMQ$7$^$9!#(B
foozy@708: 
foozy@708: \begin{figure}[ht]
foozy@708:   \centering
foozy@708:   \grafix{wdir}
foozy@708:   \caption{The working directory can have two parents}
foozy@708:   \label{fig:concepts:wdir}
foozy@708: \end{figure}
foozy@708: 
foozy@708: $B?^(B~\ref{fig:concepts:wdir}$B$O!"(B
foozy@708: $B#1$D$N?F%A%'%s%8%;%C%H$N$_$r;}$D!"(B
foozy@708: $BDL>o$N:n6HNN0h%G%#%l%/%H%j$rI=$7$F$$$^$9!#(B
foozy@708: $B?^$K$*$1$k:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$O!"(B
foozy@708: $B%j%]%8%H%j$K$*$1$k:G?7$G3n$D;R$r;}$?$J$$%A%'%s%8%;%C%H$G$9$N$G!"(B
foozy@708: \emph{tip} $B$H8F$P$l$^$9!#(B
foozy@708: 
foozy@708: \begin{figure}[ht]
foozy@708:   \centering
foozy@708:   \grafix{wdir-after-commit}
foozy@708:   \caption{The working directory gains new parents after a commit}
foozy@708:   \label{fig:concepts:wdir-after-commit}
foozy@708: \end{figure}
foozy@708: 
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$=$N$b$N$r!"(B
foozy@708: ``$B%3%_%C%H$7$h$&$H$7$F$$$k%A%'%s%8%;%C%H(B''
foozy@708: $B$HB*$($k$H$o$+$j$d$9$$$G$7$g$&!#(B
foozy@708: Mercurial $B$KBP$7$FDI2C!?:o=|!?2~L>$J$$$7J#@=$r;X<($7$?%U%!%$%k$O!"(B
foozy@708: $B4{$K(B Mercurial $B$K$h$j9=@.4IM}$5$l$F$$$k%U%!%$%k$X$NJQ99$HF1MM$K!"(B
foozy@708: $B$=$N%A%'%s%8%;%C%H$KH?1G$5$l$^$9!#(B
foozy@708: $B$=$N?7$?$J%A%'%s%8%;%C%H$K$O!"(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$HF1$8?F%A%'%s%8%;%C%H$,@_Dj$5$l$^$9!#(B
foozy@708: 
foozy@708: $B%3%_%C%H$,40N;$7$?$J$i!"(B
foozy@708: Mercurial $B$d:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$N>pJs$r99?7$7$^$9!#(B
foozy@708: $BBh#1?F$K$O%3%_%C%H$K$h$j?7$?$K@8@.$5$l$?%A%'%s%8%;%C%H$N<1JL;R$,@_Dj$5$l!"(B
foozy@708: $BBh#2?F$K$O6u<1JL;R$,@_Dj$5$l$^$9!#(B
foozy@708: $B%3%_%C%H8e$NLO<0?^$r!"(B
foozy@708: $B?^(B~\ref{fig:concepts:wdir-after-commit}$B$K<($7$^$9!#(B
foozy@708: Mercurial $B$O%3%_%C%H$N:]$K!"(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$K$O0l@Z?($l$:!"(B
foozy@708: $BC1$K(B dirstate $B$N?F%A%'%s%8%;%C%H>pJs$r=q$-49$($k$@$1$G$9!#(B
foozy@708: 
foozy@708: \subsection{Creating a new head}
foozy@708: 
foozy@708: $B8=;~E@$G$N(B tip $B0J30$N%A%'%s%8%;%C%H$G$N:n6HNN0h%G%#%l%/%H%j$N99?7$O!"(B
foozy@708: $BNI$/$"$k$3$H$G$9!#(B
foozy@708: $BNc$($P!"(B
foozy@708: $B@h=52PMKF|;~E@$G$N%W%m%8%'%/%H$N>uBV$rD4$Y$?$j!"(B
foozy@708: $B$I$N%A%'%s%8%;%C%H$,%P%0$r;}$A9~$s$@$N$+$rD4$Y$k!"(B
foozy@708: $B$H$$$C$?>u67$G$9!#(B
foozy@708: $B$3$N$h$&$J>u67$G$N<+A3$J9T0Y$O!"(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$r4uK>$N%A%'%s%8%;%C%H$G99?7$7!"(B
foozy@708: $BEv3:%A%'%s%8%;%C%H$r%3%_%C%H$7$?;~E@$G$N%U%!%$%k$NFbMF$r!"(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$r;2>H$7$F3NG'$9$k!"(B
foozy@708: $B$H$$$&$b$N$G$7$g$&!#(B
foozy@708: $B$3$N9T0Y$K$h$k1F6A$r!"(B
foozy@708: $B?^(B~\ref{fig:concepts:wdir-pre-branch}$B$K<($7$^$9!#(B
foozy@708: 
foozy@708: \begin{figure}[ht]
foozy@708:   \centering
foozy@708:   \grafix{wdir-pre-branch}
foozy@708:   \caption{The working directory, updated to an older changeset}
foozy@708:   \label{fig:concepts:wdir-pre-branch}
foozy@708: \end{figure}
foozy@708: 
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$r0JA0$N%A%'%s%8%;%C%H$G99?7$7$?>l9g!"(B
foozy@708: $B2?$i$+$NJQ99$r9T$C$F%3%_%C%H$7$?$J$i!"(B
foozy@708: Mercurial $B$O$I$N$h$&$K?6Iq$&$N$G$7$g$&$+!)(B
foozy@708: Mercurial $B$O$3$l$^$G$K@bL@$7$F$-$?>l9g$HF1$8$h$&$K?6Iq$$$^$9!#(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$,!"(B
foozy@708: $B?75,$K:n@.$5$l$k%A%'%s%8%;%C%H$N?F$K$J$j$^$9!#(B
foozy@708: $B?75,:n@.$5$l$k%A%'%s%8%;%C%H$O;R$r;}$?$:!"(B
foozy@708: $B$h$C$F?7$?$J(B tip $B%A%'%s%8%;%C%H$H$J$j$^$9!#(B
foozy@708: $B%3%_%C%H$N7k2L!"(B
foozy@708: $B%j%]%8%H%j$K$O;R$r;}$?$J$$%A%'%s%8%;%C%H$,#2$DB8:_$7!"(B
foozy@708: $B$3$l$i$O(B \emph{head} $B$H8F$P$l$^$9!#(B
foozy@708: $B$3$N>u67$r?^(B~\ref{fig:concepts:wdir-branch} $B$K<($7$^$9!#(B
foozy@708: 
foozy@708: \begin{figure}[ht]
foozy@708:   \centering
foozy@708:   \grafix{wdir-branch}
foozy@708:   \caption{After a commit made while synced to an older changeset}
foozy@708:   \label{fig:concepts:wdir-branch}
foozy@708: \end{figure}
foozy@708: 
foozy@708: \begin{note}
foozy@708:   Mercurial $B$KFk@w$_$NL5$$J}$O!"(B
foozy@708:   $B0z?tL5$7$G(B \hgcmd{pull} $B%3%^%s%I$r<B9T$7$?>l9g$N!"(B
foozy@708:   $BNI$/$"$k!V4V0c$$!W$r5$$KN1$a$FCV$$$F$/$@$5$$!#(B
foozy@708:   \hgcmd{pull} $B%3%^%s%I$N4pDlF0:n$O!"(B
foozy@708:   $B:n6HNN0h%G%#%l%/%H%j$N99?7$r(B\emph{$B9T$$$^$;$s(B}$B$N$G!"(B
foozy@708:   $B%j%]%8%H%j$X$N?75,%A%'%s%8%;%C%H$N<h$j9~$_$O9T$o$l$F$b!"(B
foozy@708:   $B:n6HNN0h%G%#%l%/%H%j$O(B \hgcmd{pull} $B%3%^%s%I<B9TA0$N$^$^$G$9!#(B
foozy@708:   $B:n6HNN0h%G%#%l%/%H%j$OEv3:;~E@$G$N(B tip $B$HF14|$7$F$$$J$$$?$a!"(B
foozy@708:   \hgcmd{pull} $B$N<B9T8e$K2?$i$+$NJQ99$r9T$$%3%_%C%H$7$?>l9g!"(B
foozy@708:   $B7k2L$H$7$F?7$?$J(B head $B$r@8@.$9$k$3$H$K$J$j$^$9!#(B
foozy@708: 
foozy@708:   $B3g8LIU$-$G!V4V0c$$!W$H=R$Y$?$N$O!"(B
foozy@708:   $B$3$N>u67$r=$I|$9$k$N$KI,MW$J$3$H$,!"(B
foozy@708:   \hgcmd{merge} $B$7$F$+$i(B \hgcmd{commit} $B$9$l$PNI$$$@$1$@$+$i$G$9!#(B
foozy@708:   $B8@$$49$($k$J$i!"(B
foozy@708:   $B$3$N$h$&$J%1!<%9$OA4A3?<9o$J>u67$G$O$J$$!"$H$$$&$3$H$G$9!#(B
foozy@708:   Mercurial $B$K47$l$F$$$J$$?M$O%S%C%/%j$9$k$+$b$7$l$^$;$s$,!D!#(B
foozy@708:   $B$3$N$h$&$J;vBV$r2sHr$9$kJL$NJ}K!$d!"(B
foozy@708:   $B=i?4<T$K$H$C$F0U30$K46$8$k$3$N$h$&$J?6$kIq$$$r(B Mercurial $B$,$H$kM}M3$K$D$$$F!"(B
foozy@708:   $B8e$[$I@bL@$7$?$$$H;W$$$^$9!#(B
foozy@708: \end{note}
foozy@708: 
foozy@708: \subsection{Merging heads}
foozy@708: 
foozy@708: \hgcmd{merge} $B%3%^%s%I<B9T$N:]$K!"(B
foozy@708: Mercurial $B$O:n6HNN0h%G%#%l%/%H%j$NBh#1?F$OJQ99$;$:$K!"(B
foozy@708: $BBh#2?F$r%^!<%8BP>]$H$7$F;XDj$7$?%A%'%s%8%;%C%H$KJQ99$7$^$9!#(B
foozy@708: $B$3$NMM;R$r?^(B~\ref{fig:concepts:wdir-merge}$B$K<($7$^$9!#(B
foozy@708: 
foozy@708: \begin{figure}[ht]
foozy@708:   \centering
foozy@708:   \grafix{wdir-merge}
foozy@708:   \caption{Merging two heads}
foozy@708:   \label{fig:concepts:wdir-merge}
foozy@708: \end{figure}
foozy@708: 
foozy@708: $B#2$D$N%A%'%s%8%;%C%H$K$*$$$F4IM}$5$l$k%U%!%$%k$r%^!<%8$9$k$?$a!"(B
foozy@708: Mercurial $B$O:n6HNN0h%G%#%l%/%H%j$rJQ99$7$^$9!#(B
foozy@708: $BB?>/4JJX2=$7$F@bL@$9$k$H!"(B
foozy@708: $BN>J}$N%A%'%s%8%;%C%H$N(B manifest $B$K4^$^$l$kA4$F$N%U%!%$%k$KBP$7$F!"(B
foozy@708: $B35$M0J2<$N$h$&$K%^!<%8=hM}$,<B;\$5$l$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $B$I$A$i$N%A%'%s%8%;%C%H$G$b%U%!%$%k$rJQ99$7$F$$$J$$>l9g!"(B
foozy@708:   $B$=$N%U%!%$%k$KBP$7$F$O2?$b9T$o$l$^$;$s!#(B
foozy@708: 
foozy@708: \item $B0lJ}$N%A%'%s%8%;%C%H$,JQ99$7$F$$$k%U%!%$%k$r!"(B
foozy@708:   $BB>J}$,JQ99$7$F$$$J$$>l9g!"(B
foozy@708:   $BJQ99FbMF$rH?1G$7$?%U%!%$%k$r:n6HNN0h%G%#%l%/%H%j$KJ#@=$7$^$9!#(B
foozy@708: 
foozy@708: \item $B0lJ}$N%A%'%s%8%;%C%H$,:o=|$7$?%U%!%$%k$O!"(B
foozy@708:   $BB>J}$N:o=|$K4X$o$i$:!"(B
foozy@708:   $B:n6HNN0h%G%#%l%/%H%j$+$i:o=|$5$l$^$9!#(B
foozy@708:   
foozy@708: \item $B0lJ}$N%A%'%s%8%;%C%H$,:o=|$7$?%U%!%$%k$r!"(B
foozy@708:   $BB>J}$,JQ99$7$F$$$?>l9g!"(B
foozy@708:   $B%U%!%$%k$NJQ99$H:o=|$N$I$A$i$r:NMQ$9$k$N$+!"(B
foozy@708:   $B%f!<%6$KBP$7$FLd$$9g$o$;$^$9!#(B
foozy@708: 
foozy@708: \item $BN>J}$N%A%'%s%8%;%C%H$,%U%!%$%k$rJQ99$7$F$$$k>l9g!"(B
foozy@708:   $BFbMF$N%^!<%87k2L$r%U%!%$%k$KJ]B8$9$k$?$a$K!"(B
foozy@708:   $B30It%^!<%8%W%m%0%i%`$,5/F0$5$l$^$9!#(B
foozy@708:   $B$3$N>l9g!"%f!<%6$K$h$kBPOCE*A`:n$,I,MW$K$J$k$+$b$7$l$^$;$s!#(B
foozy@708: 
foozy@708: \item $B0lJ}$N%A%'%s%8%;%C%H$,JQ99$7$F$$$k%U%!%$%k$r!"(B
foozy@708:   $BB>J}$,2~L>$7$?$jJ#@=$7$?$j$7$F$$$k>l9g!"(B
foozy@708:   $BJQ99FbMF$,?7$7$$%U%!%$%k$K$bEAGE$9$k$h$&$K$7$^$9!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: $BB>$K$b:Y$+$$OC(B---$BFC$K%^!<%8$K4X$7$F$O:Y$+$$OC$,Bt;3$"$j$^$9(B---$B$,$"$j$^$9$,!"(B
foozy@708: $B%^!<%8$K4XO"$9$k0lHLE*$J?6$kIq$$$N<oN`$O$3$NDxEY$G$9!#(B
foozy@708: $B$4Mw$NMM$K!"KX$I$N>u67$,A4$/<+F0E*$K=hM}$5$l$^$9$7!"(B
foozy@708: $B<B:]$N%^!<%8$G$bKX$I$N>l9g!"(B
foozy@708: $B>WFM2r>C$N$?$a$NBPOCE*$JF~NOL5$7$K<+F0E*$K40N;$7$^$9!#(B
foozy@708: 
foozy@708: $B%^!<%88e$N%3%_%C%H$N:]$K=hM}$5$l$k;vJA$r9M$($k>l9g$O!"(B
foozy@708: $B@h$K$b=R$Y$^$7$?$,!"(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%j$r(B
foozy@708: ``$B%3%_%C%H$7$h$&$H$7$F$$$k%A%'%s%8%;%C%H(B''
foozy@708: $B$HB*$($k$H$o$+$j$d$9$$$G$7$g$&!#(B
foozy@708: \hgcmd{merge} $B%3%^%s%I$,40N;$7$?8e$N:n6HNN0h%G%#%l%/%H%j$O!"(B
foozy@708: $B?F%A%'%s%8%;%C%H$r#2$D;}$A!"(B
foozy@708: $B%3%_%C%H$K$h$C$F@8@.$5$l$k?7$?$J%A%'%s%8%;%C%H$O!"(B
foozy@708: $B$3$l$i$r?F%A%'%s%8%;%C%H$H$7$^$9!#(B
foozy@708: 
foozy@708: Mercurial $B$G$O7+$jJV$7%^!<%8$9$k$3$H$,2DG=$G$9$,!"(B
foozy@708: Mercurial $B$O$j%S%8%g%s$*$h$S:n6HNN0h%G%#%l%/%H%j$NN>J}$KBP$7$F!"(B
foozy@708: $B0lEY$K#2$D$N?F%j%S%8%g%s$7$+DI@W$G$-$J$$$?$a!"(B
foozy@708: $B8D!9$N%^!<%8$NETEY%3%_%C%H$9$kI,MW$,$"$j$^$9!#(B
foozy@708: $BJ#?t$N%A%'%s%8%;%C%H$N0l3g%^!<%8$O5;=QE*$K$O2DG=$G$7$g$&$,!"(B
foozy@708: $B%f!<%6$,:.Mp$7$?$j!"(B
foozy@708: $B$R$I$/Mp;($J%^!<%8$,9T$o$l$k$G$"$m$&$3$H$OL\$K8+$($F$$$^$9!#(B
foozy@708: 
foozy@708: \section{Other interesting design features}
foozy@708: 
foozy@708: $B$3$l$^$G$N@a$G!"(B
foozy@708: Mercurial $B$,?.Mj@-$H@-G=$XCm0U?<$/G[N8$rJ'$C$F$$$k$3$H$r@bL@$9$k$?$a$K!"(B
foozy@708: $B@_7W$K$*$1$k:G$b=EMW$JB&LL$N4v$D$+$K>GE@$rEv$F$F$-$^$7$?!#(B
foozy@708: $B$7$+$7!"(B
foozy@708: $B>\:Y;v9`$X$NG[N8$O!"(B
foozy@708: $B$3$l$@$1$KN1$^$j$^$;$s!#(B
foozy@708: Mercurial $B$N9=@.$K$*$$$FI.<T$N8D?ME*$J6=L#$r$=$=$kB&LL$,B??t$"$j$^$9!#(B
foozy@708: $B$3$l$^$G$N(B``big ticket''$B$JB&LL$H$OJL$K!"(B
foozy@708: $B$$$/$D$+$rA*$s$G>\:Y$r@bL@$7$h$&$H;W$$$^$9$N$G!"(B
foozy@708: $B$3$l$i$K6=L#$,$"$l$P!"(B
foozy@708: $BNI$$@_7W$N%7%9%F%`$N9M0F$N:]$KM-MQ$J!"(B
foozy@708: $B$h$jNI$$H/A[$rF@$k$3$H$,$G$-$k$G$7$g$&!#(B
foozy@708: 
foozy@708: \subsection{Clever compression}
foozy@708: 
foozy@708: Mercurial $B$O%9%J%C%W%7%g%C%H$H:9J,$N$=$l$>$l$KBP$7$F!"(B
foozy@708: $B05=L$,M-8z$G$"$k>l9g$K$O05=L7A<0$GJ]B8$7$^$9!#(B
foozy@708: Mercurial $B$O>o$K%9%J%C%W%7%g%C%H$J$$$7:9J,$N05=L$r(B\emph{$B;n9T(B}$B$7$^$9$,!"(B
foozy@708: $BHs05=L$J>uBV$h$j$b%5%$%:$,>.$5$$>l9g$K8B$j!"(B
foozy@708: $B05=L7A<0$G$NJ]B8$r9T$$$^$9!#(B
foozy@708: 
foozy@708: $B$3$N$3$H$O!"(B
foozy@708: $BNc$($P(B \texttt{zip} $B%"!<%+%$%V$d(B JPEG $B2hA|$N$h$&$K!"(B
foozy@708: $B85!905=L7A<0$NFbMF$r;}$D%U%!%$%k$N3JG<$N:]$K!"(B
foozy@708: Mercurial $B$,(B``$BE,@Z$J=hCV(B''$B$r9T$&$3$H0UL#$7$^$9!#(B
foozy@708: $B$3$l$i$N%U%!%$%k$O(B Mercurial $B$K$h$k#2EYL\$N05=L$N:]$K$O!"(B
foozy@708: $B:G=i$N%5%$%:$h$j$bBg$-$/$J$k$N$,0lHLE*$G$9$N$G!"(B
foozy@708: Mercurial $B$O(B \texttt{zip} $B$d(B JPEG $B%U%!%$%k$r$=$N$^$^J]B8$7$^$9!#(B
foozy@708: 
foozy@708: $B05=L7A<0$N%U%!%$%k$N%j%S%8%g%s4V$N:9J,$O!"(B
foozy@708: $B0lHLE*$K$O%9%J%C%W%7%g%C%H$h$j$bBg$-$/$J$j$^$9$N$G!"(B
foozy@708: $B$3$N>l9g$G$b(B Mercurial $B$O(B``$BE,@Z$J=hCV(B''$B$r9T$$$^$9!#(B
foozy@708: $B%U%!%$%k$N%9%J%C%W%7%g%C%H$=$N$b$N$rJ]B8$9$k>l9g$N5vMFHO0O$r!"(B
foozy@708: $B:9J,>pJs$N%5%$%:$,D6$($k$3$H$,H=L@$7$?>l9g!"(B
foozy@708: Mercurial $B$O%9%J%C%W%7%g%C%H$rJ]B8$7$^$9$N$G!"(B
foozy@708: $B7+$jJV$7$K$J$j$^$9$,!"(B
foozy@708: $B:9J,$N$_$rJ];}$9$k%b%G%k$h$j$b%G%#%9%/MFNL$,@aLs$G$-$^$9!#(B
foozy@708: 
foozy@708: \subsubsection{Network recompression}
foozy@708: 
foozy@708: Mercurial $B$O%G%#%9%/$X$NMzNrJ]B8$N:]$K!"(B
foozy@708: $B@-G=$KBP$9$k05=LN($,$=$3$=$3NI9%$G%P%i%s%9$N<h$l$F$$$k(B``$B<}=L(B''
foozy@708: $B!J(Bdeflate$B!K05=L%"%k%4%j%:%`(B
foozy@708: $B!JCxL>$J(B \texttt{zip} $B%"!<%+%$%V7A<0$,F1Ey$N$b$N$r;HMQ$7$F$$$^$9!K(B
foozy@708: $B$r;HMQ$7$F$$$^$9!#(B
foozy@708: $B$7$+$7!"(B
foozy@708: $B%M%C%H%o!<%/1[$7$N%G!<%?E>Aw$N:]$K$O!"(B
foozy@708: Mercurial $B$OMzNr%G!<%?$r05=L$7$^$;$s!#(B
foozy@708: 
foozy@708: $B%M%C%H%o!<%/@\B3$,(B HTTP $B7PM3$N>l9g!"(B
foozy@708: Mercurial $B$O%G!<%?DL?.$N7PO)A4BN$r!"(B
foozy@708: $B$h$jNI$$05=LN($rF@$i$l$k05=L%"%k%4%j%:%`(B
foozy@708: $B!J(B\texttt{bzip2} $B05=L$H$7$F9-$/;HMQ$5$l$F$$$k(B
foozy@708: Burrows-Wheeler $B%"%k%4%j%:%`!K$G:F05=L$7$^$9!#(B
foozy@708: $B%j%S%8%g%s>pJs8DJL$N05=L$G$O$J$/!"(B
foozy@708: \texttt{bzip2} $B%"%k%4%j%:%`$HDL?.7PO)A4BN$N05=L$H$$$&AH$_9g$o$;$K$9$k$3$H$G!"(B
foozy@708: $BE>Aw%G!<%?NL$rBgI}$KDc8:$9$k$3$H$,$G$-$^$9$N$G!"(B
foozy@708: $BKX$IA4$F$N%M%C%H%o!<%/7ABV$K$*$$$FNI9%$J@-G=$rH/4x$G$-$^$9!#(B
foozy@708: 
foozy@708: $B!J(B\command{ssh} $B$G$N@\B3$N>l9g!"(B
foozy@708: \command{ssh} $B<+?H$,05=L$r9T$&$3$H$,$G$-$k$N$G!"(B
foozy@708: Mercurial $B$O@\B37PO)$N:F05=L$r(B\emph{$B9T$$$^$;$s(B}
foozy@708: \footnote{$BLuCm(B: $BLu<T$N7P83$G$O!"(B
foozy@708: $B%5!<%PB&$N(B Python $B$,(B zlib $B$r;HMQ$G$-$J$$>l9g!"(B
foozy@708: ssh $B$G$N(B push/pull $B$,5!G=$7$J$+$C$?$N$G!"(B
foozy@708: Mercurial $B$N%5%$%H$K$bF1MM$N5-=R$,$"$j$^$9$,!"(B
foozy@708: $B$3$N5-=R$O>/!9DTjm$,9g$o$J$$5$$,$7$^$9!#(B}$B!K(B
foozy@708: 
foozy@708: \subsection{Read/write ordering and atomicity}
foozy@708: 
foozy@708: $BIT40A4$J=q$-9~$_FbMF$,MxMQ$5$l$k$3$H$N$J$$$h$&$KJ]>Z$9$k>e$G$O!"(B
foozy@708: $B%U%!%$%k$X$NDI2C=q$-9~$_$@$1$,A4$F$G$O$"$j$^$;$s!#(B
foozy@708: $B$b$&0lEY!"?^(B~\ref{fig:concepts:metadata}$B$r8+$F$$$?$@$1$l$P$o$+$k$h$&$K!"(B
foozy@708: changelog $BCf$N%j%S%8%g%sMWAG$O(B manifest $BCf$N%j%S%8%g%sMWAG$r!"(B
foozy@708: manifest $BCf$N%j%S%8%g%sMWAG$O(B filelog $BCf$N%j%S%8%g%sMWAG$r;X$7$F$$$^$9!#(B
foozy@708: $B$3$N3,AX9=B$$O0U?^E*$J$b$N$J$N$G$9!#(B
foozy@708: 
foozy@708: $B%G!<%?=q$-9~$_$N:]$K$O!"(B
foozy@708: filelog $B$*$h$S(B manifest $B$X$N=q$-9~$_$G%H%i%s%6%/%7%g%s$,3+;O$5$l!"(B
foozy@708: $B$3$l$i$X$N=q$-9~$_$,40N;$9$k$^$G$O(B
foozy@708: changelog $B$X$N=q$-9~$_$O9T$o$l$^$;$s!#(B
foozy@708: $BFI$_9~$_$N:]$K$O!"(B
foozy@708: changelog $B$r5/E@$H$7$F(B manifest$B!"(Bfilelog $B$N=g=x$GFI$_9~$_$r9T$$$^$9!#(B
foozy@708: 
foozy@708: changelog $B$X$N=q$-9~$_$K@hN)$C$F!"(B
foozy@708: $B>o$K(B filelog $B$*$h$S(B manifest $B$X$N=q$-9~$_$,40N;$7$F$$$k$N$G!"(B
foozy@708: changelog $B$+$i$NIT40A4$J(B manifest $B$X$N;2>H$rFI$_9~$`$3$H$b!"(B
foozy@708: manifest $B$+$i$NIT40A4$J(B filelog $B$X$N;2>H$rFI$_9~$`$3$H$b$"$j$^$;$s!#(B
foozy@708: 
foozy@708: \subsection{Concurrent access}
foozy@708: 
foozy@708: $BFI$_=q$-<j=g$HIT2DJ,@-J]>Z$K$h$j!"(B
foozy@708: $BNc$(FI$_9~$_$N:GCf$K=q$-9~$_$,9T$o$l$k$H$7$F$b!"(B
foozy@708: Mercurial $B$OFI$_9~$_$K$*$1$k%j%]%8%H%j$N(B\emph{$BGSB>(B}$B$rI,MW$H$7$^$;$s!#(B
foozy@708: $B$3$NFC@-$OBg5,LO2=$N:]$KHs>o$K1F6A$,$"$j$^$9!#(B
foozy@708: $BG$0U$N?t$N(B Mercurial $B%W%m%;%9$,!"(B
foozy@708: $B=q$-=P$7%W%m%;%9$NM-L5$K4X$o$i$:!"(B
foozy@708: $B%j%]%8%H%j$KBP$7$FF1;~FI$_=P$7$r0BA4$K9T$&$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: $BFI$_=P$7$K$*$1$kGSB>ITMW$NFC@-$O!"(B
foozy@708: $BB?%f!<%6%7%9%F%`>e$G%j%]%8%H%j$r8x3+$7$F$$$k:]$K!"(B
foozy@708: $BJ#@=!J(B\hgcmd{clone}$B!K$dJQ99$N<h$j9~$_!J(B\hgcmd{pull}$B!K$N$?$a$K!"(B
foozy@708: $BB>$N%f!<%6$K!J$"$J$?$N!K(B
foozy@708: $B%j%]%8%H%j$X$N(B\emph{$B=q$-9~$_(B}$B$r5v2D$9$kI,MW(B\footnote{$BLuCm(B:
foozy@708: $B%W%m%;%94V$GGSB>$r9T$&>l9g!"(B
foozy@708: $BGSB>MQ$N%U%!%$%k$rMQ$$$k$+!"(B
foozy@708: $B%G%#%l%/%H%j$=$N$b$N$KGSB>@_Dj$r9T$&$N$,0lHLE*$G$9$,!"(B
foozy@708: $B$=$N$?$a$K$O=q$-9~$_8"8B$,I,MW$G$9!#(B}
foozy@708: $B$,L5$$$3$H$r0UL#$7$^$9!#(B
foozy@708: $BFI$_=P$7$r9T$&B>$N%f!<%6$K$O!"(B
foozy@708: \emph{$BFI$_=P$7(B}$B8"8B$N$_$N8x3+$G:Q$_$^$9(B
foozy@708: $B!J$3$N@-<A$O9=@.4IM}%7%9%F%`$K6&DL$NFC@-$G$O(B\emph{$B$"$j$^$;$s(B}$B$N$G!"(B
foozy@708: $B0lHLE*$J$b$N$@$H$O;W$o$J$$$G$/$@$5$$!#(B
foozy@708: $BB?$/$N9=@.4IM}%7%9%F%`$G$O!"(B
foozy@708: $BFI$_=P$7%f!<%6$G$"$C$F$b!"(B
foozy@708: $B0BA4$JFI$_=P$7$N$?$a$K$O%j%]%8%H%j$rGSB>$9$k8"8B$,I,MW$G$"$j!"(B
foozy@708: $B$=$N$?$a$K$O:GDc$G$b#1$D$N%G%#%l%/%H%j$KBP$9$k=q$-9~$_8"8B$,I,MW$J$?$a!"(B
foozy@708: $B0BA4@-$H4IM}>e$GLLE]$JLdBj$N860x$H$J$jF@$^$9!#!K!#(B
foozy@708: 
foozy@708: Mercurial $B$,GSB>$r9T$&$N$O!"(B
foozy@708: $B0lEY$K#1$D$N%W%m%;%9$N$_$,%j%]%8%H%j$K=q$-9~$`$N$rJ]>Z>l9g$@$1$G$9(B
foozy@708: $B!JGSB>$KE,$5$J$$$H8@$o$l$k(B NFS $B$N$h$&$J%U%!%$%k%7%9%F%`(B\footnote{$BLuCm(B:
foozy@708: $B9=@.4IM}%7%9%F%`$K8B$i$:!"(B
foozy@708: $BGSB>$N<B8=$K(B <code>creat(EXCL)</code> 
foozy@708: $B$G@8@.$5$l$k%U%!%$%k$r;HMQ$7$F$$$k$?$a$K!"(B
foozy@708: NFS $B$G$OE,@Z$KGSB>$G$-$J$$%W%m%0%i%`$,B??tB8:_$7$^$9!#(B
foozy@708: }$B$G$"$C$F$b!"(B
foozy@708: $B0BA4$KGSB>$G$-$k;EAH$_$rMQ$$$F$$$^$9!K!#(B
foozy@708: $B%j%]%8%H%j$,B>$N%W%m%;%9$K$h$jGSB>$5$l$F$$$k>l9g!"(B
foozy@708: $B=q$-9~$_$r9T$&%W%m%;%9$O!"(B
foozy@708: $B%j%]%8%H%j$NGSB>$,2r=|$5$l$k$^$G;C$/BT$C$F:FEYGSB>$r;n9T$7$^$9$,!"(B
foozy@708: $BD9;~4V$KEO$C$FGSB>$5$l$?$^$^$N>l9g$O!"(B
foozy@708: $B;~4V@Z$l$H$_$J$5$l$^$9!#(B
foozy@708: $B$=$N$?$a!"(B
foozy@708: $BNc$($P?MCN$l$:%7%9%F%`$,Dd;_$7$?$H$7$F$b!"(B
foozy@708: $B<+F02=$5$l$?F|<!=hM}$,Dd;_$7$?$^$^$K$J$C$?$j!"(B
foozy@708: $BDd;_$7$J$$=hM}$,<!!9$H@Q$_>e$,$C$?$j$9$k$3$H$O$"$j$^$;$s!#(B
foozy@708: 
foozy@708: \subsubsection{Safe dirstate access}
foozy@708: 
foozy@708: dirstate $B7A<0%U%!%$%k$+$i$N%j%S%8%g%s>pJs$NFI$_=P$7$K:]$7$F!"(B
foozy@708: Mercurial $B$O%U%!%$%k$KBP$9$kGSB>$r9T$C$?$j$O$;$:!"(B
foozy@708: $B=q$-9~$_$N:]$K$N$_GSB>$r9T$$$^$9!#(B
foozy@708: $BIT40A4$J=q$-9~$_$r(B 
foozy@708: dirstate $B7A<0%U%!%$%k$+$iFI$_=P$7$F$7$^$&$3$H$r2sHr$9$k$?$a!"(B
foozy@708: Mercurial $B$O(B 
foozy@708: $BBP>](B dirstate $B7A<0%U%!%$%k$HF1$8%G%#%l%/%H%j$KFCM-$NL>A0$G%U%!%$%k$r=q$-=P$7!"(B
foozy@708: $B$3$N0l;~%U%!%$%k$r(B \filename{dirstate}
foozy@708: $B%U%!%$%k$X$HIT2DJ,$JA`:n$G2~L>$7$^$9!#(B
foozy@708: $B$=$N$?$a!"(B
foozy@708: \filename{dirstate} $B$H$$$&!VL>A0$N!W%U%!%$%k$O!"(B
foozy@708: $BIT40A4$J=q$-9~$_$r;}$?$J$$40A4$JFbMF$G$"$k$3$H$,J]>Z$5$l$^$9!#(B
foozy@708: 
foozy@708: \subsection{Avoiding seeks}
foozy@708: 
foozy@708: $BHf3SE*BgNL$N%G!<%?FI$_9~$_=hM}$KBP$7$F$9$i!"(B
foozy@708: $B%G%#%9%/%X%C%I$N%7!<%/$OHs>o$K%3%9%H$,9b$/$D$/$?$a!"(B
foozy@708: Mercurial $B$N@-G=3NJ]$N=EMW$JE@$O!"(B
foozy@708: $B%G%#%9%/%X%C%I$N%7!<%/$r6KNO2sHr$9$k$3$H$K$"$j$^$9!#(B
foozy@708: 
foozy@708: $BNc$($P(B dirstate $B7A<0$N$h$&$J%G!<%?$,!"(B
foozy@708: $BC10l$N%U%!%$%k$KJ]B8$5$l$kM}M3$,$3$3$K$"$j$^$9!#(B
foozy@708: Mercurial $B$K$h$j9=@.4IM}$5$l$k%G%#%l%/%H%j$4$H$K(B
foozy@708: \filename{dirstate} $B%U%!%$%k$,B8:_$9$k>l9g$O!"(B
foozy@708: $B%G%#%l%/%H%j$4$H$K%G%#%9%/%X%C%I$N%7!<%/$,H/@8$7F@$^$9!#(B
foozy@708: $B$=$N$h$&$J%G%#%9%/%X%C%I$N%7!<%/$r2sHr$9$k$?$a$K!"(B
foozy@708: Mercurial $B$O0lEY$KC10l$N(B
foozy@708: \filename{dirstate} $B%U%!%$%kA4BN$rFI$_9~$_$^$9(B\footnote{$BLuCm(B:
foozy@708: $B%G%#%9%/$NMxMQ$,?J$s$G6u$-%V%m%C%/$,CGJR2=$5$l$?>l9g!"(B
foozy@708: $BITO"B3$J%V%m%C%/$,3d$jEv$F$i$l$^$9$+$i!"(B
foozy@708: $BI,$:$7$b!VC10l%U%!%$%k!W!a!V%X%C%I$N%7!<%/$,2sHr2DG=!W$G$O$"$j$^$;$s$,!"(B
foozy@708: $B>/$J$/$H$b!V%X%C%I$N%7!<%/$rDc8:!W$9$k$3$H$O2DG=$G$9!#(B}$B!#(B
foozy@708: 
foozy@708: $B%m!<%+%k%9%H%l!<%8$K$*$1$k%j%]%8%H%j$NJ#@=$N:]$K$O!"(B
foozy@708: Mercurial $B$O(B``$B=q$-=P$7;~J#@=(B''$B$N;EAH$_$b;HMQ$7$^$9!#(B
foozy@708: $BJ#@=85%j%]%8%H%j$+$iJ#@=@h$K8D!9$N(B revlog $B%U%!%$%k$rJ#@=$9$kBe$o$j$K!"(B
foozy@708: ``$B%O!<%I%j%s%/(B''$B$r;HMQ$9$k$3$H$G!"(B
foozy@708: ``$B#2$D$N%U%!%$%kL>$,F10lFbMF$N%U%!%$%k$r;2>H(B''
foozy@708: $B$9$k$3$H$r<jAa$/I=L@$7$^$9!#(B
foozy@708: $B0lJ}$N(B revlog $B%U%!%$%k$K=q$-9~$_$r9T$&:]$K$O!"(B
foozy@708: Mercurial $B$OEv3:%U%!%$%k$N%O!<%I%j%s%/$r3NG'$7$^$9!#(B
foozy@708: $BEv3:%U%!%$%k$,J#?t$N%j%]%8%H%j$+$i;2>H$5$l$$$F$$$k>l9g!"(B
foozy@708: Mercurial $B$OEv3:%j%]%8%H%jMQ$K(B revlog $B$N?7$?$JJ#@=$r:n@.$7$^$9!#(B
foozy@708: 
foozy@708: $B2??M$+$N9=@.4IM}%D!<%k$N3+H/<T$K$h$j!"(B
foozy@708: $B$3$NJ}K!(B---
foozy@708: $B40A4$K%j%]%8%H%j8GM-$N$b$N$H$7$F%U%!%$%k$rJ#@=$9$k(B---
foozy@708: $B$,%G%#%9%/;HMQNL:o8:$K$=$l$[$I8z2LE*$G$J$$$H$N;XE&$r<u$1$F$$$^$9!#(B
foozy@708: $B$=$l$O;v<B$G$O$"$j$^$9$,!"(B
foozy@708: $B%G%#%9%/MFNL$N3NJ]$O0B2A$G$"$j!"(B
foozy@708: OS $B$X$NJ#@=MW5a$rCY1d$9$k$3$H$K$h$j9b$$@-G=$rF@$k$3$H$,$G$-$^$9!#(B
foozy@708: $BJL$J;EAH$_$rMQ$$$k>l9g!"(B
foozy@708: $B@-G=$,Dc2<$7%=%U%H%&%'%"$NJ#;($5$,A}$7$^$9$N$G!"(B
foozy@708: $BF|!9$NMxMQ$K$*$1$k(B``$BBN46(B''$B$KHs>o$K1F6A$r5Z$\$7$^$9(B\footnote{$BLuCm(B:
foozy@708: $B$D$^$j!"(B
foozy@708: Mercurial $B$G$N%O!<%I%j%s%/$N;HMQ$O!"(B
foozy@708: $BJ#@=$r9T$&$3$H$K$h$k%G%#%9%/%X%C%I$N%7!<%/$rDc8:$9$k$N$,<g4c$G!"(B
foozy@708: $B%G%#%9%/;HMQNL$NDc8:$,<g4c$G$O$J$$!"(B
foozy@708: $B$H$$$&$3$H$G$9!#(B}$B!#(B
foozy@708: 
foozy@708: \subsection{Other contents of the dirstate}
foozy@708: \label{sec:concepts:dirstate}
foozy@708: 
foozy@708: $B%U%!%$%k$NJQ99$N:]$N(B Mercurial $B$X$NDLCN$,I,MW$J$$$3$H$+$i!"(B
foozy@708: $B%U%!%$%kJQ99$NM-L5$r8zN(E*$KH=Dj$9$k$?$a$K!"(B
foozy@708: $BFCJL$J>pJs$r3JG<$7$?(B dirstate $B7A<0%U%!%$%k$r;HMQ$7$^$9!#(B
foozy@708: $B:n6HNN0h%G%#%l%/%H%jCf$NA4$F$N%U%!%$%k$KBP$7$F!"(B
foozy@708: Mercurial $B$O%U%!%$%k$N:G=*JQ99F|;~$H$=$N;~E@$G$N%5%$%:$r(B
foozy@708: dirstate $B7A<0%U%!%$%k$K3JG<$7$F$$$^$9!#(B
foozy@708: 
foozy@708: \hgcmd{add}$B!"(B\hgcmd{remove}$B!"(B\hgcmd{rename} $B$J$$$7(B
foozy@708: \hgcmd{copy} $B$rL@<(E*$K;HMQ$7$?>l9g!"(B
foozy@708: Mercurial $B$O$3$N>pJs$r99?7$7$^$9$N$G!"(B
foozy@708: $B%3%_%C%H;~$N?6$kIq$$$rFCDj$G$-$^$9!#(B
foozy@708: 
foozy@708: Mercurial $B$,:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$r3NG'$9$k>l9g!"(B
foozy@708: $B:G=i$K%U%!%$%k$NJQ99F|;~$r3NG'$7$^$9!#(B
foozy@708: $BJQ99F|;~$,F10l$J$i$P!"%U%!%$%k$OJQ99$5$l$F$$$J$$H&$G$9!#(B
foozy@708: $B%U%!%$%k%5%$%:$,0[$J$C$F$$$k$J$i$P!"%U%!%$%k$OJQ99$5$l$F$$$kH&$G$9!#(B
foozy@708: $BJQ99F|;~$,0[$J$C$F$$$k$N$K%U%!%$%k%5%$%:$,F10l$N>l9g$K$N$_!"(B
foozy@708: $B%U%!%$%k$NFbMF$,0[$J$C$F$$$k$+H]$+$rH=Dj$9$k$?$a$K(B
foozy@708: Mercurial $B$O<B:]$K%U%!%$%k$NFbMF$rFI$_9~$_$^$9(B\footnote{$BLuCm(B:
foozy@708: Windows $B4D6-$G$N2~9TJQ49$r9T$C$F$$$k$h$&$J>l9g!"(B
foozy@708: $B%P%$%J%jHG$H%=!<%9HG$G%U%!%$%k%5%$%:$N;;=P<j=g$K0c$$$,$"$k$i$7$/!"(B
foozy@708: \hgcmd{diff} $B$,2?$b=PNO$7$J$$$N$K!"(B
foozy@708: \hgcmd{state} $B$G$O!VJQ99!W07$$$5$l$k$3$H$,5)$K$"$j$^$9!#(B}$B!#(B
foozy@708: $B$3$N$h$&$K6O$+$JDI2C>pJs$r3JG<$9$k$3$H$G!"(B
foozy@708: Mercurial $B$,I,MW$H$9$kFI$_9~$_%G!<%?NL$r7`E*$K8:$i$9$3$H$,$G$-!"(B
foozy@708: $BB>$N9=@.4IM}%7%9%F%`$HHf3S$7$FBgI}$K@-G=$,2~A1$5$l$F$$$^$9!#(B
foozy@708: 
foozy@708: %%% Local Variables: 
foozy@708: %%% mode: latex
foozy@708: %%% TeX-master: "00book"
foozy@708: %%% End:




