
foozy@708: \chapter{Customising the output of Mercurial}
foozy@708: \label{chap:template}
foozy@708: 
foozy@708: Mercurial $B$O!"(B
foozy@708: $B>pJsI=<($NBN:[$r@)8f$9$k6/NO$J;EAH$_$rDs6!$7$F$$$^$9!#(B
foozy@708: $B$3$N;EAH$_$O%F%s%W%l!<%H$K4p$E$$$F$*$j!"(B
foozy@708: $B%F%s%W%l!<%H$r;HMQ$9$k$3$H$G!"(B
foozy@708: $BC1H/$N%3%^%s%I=PNO$N8GM-2=$b!"(B
foozy@708: Mercurial $BAH$_9~$_$N%&%'%V%$%s%?%U%'!<%9$N8+$+$1A4BN$N%+%9%?%^%$%:$b$G$-$^$9!#(B
foozy@708: 
foozy@708: \section{Using precanned output styles}
foozy@708: \label{sec:style}
foozy@708: 
foozy@708: Mercurial $B$K$OB(;HMQ$G$-$k=PNO!VMM<0!W$N4v$D$+$,F1:-$5$l$F$$$^$9!#(B
foozy@708: $B!VMM<0!W$H$O!"(B
foozy@708: $BC/$+$K$h$C$F=q$+$l$F!"(B
foozy@708: Mercurial $B$,C5$7=P$;$k2?=h$+$K%$%s%9%H!<%k$5$l$?!"(B
foozy@708: $B;vA0$KMQ0U$5$l$?%F%s%W%l!<%H$N$3$H$G$9!#(B
foozy@708: 
foozy@708: Mercurial $B$KF1:-$5$l$?!VMM<0!W$r8+$kA0$K!"(B
foozy@708: Mercurial $B$NI8=`E*$J=PNO$r8+$F$_$^$7$g$&!#(B
foozy@708: 
foozy@708: \interaction{template.simple.normal}
foozy@708: 
foozy@708: $B$3$N=PNO$OM-1W$G$O$"$j$^$9$,!"(B
foozy@708: $B%A%'%s%8%;%C%HKh$K#59T$H$$$&B?$/$NI=<(NN0h$,I,MW$G$9(B
foozy@708: \texttt{compact} $BMM<0$O!"(B
foozy@708: $BI=BjEy$r>J$/$3$H$G!"(B
foozy@708: $B$3$N=PNO$r#39T$KDc8:$7$^$9!#(B
foozy@708: 
foozy@708: \interaction{template.simple.compact}
foozy@708: 
foozy@708: \texttt{changelog} $BMM<0$+$i$O!"(B
foozy@708: Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$N;}$DI=8=NO$r3@4V8+$k$3$H$,$G$-$^$9!#(B
foozy@708: $B$3$NMM<0$O!"(B
foozy@708: GNU $B%W%m%8%'%/%H$N(B 
foozy@708: changelog $B%,%$%I%i%$%s(B\cite{web:changelog}$B$K1h$C$?=PNO$r9T$$$^$9!#(B
foozy@708: 
foozy@708: \interaction{template.simple.changelog}
foozy@708: 
foozy@708: Mercurial $B$N4{Dj=PNOMM<0$,(B
foozy@708: \texttt{default} $B$H$$$&L>A0$G$"$k$3$H$rCN$C$F$b6C$/$[$I$N$3$H$OL5$$$G$7$g$&!#(B
foozy@708: 
foozy@708: \subsection{Setting a default style}
foozy@708: 
foozy@708: $B9%$_$NMM<0$NL>A0$r(B \hgrc\ $B%U%!%$%k$G;XDj$9$k$3$H$G!"(B
foozy@708: Mercurial $B$,%3%^%s%I<B9T$N:]$K;HMQ$9$k=PNOMM<0$rJQ$($k;v$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \begin{codesample2}
foozy@708:   [ui]
foozy@708:   style = compact
foozy@708: \end{codesample2}
foozy@708: 
foozy@708: $B<+J,<+?H$GMM<0$rDj5A$7$?>l9g!"(B
foozy@708: $B<+J,$NMM<0%U%!%$%k$X$N%Q%9$r;XDj$9$kJ}K!$H!"(B
foozy@708: $B<+J,$NMM<0%U%!%$%k$r(B Mercurial $B$,C5$7=P$;$k>l=j$X%3%T!<$9$kJ}K!(B
foozy@708: $B!J0lHL$K$O(B Mercurial $B$,%$%s%9%H!<%k$5$l$?%G%#%l%/%H%jD>2<$N(B
foozy@708: \texttt{templates} $B%G%#%l%/%H%j!K$N$I$A$i$G$G$b!"(B
foozy@708: $B<+J,$NMM<0%U%!%$%k$r;H$&$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \section{Commands that support styles and templates}
foozy@708: 
foozy@708: ``\texttt{log}$BE*$J(B'' $BA4$F$N(B Mercurial $B%3%^%s%I$KBP$7$F!"(B
foozy@708: $BMM<0$d%F%s%W%l!<%H$rE,MQ$G$-$^$9!#(B
foozy@708: $BNc$($P!"(B\hgcmd{incoming}$B!"(B\hgcmd{log}$B!"(B\hgcmd{outgoing}
foozy@708: $B$*$h$S(B \hgcmd{tip} $B$,$=$&$G$9(B\footnote{$BLuCm(B:
foozy@708: Mercurial 0.9.5 $BHG;~E@$G$O!"$3$l0J30$K(B
foozy@708: \hgcmd{heads} $B$*$h$S(B \hgcmd{parents} 
foozy@708: $B$,%F%s%W%l!<%H$r%5%]!<%H$7$F$$$^$9!#(B}$B!#(B
foozy@708: 
foozy@708: $BI.<T$,$3$N%^%K%e%"%k$r<9I.$7$F$$$k;~E@$G$O!"(B
foozy@708: $BMM<0$d%F%s%W%l!<%H$KBP1~$7$F$$$k%3%^%s%I$O!"(B
foozy@708: $B$=$lDxB?$/$"$j$^$;$s!#(B
foozy@708: $B$7$+$7!"BP1~:Q$_$N%3%^%s%I$O!"(B
foozy@708: $B=PNO$N%+%9%?%^%$%:$,I,MW@-$,Hs>o$K9b$$%3%^%s%I72$G$7$?$N$G!"(B
foozy@708: Mercurial $B%f!<%6$N%3%_%e%K%F%#$+$i$O!"(B
foozy@708: $BB>$N%3%^%s%I$K$*$1$kMM<0$d%F%s%W%l!<%H$X$NBP1~$NMWK>$O!"(B
foozy@708: $B:#$N$H$3$m$"$^$j$"$j$^$;$s!#(B
foozy@708: 
foozy@708: \section{The basics of templating}
foozy@708: 
foozy@708: Mercurial $B$G8@$&%F%s%W%l!<%H$H$O!"(B
foozy@708: $BBg;(GD$K8@$&$J$i0lJR$N%F%-%9%H$G$9!#(B
foozy@708: $B7h$7$FJQ99$5$l$J$$ItJ,$,$"$k0lJ}$G!"(B
foozy@708: $BI,MW$K1~$8$F(B\emph{$BE83+(B}$B$d?7$?$J%F%-%9%H$G$NCV49$,<B;\$5$l$^$9!#(B
foozy@708: 
foozy@708: $B>\:Y$r@bL@$9$kA0$K!"(B
foozy@708: Mercurial $B$NDL>o=PNO$N4JC1$JNc$r$b$&0lEY8+$F$_$^$7$g$&!#(B
foozy@708: 
foozy@708: \interaction{template.simple.normal}
foozy@708: 
foozy@708: $B$=$l$G$O!"(B
foozy@708: $B=PNO$rJQ$($k$?$a$N%F%s%W%l!<%H$r;XDj$7$F!"(B
foozy@708: $BF1$8%3%^%s%I$r<B9T$7$F$_$^$7$g$&!#(B
foozy@708: 
foozy@708: \interaction{template.simple.simplest}
foozy@708: 
foozy@708: $B>e5-$NNc$O!"2DG=$J8B$j:G$b4JC1$J%F%s%W%l!<%H$H$7$F!"(B
foozy@708: $B%A%'%s%8%;%C%HKh$KI=<($5$l$k@EE*$J%F%-%9%H$r;XDj$9$k$@$1$NNc$G$9!#(B
foozy@708: \hgcmd{log} $B%3%^%s%I$KBP$9$k(B
foozy@708: \hgopt{log}{--template} $B%*%W%7%g%s;XDj$O!"(B
foozy@708: $B%A%'%s%8%;%C%HKh$NI=<($N:]$K;HMQ$9$k%F%s%W%l!<%H$H$7$F!"(B
foozy@708: $B;XDj$5$l$?%F%-%9%H$r;HMQ$9$k$3$H$r(B Mercurial $B$K;X<($7$^$9!#(B
foozy@708: 
foozy@708: $B>e5-$N%F%s%W%l!<%HJ8;zNs$O!"(B``\Verb+\n+'' $B$G=*N;$7$F$$$kE@$KCm0U$7$F$/$@$5$$!#(B
foozy@708: $B$3$l$O(B\emph{$B%(%9%1!<%W%7!<%1%s%9(B}$B$H8F$P$l$k$b$N$G!"(B
foozy@708: $B8D!9$N%F%s%W%l!<%HMWAG$N=*C<$G2~9T$rI=<($9$k$3$H$r(B
foozy@708: Mercurial $B$K;X<($7$^$9!#(B
foozy@708: $B$3$N2~9T$r>JN,$7$?>l9g!"(B
foozy@708: Mercurial $B$O8D!9$N=PNOMWAG$rC10l9T$G=PNO$7$^$9!#(B
foozy@708: $B%(%9%1!<%W%7!<%1%s%9$K4X$9$k>\:Y$O!"(B
foozy@708: \ref{sec:template:escape}~$B@a$r;2>H$7$F$/$@$5$$!#(B
foozy@708: 
foozy@708: $B>o$K8GDj$5$l$?J8;zNs$rI=<($9$k%F%s%W%l!<%H$O!"$"$^$jM-MQ$H$O8@$($^$;$s$N$G!"(B
foozy@708: $B$b$&>/$7J#;($J$b$N$KD)@o$7$F$_$^$7$g$&!#(B
foozy@708: 
foozy@708: \interaction{template.simple.simplesub}
foozy@708: 
foozy@708: $B$4Mw$NDL$j!"(B
foozy@708: $B%F%s%W%l!<%HCf$N(B ``\Verb+{desc}+'' $BJ8;zNs$O!"(B
foozy@708: $B%A%'%s%8%;%C%HKh$N%m%0%a%C%;!<%8$GCV49$5$l$F=PNO$5$l$^$9!#(B
foozy@708: $BGH3g8L!J(B``\texttt{\{}'' $B5Z$S(B ``\texttt{\}}''$B!K(B
foozy@708: $B$G0O$^$l$?%F%-%9%H$,8!=P$5$l$?:]$K$O!"(B
foozy@708: $B$I$s$J%F%-%9%H$,0O$^$l$F$$$?>l9g$G$b>o$K!"(B
foozy@708: $B3g8L$*$h$S%F%-%9%HItJ,$NE83+$,(B Mercurial $B$K$h$j;n$_$i$l$^$9!#(B
foozy@708: $BGH3g8L$=$N$b$N$rI=<($7$?$$>l9g$O!"(B
foozy@708: \ref{sec:template:escape}~$B@a$G=R$Y$kJ}K!$G!"(B
foozy@708: $BGH3g8L$r%(%9%1!<%W$7$J$1$l$P$J$j$^$;$s!#(B
foozy@708: 
foozy@708: \section{Common template keywords}
foozy@708: \label{sec:template:keyword}
foozy@708: 
foozy@708: $B0J2<$N%-!<%o!<%I$r;HMQ$9$k$3$H$G!"(B
foozy@708: $B$9$0$K$G$b4JC1$J%F%s%W%l!<%H$r=q$/$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \begin{description}
foozy@708: 
foozy@708: \item[\tplkword{author}] $BJ8;zNs!#(B
foozy@708:   $B%A%'%s%8%;%C%H$N:n@.<T!#(B
foozy@708:   $B%A%'%s%8%;%C%H:n@.8e$OJQ99$5$l$^$;$s!#(B
foozy@708: 
foozy@708: \item[\tplkword{branches}] $BJ8;zNs!#(B
foozy@708:   $B%A%'%s%8%;%C%H$,%3%_%C%H$5$l$?%V%i%s%A$NL>A0!#(B
foozy@708:   $B%V%i%s%AL>$,(B \texttt{default} $B$N>l9g$O6u$G$9!#(B
foozy@708: 
foozy@708: \item[\tplkword{date}] $BF|IU>pJs!#(B
foozy@708:   $B%A%'%s%8%;%C%H$,%3%_%C%H$5$l$?F|;~!#(B
foozy@708:   $B$3$NCM$O2DFI@-$,(B\emph{$B$"$j$^$;$s(B}$B$N$G!"(B
foozy@708:   $BE,@Z$KJ8;zNs2=$9$k%U%#%k%?$KEO$9I,MW$,$"$j$^$9!#(B
foozy@708:   $B%U%#%k%?$K4X$9$k>\:Y$O(B\ref{sec:template:filter}~$B@a$r;2>H$7$F$/$@$5$$!#(B
foozy@708:   $BF|;~$O?tCM$NBP$H$7$FI=$5$l$^$9!#(B
foozy@708:   $B:G=i$N?tCM$O(B Unix UTC $B%?%$%`%9%?%s%W!J(B1970 $BG/(B 1 $B7n(B 1 $BF|$+$i$N7P2aIC!K$G!"(B
foozy@708:   $B#2$DL\$N?tCM$O%3%_%C%H$N:]$N(B UTC $B$+$i$N%?%$%`%>!<%s%*%U%;%C%HIC?t$G$9!#(B
foozy@708: 
foozy@708: \item[\tplkword{desc}] $BJ8;zNs!#(B
foozy@708:   $B%A%'%s%8%;%C%H$N%m%0%a%C%;!<%8!#(B
foozy@708: 
foozy@708: \item[\tplkword{files}] $BJ8;zNs%j%9%H!#(B
foozy@708:   $BEv3:%A%'%s%8%;%C%H$GJQ99!&DI2C$J$$$7:o=|$5$l$?A4$F$N%U%!%$%k!#(B
foozy@708: 
foozy@708: \item[\tplkword{file\_adds}] $BJ8;zNs%j%9%H!#(B
foozy@708:   $BEv3:%A%'%s%8%;%C%H$GDI2C$5$l$?%U%!%$%k!#(B
foozy@708: 
foozy@708: \item[\tplkword{file\_dels}] $BJ8;zNs%j%9%H!#(B
foozy@708:   $BEv3:%A%'%s%8%;%C%H$G:o=|$5$l$?%U%!%$%k!#(B
foozy@708: 
foozy@708: \item[\tplkword{node}] $BJ8;zNs!#(B
foozy@708:   $B%A%'%s%8%;%C%H<1JLMQ%O%C%7%eCM$r#4#0J8;z$N#1#6?J?tJ8;zNs2=$7$?$b$N!#(B
foozy@708: 
foozy@708: \item[\tplkword{parents}] $BJ8;zNs%j%9%H!#(B
foozy@708:   $B%A%'%s%8%;%C%H$N?F!#(B
foozy@708: 
foozy@708: \item[\tplkword{rev}] $B@0?tCM!#(B
foozy@708:   $B%j%]%8%H%j%m!<%+%k$J%A%'%s%8%;%C%H$N%j%S%8%g%sHV9f!#(B
foozy@708: 
foozy@708: \item[\tplkword{tags}] $BJ8;zNs%j%9%H!#(B
foozy@708:   $BEv3:%A%'%s%8%;%C%H$K4XO"IU$1$i$l$?%?%0!#(B
foozy@708: 
foozy@708: \end{description}
foozy@708: 
foozy@708: $B4v$D$+<B83$7$F$_$k$3$H$G!"(B
foozy@708: $B$3$l$i$N%-!<%o!<%I$r;HMQ$7$?:]$K4|BT$5$l$kF0:n$r8+$k$3$H$,$G$-$^$9!#(B
foozy@708: $B?^(B~\ref{fig:template:keywords}$B$r;2>H$7$F$/$@$5$$!#(B
foozy@708: 
foozy@708: \begin{figure}
foozy@708:   \interaction{template.simple.keywords}
foozy@708:   \caption{Template keywords in use}
foozy@708:   \label{fig:template:keywords}
foozy@708: \end{figure}
foozy@708: 
foozy@708: $BA0=R$7$?$h$&$K!"(B
foozy@708: \tplkword{date} $B%-!<%o!<%I$O2DFI@-$N$"$k=PNO$r@8@.$7$^$;$s$N$G!"(B
foozy@708: $BFCJL07$$$9$kI,MW$,$"$j$^$9!#(B
foozy@708: $B$=$N$?$a$K$O(B \emph{filter} $B$r;H$&I,MW$,$"$j$^$9$,!"(B
foozy@708: $B>\:Y$O(B \ref{sec:template:filter}~$B@a$r;2>H$7$F$/$@$5$$!#(B
foozy@708: 
foozy@708: \interaction{template.simple.datekeyword}
foozy@708: 
foozy@708: \section{Escape sequences}
foozy@708: \label{sec:template:escape}
foozy@708: 
foozy@708: Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$O!"(B
foozy@708: $B:G$b9-$/;H$o$l$F$$$kJ8;zNs%(%9%1!<%W%7!<%1%s%9$rG'<1$7$^$9!#(B
foozy@708: $B%P%C%/%9%i%C%7%e!J(B``\Verb+\+''$B!K$r8!CN$7$?:]$K$O!"(B
foozy@708: $B$=$l$KB3$/J8;z$r8+$F!"(B
foozy@708: $B$=$l$i#2$D$NJ8;z$r0J2<$K<($9$h$&$JC1FH$NJ8;z$KCV49$7$^$9!#(B
foozy@708: 
foozy@708: \begin{description}
foozy@708: \item[\Verb+\textbackslash\textbackslash+] $B%P%C%/%9%i%C%7%e!J(B``\Verb+\+''$B!K(B
foozy@708:   $B!?(BASCII~134$B!#(B
foozy@708: \item[\Verb+\textbackslash n+] $B2~9T!?(BASCII~12.
foozy@708: \item[\Verb+\textbackslash r+] $B9TF,!?(BASCII~15.
foozy@708: \item[\Verb+\textbackslash t+] $B%?%V!?(BASCII~11.
foozy@708: \item[\Verb+\textbackslash v+] $B?bD>%?%V!?(BASCII~13.
foozy@708: \item[\Verb+\textbackslash \{+] $B3+$-GH3g8L!J(B``\Verb+{+''$B!K!?(BASCII~173.
foozy@708: \item[\Verb+\textbackslash \}+] $BJD$8GH3g8L!J(B``\Verb+}+''$B!K!?(BASCII~175.
foozy@708: \end{description}
foozy@708: 
foozy@708: $B>e5-$N$h$&$K!"(B
foozy@708: ``\Verb+\+''$B!"(B``\Verb+{+'' $B$J$$$7(B ``\Verb+{+'' 
foozy@708: $B$=$N$b$N$r4^$`%F%s%W%l!<%H$r;HMQ$7$?$$>l9g!"(B
foozy@708: $B$3$l$i$O%(%9%1!<%W$5$l$J$1$l$P$J$j$^$;$s!#(B
foozy@708: 
foozy@708: \section{Filtering keywords to change their results}
foozy@708: \label{sec:template:filter}
foozy@708: 
foozy@708: $B%F%s%W%l!<%HE83+$K$*$1$k7k2L$N$&$A$N4v$D$+$O!"(B
foozy@708: $BD>$A$K;H$($k$[$I4JJX$J$b$N$G$O$"$j$^$;$s!#(B
foozy@708: Mercurial $B$O!"(B
foozy@708: $B%-!<%o!<%I$NE83+7k2L$rJQ99$9$k$?$a$K!"(B
foozy@708: $BG$0U$N(B\emph{$B%U%#%k%?(B}$B$NO":?$r;XDj$9$k$3$H$r5a$a$F$-$^$9!#(B
foozy@708: $B>e5-$N<B9TNc$K$*$$$F4{$K!"(B
foozy@708: $B0lHLE*$J%U%#%k%?$G$"$k(B \tplkwfilt{date}{isodate} $B$r!"(B
foozy@708: $BF|IU$rFI$a$k$h$&$K$9$k$?$a$K;HMQ$7$F$$$^$9!#(B
foozy@708: 
foozy@708: Mercurial $B$,%5%]!<%H$9$k:G$b0lHLE*$K;HMQ$5$l$k%U%#%k%?$N%j%9%H$r!"(B
foozy@708: $B0J2<$K<($7$^$9!#(B
foozy@708: $BG$0U$N%F%-%9%H$KE,MQ$G$-$k%U%#%k%?$b$"$l$P!"(B
foozy@708: $BFCDj$N>u672<$G$N$_E,MQ2DG=$J$b$N$b$"$j$^$9!#(B
foozy@708: $B8D!9$N%U%#%k%?$N@bL@$O!"L>A0$KB3$$$FMxMQ2DG=$J>u67$rDs<($7!"(B
foozy@708: $B$=$l$K8z2L$N@bL@$,B3$/7A<0$H$J$C$F$$$^$9!#(B
foozy@708: 
foozy@708: \begin{description}
foozy@708: \item[\tplfilter{addbreaks}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
foozy@708:   XHTML $B$N(B ``\Verb+<br/>+'' $B%?%0$r!":G=*9T$r=|$/3F9T$NKvHx$KIUM?$7$^$9!#(B
foozy@708:   $BNc$($P(B ``\Verb+foo\nbar+'' $B$O(B ``\Verb+foo<br/>\nbar+'' $B$H$J$j$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{date}{age}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
foozy@708:   $B8=:_;~9o$KBP$9$kF|IU$NG/Np$rIA2h$7$^$9!#(B
foozy@708:   ``\Verb+10 minutes+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplfilter{basename}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B
foozy@708:   \tplkword{files} $B%-!<%o!<%I$d$=$NAjBPCM$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
foozy@708:   $B%F%-%9%H$r%Q%9$H$7$F07$$!"$=$N%Y!<%9%M!<%`$rJV$7$^$9!#(B
foozy@708:   $BNc$($P(B ``\Verb+foo/bar/baz+'' $B$O(B ``\Verb+baz+'' $B$H$J$j$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{date}{date}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
foozy@708:   Unix $B$N(B \tplkword{date} $B%3%^%s%I$HF1Ey$N%U%)!<%^%C%H$GF|IU$rIA2h$7$^$9$,!"(B
foozy@708:   $B%?%$%`%>!<%s$r4^$_$^$9!#(B
foozy@708:   ``\Verb+Mon Sep 04 15:13:13 2006 -0700+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{author}{domain}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B
foozy@708:   \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
foozy@708:   $BEE;R%a!<%k%"%I%l%9$H;W$7$-:G=i$NJ8;zNs$r8+$D$1=P$7!"(B
foozy@708:   $B%I%a%$%sItJ,$N$_$r<h$j=P$7$^$9!#(B
foozy@708:   $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B
foozy@708:   ``\Verb+serpentine.com+'' $B$H$J$j$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{author}{email}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B
foozy@708:   \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
foozy@708:   $BEE;R%a!<%k%"%I%l%9$H;W$7$-:G=i$NJ8;zNs$r8+$D$1=P$7$^$9!#(B
foozy@708:   $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B
foozy@708:   ``\Verb+bos@serpentine.com+'' $B$H$J$j$^$9!#(B
foozy@708: 
foozy@708: \item[\tplfilter{escape}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
foozy@708:   XML/XHTML $B$NFC<lJ8;z$G$"$k(B
foozy@708:   ``\Verb+&+''$B!"(B``\Verb+<+'' $B$*$h$S(B ``\Verb+>+'' $B$r!"(B
foozy@708:   XML $B$N<BBN;2>H7A<0$GCV$-49$($^$9!#(B
foozy@708: 
foozy@708: \item[\tplfilter{fill68}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
foozy@708:   $B%F%-%9%H$r(B 68 $B7e$K<}$^$k$h$&$K9T$r@^$jJV$7$^$9!#(B
foozy@708:   \tplfilter{tabindent} $B%U%#%k%?<B;\8e$b(B 
foozy@708:   80 $B7e$N8GDj%U%)%s%HI}$N2hLL$K<}$a$?$$>l9g!"(B
foozy@708:   \tplfilter{tabindent} $B%U%#%k%?$KEO$9A0$N%F%-%9%H$KE,MQ$9$k$N$,NI$$$G$7$g$&!#(B
foozy@708: 
foozy@708: \item[\tplfilter{fill76}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
foozy@708:   76 $B7e$K<}$^$k$h$&$K9T$r@^$jJV$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplfilter{firstline}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
foozy@708:   $B%F%-%9%H$N:G=i$N9T$r!"2~9TEy$r4^$^$J$$7A<0$G<h$j=P$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{date}{hgdate}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
foozy@708:   $B2DFI@-$N$"$k?tCM$NAH$H$7$FF|IU$rIA2h$7$^$9!#(B
foozy@708:   ``\Verb+1157407993 25200+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{date}{isodate}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
foozy@708:   ISO~8601 $B7A<0$NJ8;zNs$H$7$FF|IU$rIA2h$7$^$9!#(B
foozy@708:   ``\Verb+2006-09-04 15:13:13 -0700+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplfilter{obfuscate}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B
foozy@708:   \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
foozy@708:   $BF~NO%F%-%9%H$KBP1~$9$k(B XML $B<BBN;2>H%7!<%1%s%9$r@8@.$7$^$9!#(B
foozy@708:   $BE57?E*$JEE;R%a!<%k%"%I%l%9<}=8$r9T$&%9%Q%`%\%C%H(B
foozy@708:   $B!J(Bspambot$B!K$KBP$9$kBP93:v$N#1$D$H$7$FMxMQ2DG=$G$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{author}{person}] $BG$0U$NJ8;zNs$KE,MQ2DG=$G$9$,!"(B
foozy@708:   \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
foozy@708:   $BEE;R%a!<%k%"%I%l%9$h$jA0$NItJ,$r<h$j=P$7$^$9!#(B
foozy@708:   $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B
foozy@708:   ``\Verb+Bryan O'Sullivan+'' $B$H$J$j$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{date}{rfc822date}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
foozy@708:   $BEE;R%a!<%k%X%C%@$HF1$87A<0$GF|IU$rIA2h$7$^$9!#(B
foozy@708:   ``\Verb+Mon, 04 Sep 2006 15:13:13 -0700+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{node}{short}] $B%A%'%s%8%;%C%H%O%C%7%eCM$KE,MQ2DG=$G$9!#(B
foozy@708:   $B%A%'%s%8%;%C%H%O%C%7%e$NC;=L7A<0!"B($A(B 12 $B7e$N(B 16 $B?JJ8;zNs$r@8@.$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{date}{shortdate}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
foozy@708:   $BG/7nF|7A<0$GF|IU$rIA2h$7$^$9!#(B
foozy@708:   ``\Verb+2006-09-04+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplfilter{strip}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
foozy@708:   $BKAF,$J$i$S$KKvHx$N6uGrJ8;z$rA4$F=|30$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplfilter{tabindent}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
foozy@708:   $B:G=i$N9T$r=|$/A4$F$N9T$,%?%VJ8;z$G;O$^$k$h$&$K$7$^$9!#(B
foozy@708: 
foozy@708: \item[\tplfilter{urlescape}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
foozy@708:   URL $B2r@O$N:]$K(B``$BFC<lJ8;z(B''$B$H$5$l$kJ8;z$r%(%9%1!<%W$7$^$9!#(B
foozy@708:   $BNc$($P(B \Verb+foo bar+ $B$O(B \Verb+foo%20bar+ $B$K$J$j$^$9!#(B
foozy@708: 
foozy@708: \item[\tplkwfilt{author}{user}] $BG$0U$NJ8;zNs$KE,MQ2DG=$G$9$,!"(B
foozy@708:   \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
foozy@708:   $BEE;R%a!<%k%"%I%l%9$+$i(B``$B%f!<%6(B''$BItJ,$r<h$j=P$7$^$9!#(B
foozy@708:   $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B
foozy@708:   ``\Verb+bos+'' $B$H$J$j$^$9!#(B
foozy@708: 
foozy@708: \end{description}
foozy@708: 
foozy@708: \begin{figure}
foozy@708:   \interaction{template.simple.manyfilters}
foozy@708:   \caption{Template filters in action}
foozy@708:   \label{fig:template:filters}
foozy@708: \end{figure}
foozy@708: 
foozy@708: \begin{note}
foozy@708:   $BE,MQBP>]30$N%G!<%?$KBP$7$F%U%#%k%?$NE,MQ$r;n$_$?>l9g!"(B
foozy@708:   Mercurial $B$O<B9T$K<:GT$7$F(B Python $B$NNc30$rI=<($7$^$9!#(B
foozy@708:   $BNc$($P!"(B\tplkword{desc} $B%-!<%o!<%I$K(B
foozy@708:   \tplkwfilt{date}{isodate} $B%U%#%k%?$rE,MQ$9$k$N$O$h$m$7$/$"$j$^$;$s!#(B
foozy@708: \end{note}
foozy@708: 
foozy@708: \subsection{Combining filters}
foozy@708: 
foozy@708: $B=jDj$N7A<0$G$N=PNO$rF@$k$?$a$K!"(B
foozy@708: $B4JC1$K%U%#%k%?$rAH$_9g$o$;$k$3$H$,$G$-$^$9!#(B
foozy@708: $B0J2<$NNc$G$O!"%m%0%a%C%;!<%8$NKAF,!&KvHx$N6uGr$r=|30$7!"(B
foozy@708: 68 $B7e$K<}$^$k$h$&$K2~9T$7$?8e$G!"(B
foozy@708: $B$5$i$K#8J8;zJ,!J%?%VJ8;z$,47=,E*$K#8J8;z$H$7$F07$o$l$k(B
foozy@708: Unix $BE*$J4D6-$G$O!K$N;z2<$2$,!"(B
foozy@708: $B%U%#%k%?O":?$K$h$j<B;\$5$l$^$9!#(B
foozy@708: 
foozy@708: \interaction{template.simple.combine}
foozy@708: 
foozy@708: $B%F%s%W%l!<%H$K$*$1$k(B``\Verb+\t+''$B!J%?%VJ8;z!K$NMxMQ$O!"(B
foozy@708: $B:G=i$N9T$N6/@)E*$J;z2<$2$r9T$&$?$a$N$b$N$G$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B
foozy@708: \tplkword{tabindent} $B$,:G=i$N9T(B\emph{$B0J30$N(B}$BA4$F$N9T$r;z2<$2$9$k$?$a$K!"(B
foozy@708: $B$3$N%?%VJ8;z$,I,MW$G$9!#(B
foozy@708: 
foozy@708: $BO":?$K$*$1$k%U%#%k%?$N=g=x$,=EMW$G$"$kE@$KN10U$7$F$/$@$5$$!#(B
foozy@708: $B:G=i$N%U%#%k%?$,%-!<%o!<%I$NCV497k2L$KE,MQ$5$l!"(B
foozy@708: $B#2$DL\$N%U%#%k%?$,:G=i$N%U%#%k%?$NE,MQ7k2L$KE,MQ$5$l$k!"(B
foozy@708: $B$H$$$&6q9g$G$9!#(B
foozy@708: $BNc$($P!"(B
foozy@708: \Verb+fill68|tabindent+ $B$H$$$&5-=R$O(B
foozy@708: \Verb+tabindent|fill68+ $B$H$OA4$/0c$C$?7k2L$H$J$j$^$9!#(B
foozy@708: 
foozy@708: \section{From templates to styles}
foozy@708: 
foozy@708: $B%3%^%s%I9T$G$N%F%s%W%l!<%H;XDj$O!"(B
foozy@708: $B<jAa$/4JC1$K=PNO$r@07A$9$k<jCJ$rDs6!$7$^$9!#(B
foozy@708: $B$7$+$7!"%F%s%W%l!<%H$O>iD9$K@.$j$,$A$G$9$+$i!"(B
foozy@708: $B%F%s%W%l!<%H$KL>A0IU$1$G$-$l$PJXMx$K$J$j$^$9!#(B
foozy@708: $BMM<0!J(Bsytle$B!K%U%!%$%k$O!"L>A0$,IU$1$i$l!"(B
foozy@708: $B%U%!%$%k$KJ]B8$5$l$?%F%s%W%l!<%H$N$3$H$G$9!#(B
foozy@708: 
foozy@708: $B$=$l0J>e$K!"(B
foozy@708: $B%3%^%s%I9T$G$N(B \hgopt{log}{--template} $B%*%W%7%g%s;HMQ$G$O0z$-=P$;$J$+$C$?(B
foozy@708: Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$NG=NO$r!"(B
foozy@708: $BMM<0%U%!%$%k$rMQ$$$k$3$H$G0z$-=P$9$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \subsection{The simplest of style files}
foozy@708: 
foozy@708: $B0J2<$K<($94JC1$JMM<0%U%!%$%k$O!"(B
foozy@708: $B#19T$@$1$N$b$N$G$9!#(B
foozy@708: 
foozy@708: \interaction{template.simple.rev}
foozy@708: 
foozy@708: $B$3$NMM<05-=R$O!"(B
foozy@708: ``$B%A%'%s%8%;%C%H$rI=<($9$k:]$K$O!"(B
foozy@708: $B1&JU$N%F%-%9%H$r%F%s%W%l!<%H$H$7$F;HMQ$;$h(B''
foozy@708: $B$H(B Mercurial $B$K;X<($7$^$9!#(B
foozy@708: 
foozy@708: \subsection{Style file syntax}
foozy@708: 
foozy@708: $BMM<0%U%!%$%k$NJ8K!$O4JC1$G$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $B%U%!%$%k$O0l9T$E$D=hM}$5$l$^$9!#(B
foozy@708: 
foozy@708: \item $B9TF,$*$h$S9TKv$N6uGr$OL5;k$5$l$^$9!#(B
foozy@708: 
foozy@708: \item $B6u9T$OFI$_Ht$P$5$l$^$9!#(B
foozy@708: 
foozy@708: \item ``\texttt{\#}'' $B$J$$$7(B ``\texttt{;}'' $B$N$$$:$l$+$G;O$^$k9T$O!"(B
foozy@708:   $B9TA4BN$,%3%a%s%H$H$_$J$5$l!"6u9T$HF1MM$KFI$_Ht$P$5$l$^$9!#(B
foozy@708: 
foozy@708: \item $B9T$O%-!<%o!<%I$G3+;O$5$l$^$9!#(B
foozy@708:   $B%-!<%o!<%I$O1Q;z$J$$$72<@~!J(Bunderscore$B!K$G3+;O$5$l!"(B
foozy@708:   $BG$0U8D?t$N1Q?t;z$J$$$72<@~$,B3$-$^$9(B
foozy@708:   $B!J@55,I=8=$G=q$/$J$i!"(B
foozy@708:   $B%-!<%o!<%I$O(B ``\Verb+[A-Za-z_][A-Za-z0-9_]*+.'' 
foozy@708:   $B$K9gCW$7$J$1$l$P$J$j$^$;$s!K!#(B
foozy@708: 
foozy@708: \item $B%-!<%o!<%I$KB3$/MWAG$OJ8;z(B ``\texttt{=}'' $B$G$J$1$l$P$J$j$^$;$s$,!"(B
foozy@708:   $BA08e$KG$0U8D$N6uGrJ8;z$,$"$C$F$b9=$$$^$;$s!#(B
foozy@708: 
foozy@708: \item $B9T$N;D$jItJ,$,0zMQId!J%7%s%0%k%/%)!<%H$J$$$7%@%V%k%/%)!<%H!K(B
foozy@708:   $B$G0O$^$l$F$$$k>l9g!"(B
foozy@708:   $B$=$NItJ,$O%F%s%W%l!<%H$NK\BN$H$_$J$5$l$^$9!#(B
foozy@708: 
foozy@708: \item $B9T$N>h$jItJ,$,0zMQId$G0O$^$l$F(B\emph{$B$$$J$$(B}$B>l9g!"(B
foozy@708:   $B$=$NItJ,$O!"(B
foozy@708:   $B%F%s%W%l!<%HK\BN$rFbMF$H$7$F;}$D%U%!%$%k$N%U%!%$%kL>$H$_$J$5$l$^$9!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: \section{Style files by example}
foozy@708: 
foozy@708: $BMM<0%U%!%$%k$N5-=R$r@bL@$9$k$?$a$K!"(B
foozy@708: $B4v$D$+$NNc$r<($7$^$9!#(B
foozy@708: $BMM<0%U%!%$%k0l<0$rDL$7$FFI$`$h$j$b!"(B
foozy@708: $BHs=j$K4JC1$JNc$+$i;O$a$F!"(B
foozy@708: $B4v$D$+$NJ#;($JNc$rDL$7FI$_$9$k$3$H$G!"(B
foozy@708: $BDL>o$NMM<0%U%!%$%k:n@.<j=g$r<($=$&$H;W$$$^$9!#(B
foozy@708: 
foozy@708: \subsection{Identifying mistakes in style files}
foozy@708: 
foozy@708: $BMM<0%U%!%$%kCf$KLdBj$,$"$C$?>l9g!"(B
foozy@708: Mercurial $B$O$=$C$1$J$$%(%i!<%a%C%;!<%8$rI=<($7$^$9$,!"(B
foozy@708: $B0UL#$9$k$H$3$m$,$o$+$C$F$7$^$($P!"(B
foozy@708: $B$=$N%a%C%;!<%8$OHs>o$KM-MQ$G$9!#(B
foozy@708: 
foozy@708: \interaction{template.svnstyle.syntax.input}
foozy@708: 
foozy@708: \filename{broken.style} $B$O!"(B
foozy@708: \texttt{changeset} $B%-!<%o!<%I$rDj5A$7$h$&$H$7$F$$$k$b$N$N!"(B
foozy@708: $B$=$NFbMF$,5-=R$5$l$F$$$J$$E@$KCmL\$7$F$/$@$5$$!#(B
foozy@708: $B$3$N$h$&$JMM<0%U%!%$%k$,;XDj$5$l$?>l9g!"(B
foozy@708: Mercurial $B$OB(:B$K%a%C%;!<%8$rI=<($7$^$9!#(B
foozy@708: 
foozy@708: \interaction{template.svnstyle.syntax.error}
foozy@708: 
foozy@708: $B$3$N%a%C%;!<%8$O0R05E*$K8+$($^$9$,!"(B
foozy@708: $BFI$_2r$/$N$O$=$l$[$IFq$7$/$"$j$^$;$s!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $B:G=i$NMWAG$O!"C1$K(B Mercurial $B$,(B``$B<B9T$r$"$-$i$a$^$7$?(B''
foozy@708:   $B$HDLCN$7$F$$$^$9!#(B
foozy@708:   \begin{codesample4}
foozy@708:     \textbf{abort:} broken.style:1: parse error
foozy@708:   \end{codesample4}
foozy@708: 
foozy@708: \item $B<!$NMWAG$O!"%(%i!<$NMW0x$,3JG<$5$l$?MM<0%U%!%$%k$NL>A0$G$9!#(B
foozy@708:   \begin{codesample4}
foozy@708:     abort: \textbf{broken.style}:1: parse error
foozy@708:   \end{codesample4}
foozy@708: 
foozy@708: \item $B%U%!%$%kL>$N<!$O!"%(%i!<$,H/@8$7$?9THV9f$K$J$j$^$9!#(B
foozy@708:   \begin{codesample4}
foozy@708:     abort: broken.style:\textbf{1}: parse error
foozy@708:   \end{codesample4}
foozy@708: 
foozy@708: \item $B:G8e$K!"LdBj$N@bL@$,5-=R$5$l$^$9!#(B
foozy@708:   \begin{codesample4}
foozy@708:     abort: broken.style:1: \textbf{parse error}
foozy@708:   \end{codesample4}
foozy@708:   $BLdBj$N@bL@$O!J$3$NNc$N$h$&$K!K>o$KL@3N$G$"$k$H$O8B$j$^$;$s$,!"(B
foozy@708:   $B0E9f$a$$$?$b$N$G$"$C$?$H$7$F$b!"(B
foozy@708:   $BMM<0%U%!%$%kCf$NLdBj$H$J$k9T$rL\;k3NG'$7$F4V0c$$$r8+$D$1$k>e$G$O!"(B
foozy@708:   $BKX$I$N>l9g$O<h$k$KB-$i$J$$@bL@$G$9!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: \subsection{Uniquely identifying a repository}
foozy@708: 
foozy@708: $BC;$$J8;zNs$r<1JL;R$H$7$F(B
foozy@708: Mercurial $B%j%]%8%H%j$r(B``$B35$M0l0U$K(B''$B<1JL(B\footnote{$BLuCm(B:
foozy@708: $B$3$3$G8@$&!V%j%]%8%H%j$N<1JL!W$O!"(B
foozy@708: $B$`$7$m!V%W%m%8%'%/%H$N<1JL!W$K6a$$%K%e%"%s%9$H;W$o$l$^$9!#(B
foozy@708: }$B$7$?$$>l9g!"(B
foozy@708: $B%j%]%8%H%j$N:G=i$N%j%S%8%g%s$r;HMQ$9$k$N$,NI$$$G$7$g$&!#(B
foozy@708: 
foozy@708: \interaction{template.svnstyle.id} 
foozy@708: 
foozy@708: $B$3$NCM$O0l0U$G$"$k$3$H$,J]>Z$5$l$F$$$^$;$s$,!"(B
foozy@708: $B$=$l$G$bB?$/$N>l9g$K$*$$$FM-MQ$G$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $B40A4$K6u$N%j%]%8%H%j$G$O%j%S%8%g%s(B~0$B$,B8:_$7$J$$$?$a!"(B
foozy@708:   $B$3$NJ}K!$O5!G=$7$^$;$s!#(B
foozy@708: 
foozy@708: \item $B0JA0$OJL!9$@$C$?J#?t$N%j%]%8%H%j$r%^!<%8$7$?$b$N$H!"(B
foozy@708:   $B%^!<%8A0$N%j%]%8%H%j$rJ;MQ$7$F$$$k>l9g(B
foozy@708:   $B!J$3$N$h$&$J;vBV$OHs>o$K5)$G$O$"$j$^$9$,!K!"(B
foozy@708:   $B$=$l$i$N%j%]%8%H%j$N4V$G$O!"(B
foozy@708:   $B$3$NJ}K!$K$h$k<1JL$O5!G=$7$^$;$s!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: $B%j%]%8%H%j<1JL;R$NMxMQNc$r0J2<$K<($7$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $B%5!<%P>e$N%j%]%8%H%j$r4IM}$7$F$$$k%G!<%?%Y!<%9$G$N!"(B
foozy@708:   $B%F!<%V%k$K$*$1$k%-!<$H$7$F$N;HMQ(B
foozy@708: 
foozy@708: \item \{\emph{$B%j%]%8%H%j<1JL;R(B}, \emph{$B%j%S%8%g%s<1JL;R(B}\} 
foozy@708:   $B$H$$$&%?%W%k$N0lIt$H$7$F$N;HMQ!#(B
foozy@708:   $B%S%k%I$dB>$N<+F02=$5$l$?=hM}$r<B;\$9$k:]$K!"(B
foozy@708:   $B$3$N%?%W%k>pJs$rJ]B8$7$F$*$/$3$H$G!"(B
foozy@708:   $B8e$K=hM}$r(B``$B:F8=(B''$B$9$k$3$H$,2DG=$G$9!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: \subsection{Mimicking Subversion's output}
foozy@708: 
foozy@708: $BNc$($P(B Subversion $B$N$h$&$J!"(B
foozy@708: $BB>$N9=@.4IM}%D!<%k$N%G%U%)%k%H=PNO7A<0$r$^$M$F$_$^$7$g$&!#(B
foozy@708: 
foozy@708: \interaction{template.svnstyle.short}
foozy@708: 
foozy@708: Subversion $B$N=PNOMM<0$O$+$J$jC1=c$G$9$N$G!"(B
foozy@708: $B=PNOFbMF$r%U%!%$%k$KJ]B8$7!"(B
foozy@708: $B=PNO%F%-%9%HCf$G(B Subversion $B$K$h$j!JF0E*$K!K@8@.$5$l$kItJ,$r!"(B
foozy@708: $BE83+$5$l$k%F%s%W%l!<%HCM(B\footnote{$BLuCm!'(B $B%-!<%o!<%I$N$3$H!)(B
foozy@708: }$B$GCV$-49$($k$N$OMF0W$G$7$g$&!#(B
foozy@708: 
foozy@708: \interaction{template.svnstyle.template}
foozy@708: 
foozy@708: $B$3$N%F%s%W%l!<%H$K$h$k=PNO$,!"(B
foozy@708: Subversion $B$K$h$j@8@.$5$l$k=PNOMM<0$+$i0oC&$9$k>l9g(B\footnote{
foozy@708: $BLuCm!'(B ``a few small ways'' $B$h$j$O(B ``a few small point'' $B$G!"(B
foozy@708: $B!V0oC&$9$k2U=j!W$NJ}$,NI$/$J$$$+!)(B}$B$,4v$D$+$"$j$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item Subversion $B$O!"(B``$B2DFI@-$N$"$k(B''$BF|IU(B
foozy@708:   $B!J>e5-$N=PNONc$K$*$1$k(B ``\texttt{Wed, 27 Sep 2006}''$B!K(B
foozy@708:   $B$r4]3g8L$NCf$KI=<($7$^$9!#(B
foozy@708:   Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$O!"(B
foozy@708:   $B;~9o$H%?%$%`%>!<%s$NL5$$$3$N7A<0$GF|IU$rI=<($9$k<jCJ$rDs6!$7$F$$$^$;$s!#(B
foozy@708: 
foozy@708: \item $B%F%s%W%l!<%HKvHx$K(B
foozy@708:   ``\texttt{-}''$BJ8;z$r0lGU$K;H$C$?9T$NI=<($rG[CV$9$k$3$H$G(B
foozy@708:   Subversion $B$N(B``$BJ,N%(B''$B@~$r$^$M$F$$$^$9!#(B
foozy@708:   Subversion $B$N=PNO$K;w$;$k$?$a!"(B
foozy@708:   $B=PNO$N:G=i$NJ,N%@~I=<($K$O!"(B
foozy@708:   $B%F%s%W%l!<%H%(%s%8%s$N(B
foozy@708:   \tplkword{header} $B%-!<%o!<%I$r;HMQ$7$F$$$^$9!J8e=R$7$^$9!K!#(B\footnote{
foozy@708:   $BLuCm!'$3$l$O(B deviate $B$JE@$G$O$J$$5$$,!D(B }
foozy@708: 
foozy@708: \item Subversion $B$N=PNO$O!"(B
foozy@708:   $B%X%C%@It$K%3%_%C%H%a%C%;!<%8$N9T?t$,I=<($5$l$^$9!#(B
foozy@708:   Mercurial $B$G$O$3$l$KAjEv$9$k>pJs$rI=<($9$k$3$H$,$G$-$^$;$s!#(B
foozy@708:   $B=hM}BP>]$H$J$k%G!<%?$N9T?t$r?t$(>e$2$k%U%#%k%?$r!"(B
foozy@708:   $B%F%s%W%l!<%H%(%s%8%s$,8=;~E@$G$ODs6!$7$F$$$J$$$?$a$G$9!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: Subversion $B$N=PNONc$r85$K!"(B
foozy@708: $B>e5-%F%s%W%l!<%H$N$h$&$J%-!<%o!<%I!&%U%#%k%?$X$NCV$-49$($r9T$&:n6H$O!"(B
foozy@708: $B$;$$$<$$$,#1!A#2J,$G:Q$`:n6H$G$9!#(B
foozy@708: $BMM<0%U%!%$%k$O!"C1$K$3$N%F%s%W%l!<%H$r;2>H$9$l$PNI$$$N$G$9!#(B
foozy@708: 
foozy@708: \interaction{template.svnstyle.style}
foozy@708: 
foozy@708: $B%F%s%W%l!<%H%U%!%$%k%F%-%9%H$rMM<0%U%!%$%k$GD>@\@_Dj$9$k$K$O!"(B
foozy@708: $B0zMQId$G0O$_!"2~9TJ8;z$r(B ``\texttt{\\n}'' $B$GCV$-49$($l$PNI$$$N$G$9$,!"(B
foozy@708: $BMM<0%U%!%$%k$rHs>o$KFI$_Fq$/$7$F$7$^$$$^$9!#(B
foozy@708: $B%F%s%W%l!<%H$rMM<0%U%!%$%k$KD>@\5-=R$9$k$+!"(B
foozy@708: $B%F%s%W%l!<%H%U%!%$%k$K5-=R$7$?$b$N$rMM<0%U%!%$%k$+$i;2>H$9$k$+$r7h$a$k:]$K$O!"(B
foozy@708: $B2DFI@-$r4p=`$H$9$k$N$,NI$$$G$7$g$&!#(B
foozy@708: $BMM<0%U%!%$%k$NBg$-$5$dJ#;($5$,9b$^$k>l9g$O!"(B
foozy@708: $B%F%s%W%l!<%H%F%-%9%H$r5-=R$9$k$N$G$O$J$/!"(B
foozy@708: $B30It%U%!%$%k$K=P$7$F$7$^$$$^$7$g$&!#(B
foozy@708: 
foozy@708: %%% Local Variables: 
foozy@708: %%% mode: latex
foozy@708: %%% TeX-master: "00book"
foozy@708: %%% End: 




