hgbook

view ja/template.tex @ 1051:8e4e523283b5

2 paras about cvs translated
author zhaopingsun
date Tue Nov 10 15:59:27 2009 -0500 (2009-11-10)
parents
children
line source
1 \chapter{Customising the output of Mercurial}
2 \label{chap:template}
4 Mercurial $B$O!"(B
5 $B>pJsI=<($NBN:[$r@)8f$9$k6/NO$J;EAH$_$rDs6!$7$F$$$^$9!#(B
6 $B$3$N;EAH$_$O%F%s%W%l!<%H$K4p$E$$$F$*$j!"(B
7 $B%F%s%W%l!<%H$r;HMQ$9$k$3$H$G!"(B
8 $BC1H/$N%3%^%s%I=PNO$N8GM-2=$b!"(B
9 Mercurial $BAH$_9~$_$N%&%'%V%$%s%?%U%'!<%9$N8+$+$1A4BN$N%+%9%?%^%$%:$b$G$-$^$9!#(B
11 \section{Using precanned output styles}
12 \label{sec:style}
14 Mercurial $B$K$OB(;HMQ$G$-$k=PNO!VMM<0!W$N4v$D$+$,F1:-$5$l$F$$$^$9!#(B
15 $B!VMM<0!W$H$O!"(B
16 $BC/$+$K$h$C$F=q$+$l$F!"(B
17 Mercurial $B$,C5$7=P$;$k2?=h$+$K%$%s%9%H!<%k$5$l$?!"(B
18 $B;vA0$KMQ0U$5$l$?%F%s%W%l!<%H$N$3$H$G$9!#(B
20 Mercurial $B$KF1:-$5$l$?!VMM<0!W$r8+$kA0$K!"(B
21 Mercurial $B$NI8=`E*$J=PNO$r8+$F$_$^$7$g$&!#(B
23 \interaction{template.simple.normal}
25 $B$3$N=PNO$OM-1W$G$O$"$j$^$9$,!"(B
26 $B%A%'%s%8%;%C%HKh$K#59T$H$$$&B?$/$NI=<(NN0h$,I,MW$G$9(B
27 \texttt{compact} $BMM<0$O!"(B
28 $BI=BjEy$r>J$/$3$H$G!"(B
29 $B$3$N=PNO$r#39T$KDc8:$7$^$9!#(B
31 \interaction{template.simple.compact}
33 \texttt{changelog} $BMM<0$+$i$O!"(B
34 Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$N;}$DI=8=NO$r3@4V8+$k$3$H$,$G$-$^$9!#(B
35 $B$3$NMM<0$O!"(B
36 GNU $B%W%m%8%'%/%H$N(B
37 changelog $B%,%$%I%i%$%s(B\cite{web:changelog}$B$K1h$C$?=PNO$r9T$$$^$9!#(B
39 \interaction{template.simple.changelog}
41 Mercurial $B$N4{Dj=PNOMM<0$,(B
42 \texttt{default} $B$H$$$&L>A0$G$"$k$3$H$rCN$C$F$b6C$/$[$I$N$3$H$OL5$$$G$7$g$&!#(B
44 \subsection{Setting a default style}
46 $B9%$_$NMM<0$NL>A0$r(B \hgrc\ $B%U%!%$%k$G;XDj$9$k$3$H$G!"(B
47 Mercurial $B$,%3%^%s%I<B9T$N:]$K;HMQ$9$k=PNOMM<0$rJQ$($k;v$,$G$-$^$9!#(B
49 \begin{codesample2}
50 [ui]
51 style = compact
52 \end{codesample2}
54 $B<+J,<+?H$GMM<0$rDj5A$7$?>l9g!"(B
55 $B<+J,$NMM<0%U%!%$%k$X$N%Q%9$r;XDj$9$kJ}K!$H!"(B
56 $B<+J,$NMM<0%U%!%$%k$r(B Mercurial $B$,C5$7=P$;$k>l=j$X%3%T!<$9$kJ}K!(B
57 $B!J0lHL$K$O(B Mercurial $B$,%$%s%9%H!<%k$5$l$?%G%#%l%/%H%jD>2<$N(B
58 \texttt{templates} $B%G%#%l%/%H%j!K$N$I$A$i$G$G$b!"(B
59 $B<+J,$NMM<0%U%!%$%k$r;H$&$3$H$,$G$-$^$9!#(B
61 \section{Commands that support styles and templates}
63 ``\texttt{log}$BE*$J(B'' $BA4$F$N(B Mercurial $B%3%^%s%I$KBP$7$F!"(B
64 $BMM<0$d%F%s%W%l!<%H$rE,MQ$G$-$^$9!#(B
65 $BNc$($P!"(B\hgcmd{incoming}$B!"(B\hgcmd{log}$B!"(B\hgcmd{outgoing}
66 $B$*$h$S(B \hgcmd{tip} $B$,$=$&$G$9(B\footnote{$BLuCm(B:
67 Mercurial 0.9.5 $BHG;~E@$G$O!"$3$l0J30$K(B
68 \hgcmd{heads} $B$*$h$S(B \hgcmd{parents}
69 $B$,%F%s%W%l!<%H$r%5%]!<%H$7$F$$$^$9!#(B}$B!#(B
71 $BI.<T$,$3$N%^%K%e%"%k$r<9I.$7$F$$$k;~E@$G$O!"(B
72 $BMM<0$d%F%s%W%l!<%H$KBP1~$7$F$$$k%3%^%s%I$O!"(B
73 $B$=$lDxB?$/$"$j$^$;$s!#(B
74 $B$7$+$7!"BP1~:Q$_$N%3%^%s%I$O!"(B
75 $B=PNO$N%+%9%?%^%$%:$,I,MW@-$,Hs>o$K9b$$%3%^%s%I72$G$7$?$N$G!"(B
76 Mercurial $B%f!<%6$N%3%_%e%K%F%#$+$i$O!"(B
77 $BB>$N%3%^%s%I$K$*$1$kMM<0$d%F%s%W%l!<%H$X$NBP1~$NMWK>$O!"(B
78 $B:#$N$H$3$m$"$^$j$"$j$^$;$s!#(B
80 \section{The basics of templating}
82 Mercurial $B$G8@$&%F%s%W%l!<%H$H$O!"(B
83 $BBg;(GD$K8@$&$J$i0lJR$N%F%-%9%H$G$9!#(B
84 $B7h$7$FJQ99$5$l$J$$ItJ,$,$"$k0lJ}$G!"(B
85 $BI,MW$K1~$8$F(B\emph{$BE83+(B}$B$d?7$?$J%F%-%9%H$G$NCV49$,<B;\$5$l$^$9!#(B
87 $B>\:Y$r@bL@$9$kA0$K!"(B
88 Mercurial $B$NDL>o=PNO$N4JC1$JNc$r$b$&0lEY8+$F$_$^$7$g$&!#(B
90 \interaction{template.simple.normal}
92 $B$=$l$G$O!"(B
93 $B=PNO$rJQ$($k$?$a$N%F%s%W%l!<%H$r;XDj$7$F!"(B
94 $BF1$8%3%^%s%I$r<B9T$7$F$_$^$7$g$&!#(B
96 \interaction{template.simple.simplest}
98 $B>e5-$NNc$O!"2DG=$J8B$j:G$b4JC1$J%F%s%W%l!<%H$H$7$F!"(B
99 $B%A%'%s%8%;%C%HKh$KI=<($5$l$k@EE*$J%F%-%9%H$r;XDj$9$k$@$1$NNc$G$9!#(B
100 \hgcmd{log} $B%3%^%s%I$KBP$9$k(B
101 \hgopt{log}{--template} $B%*%W%7%g%s;XDj$O!"(B
102 $B%A%'%s%8%;%C%HKh$NI=<($N:]$K;HMQ$9$k%F%s%W%l!<%H$H$7$F!"(B
103 $B;XDj$5$l$?%F%-%9%H$r;HMQ$9$k$3$H$r(B Mercurial $B$K;X<($7$^$9!#(B
105 $B>e5-$N%F%s%W%l!<%HJ8;zNs$O!"(B``\Verb+\n+'' $B$G=*N;$7$F$$$kE@$KCm0U$7$F$/$@$5$$!#(B
106 $B$3$l$O(B\emph{$B%(%9%1!<%W%7!<%1%s%9(B}$B$H8F$P$l$k$b$N$G!"(B
107 $B8D!9$N%F%s%W%l!<%HMWAG$N=*C<$G2~9T$rI=<($9$k$3$H$r(B
108 Mercurial $B$K;X<($7$^$9!#(B
109 $B$3$N2~9T$r>JN,$7$?>l9g!"(B
110 Mercurial $B$O8D!9$N=PNOMWAG$rC10l9T$G=PNO$7$^$9!#(B
111 $B%(%9%1!<%W%7!<%1%s%9$K4X$9$k>\:Y$O!"(B
112 \ref{sec:template:escape}~$B@a$r;2>H$7$F$/$@$5$$!#(B
114 $B>o$K8GDj$5$l$?J8;zNs$rI=<($9$k%F%s%W%l!<%H$O!"$"$^$jM-MQ$H$O8@$($^$;$s$N$G!"(B
115 $B$b$&>/$7J#;($J$b$N$KD)@o$7$F$_$^$7$g$&!#(B
117 \interaction{template.simple.simplesub}
119 $B$4Mw$NDL$j!"(B
120 $B%F%s%W%l!<%HCf$N(B ``\Verb+{desc}+'' $BJ8;zNs$O!"(B
121 $B%A%'%s%8%;%C%HKh$N%m%0%a%C%;!<%8$GCV49$5$l$F=PNO$5$l$^$9!#(B
122 $BGH3g8L!J(B``\texttt{\{}'' $B5Z$S(B ``\texttt{\}}''$B!K(B
123 $B$G0O$^$l$?%F%-%9%H$,8!=P$5$l$?:]$K$O!"(B
124 $B$I$s$J%F%-%9%H$,0O$^$l$F$$$?>l9g$G$b>o$K!"(B
125 $B3g8L$*$h$S%F%-%9%HItJ,$NE83+$,(B Mercurial $B$K$h$j;n$_$i$l$^$9!#(B
126 $BGH3g8L$=$N$b$N$rI=<($7$?$$>l9g$O!"(B
127 \ref{sec:template:escape}~$B@a$G=R$Y$kJ}K!$G!"(B
128 $BGH3g8L$r%(%9%1!<%W$7$J$1$l$P$J$j$^$;$s!#(B
130 \section{Common template keywords}
131 \label{sec:template:keyword}
133 $B0J2<$N%-!<%o!<%I$r;HMQ$9$k$3$H$G!"(B
134 $B$9$0$K$G$b4JC1$J%F%s%W%l!<%H$r=q$/$3$H$,$G$-$^$9!#(B
136 \begin{description}
138 \item[\tplkword{author}] $BJ8;zNs!#(B
139 $B%A%'%s%8%;%C%H$N:n@.<T!#(B
140 $B%A%'%s%8%;%C%H:n@.8e$OJQ99$5$l$^$;$s!#(B
142 \item[\tplkword{branches}] $BJ8;zNs!#(B
143 $B%A%'%s%8%;%C%H$,%3%_%C%H$5$l$?%V%i%s%A$NL>A0!#(B
144 $B%V%i%s%AL>$,(B \texttt{default} $B$N>l9g$O6u$G$9!#(B
146 \item[\tplkword{date}] $BF|IU>pJs!#(B
147 $B%A%'%s%8%;%C%H$,%3%_%C%H$5$l$?F|;~!#(B
148 $B$3$NCM$O2DFI@-$,(B\emph{$B$"$j$^$;$s(B}$B$N$G!"(B
149 $BE,@Z$KJ8;zNs2=$9$k%U%#%k%?$KEO$9I,MW$,$"$j$^$9!#(B
150 $B%U%#%k%?$K4X$9$k>\:Y$O(B\ref{sec:template:filter}~$B@a$r;2>H$7$F$/$@$5$$!#(B
151 $BF|;~$O?tCM$NBP$H$7$FI=$5$l$^$9!#(B
152 $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
153 $B#2$DL\$N?tCM$O%3%_%C%H$N:]$N(B UTC $B$+$i$N%?%$%`%>!<%s%*%U%;%C%HIC?t$G$9!#(B
155 \item[\tplkword{desc}] $BJ8;zNs!#(B
156 $B%A%'%s%8%;%C%H$N%m%0%a%C%;!<%8!#(B
158 \item[\tplkword{files}] $BJ8;zNs%j%9%H!#(B
159 $BEv3:%A%'%s%8%;%C%H$GJQ99!&DI2C$J$$$7:o=|$5$l$?A4$F$N%U%!%$%k!#(B
161 \item[\tplkword{file\_adds}] $BJ8;zNs%j%9%H!#(B
162 $BEv3:%A%'%s%8%;%C%H$GDI2C$5$l$?%U%!%$%k!#(B
164 \item[\tplkword{file\_dels}] $BJ8;zNs%j%9%H!#(B
165 $BEv3:%A%'%s%8%;%C%H$G:o=|$5$l$?%U%!%$%k!#(B
167 \item[\tplkword{node}] $BJ8;zNs!#(B
168 $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
170 \item[\tplkword{parents}] $BJ8;zNs%j%9%H!#(B
171 $B%A%'%s%8%;%C%H$N?F!#(B
173 \item[\tplkword{rev}] $B@0?tCM!#(B
174 $B%j%]%8%H%j%m!<%+%k$J%A%'%s%8%;%C%H$N%j%S%8%g%sHV9f!#(B
176 \item[\tplkword{tags}] $BJ8;zNs%j%9%H!#(B
177 $BEv3:%A%'%s%8%;%C%H$K4XO"IU$1$i$l$?%?%0!#(B
179 \end{description}
181 $B4v$D$+<B83$7$F$_$k$3$H$G!"(B
182 $B$3$l$i$N%-!<%o!<%I$r;HMQ$7$?:]$K4|BT$5$l$kF0:n$r8+$k$3$H$,$G$-$^$9!#(B
183 $B?^(B~\ref{fig:template:keywords}$B$r;2>H$7$F$/$@$5$$!#(B
185 \begin{figure}
186 \interaction{template.simple.keywords}
187 \caption{Template keywords in use}
188 \label{fig:template:keywords}
189 \end{figure}
191 $BA0=R$7$?$h$&$K!"(B
192 \tplkword{date} $B%-!<%o!<%I$O2DFI@-$N$"$k=PNO$r@8@.$7$^$;$s$N$G!"(B
193 $BFCJL07$$$9$kI,MW$,$"$j$^$9!#(B
194 $B$=$N$?$a$K$O(B \emph{filter} $B$r;H$&I,MW$,$"$j$^$9$,!"(B
195 $B>\:Y$O(B \ref{sec:template:filter}~$B@a$r;2>H$7$F$/$@$5$$!#(B
197 \interaction{template.simple.datekeyword}
199 \section{Escape sequences}
200 \label{sec:template:escape}
202 Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$O!"(B
203 $B:G$b9-$/;H$o$l$F$$$kJ8;zNs%(%9%1!<%W%7!<%1%s%9$rG'<1$7$^$9!#(B
204 $B%P%C%/%9%i%C%7%e!J(B``\Verb+\+''$B!K$r8!CN$7$?:]$K$O!"(B
205 $B$=$l$KB3$/J8;z$r8+$F!"(B
206 $B$=$l$i#2$D$NJ8;z$r0J2<$K<($9$h$&$JC1FH$NJ8;z$KCV49$7$^$9!#(B
208 \begin{description}
209 \item[\Verb+\textbackslash\textbackslash+] $B%P%C%/%9%i%C%7%e!J(B``\Verb+\+''$B!K(B
210 $B!?(BASCII~134$B!#(B
211 \item[\Verb+\textbackslash n+] $B2~9T!?(BASCII~12.
212 \item[\Verb+\textbackslash r+] $B9TF,!?(BASCII~15.
213 \item[\Verb+\textbackslash t+] $B%?%V!?(BASCII~11.
214 \item[\Verb+\textbackslash v+] $B?bD>%?%V!?(BASCII~13.
215 \item[\Verb+\textbackslash \{+] $B3+$-GH3g8L!J(B``\Verb+{+''$B!K!?(BASCII~173.
216 \item[\Verb+\textbackslash \}+] $BJD$8GH3g8L!J(B``\Verb+}+''$B!K!?(BASCII~175.
217 \end{description}
219 $B>e5-$N$h$&$K!"(B
220 ``\Verb+\+''$B!"(B``\Verb+{+'' $B$J$$$7(B ``\Verb+{+''
221 $B$=$N$b$N$r4^$`%F%s%W%l!<%H$r;HMQ$7$?$$>l9g!"(B
222 $B$3$l$i$O%(%9%1!<%W$5$l$J$1$l$P$J$j$^$;$s!#(B
224 \section{Filtering keywords to change their results}
225 \label{sec:template:filter}
227 $B%F%s%W%l!<%HE83+$K$*$1$k7k2L$N$&$A$N4v$D$+$O!"(B
228 $BD>$A$K;H$($k$[$I4JJX$J$b$N$G$O$"$j$^$;$s!#(B
229 Mercurial $B$O!"(B
230 $B%-!<%o!<%I$NE83+7k2L$rJQ99$9$k$?$a$K!"(B
231 $BG$0U$N(B\emph{$B%U%#%k%?(B}$B$NO":?$r;XDj$9$k$3$H$r5a$a$F$-$^$9!#(B
232 $B>e5-$N<B9TNc$K$*$$$F4{$K!"(B
233 $B0lHLE*$J%U%#%k%?$G$"$k(B \tplkwfilt{date}{isodate} $B$r!"(B
234 $BF|IU$rFI$a$k$h$&$K$9$k$?$a$K;HMQ$7$F$$$^$9!#(B
236 Mercurial $B$,%5%]!<%H$9$k:G$b0lHLE*$K;HMQ$5$l$k%U%#%k%?$N%j%9%H$r!"(B
237 $B0J2<$K<($7$^$9!#(B
238 $BG$0U$N%F%-%9%H$KE,MQ$G$-$k%U%#%k%?$b$"$l$P!"(B
239 $BFCDj$N>u672<$G$N$_E,MQ2DG=$J$b$N$b$"$j$^$9!#(B
240 $B8D!9$N%U%#%k%?$N@bL@$O!"L>A0$KB3$$$FMxMQ2DG=$J>u67$rDs<($7!"(B
241 $B$=$l$K8z2L$N@bL@$,B3$/7A<0$H$J$C$F$$$^$9!#(B
243 \begin{description}
244 \item[\tplfilter{addbreaks}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
245 XHTML $B$N(B ``\Verb+<br/>+'' $B%?%0$r!":G=*9T$r=|$/3F9T$NKvHx$KIUM?$7$^$9!#(B
246 $BNc$($P(B ``\Verb+foo\nbar+'' $B$O(B ``\Verb+foo<br/>\nbar+'' $B$H$J$j$^$9!#(B
248 \item[\tplkwfilt{date}{age}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
249 $B8=:_;~9o$KBP$9$kF|IU$NG/Np$rIA2h$7$^$9!#(B
250 ``\Verb+10 minutes+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
252 \item[\tplfilter{basename}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B
253 \tplkword{files} $B%-!<%o!<%I$d$=$NAjBPCM$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
254 $B%F%-%9%H$r%Q%9$H$7$F07$$!"$=$N%Y!<%9%M!<%`$rJV$7$^$9!#(B
255 $BNc$($P(B ``\Verb+foo/bar/baz+'' $B$O(B ``\Verb+baz+'' $B$H$J$j$^$9!#(B
257 \item[\tplkwfilt{date}{date}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
258 Unix $B$N(B \tplkword{date} $B%3%^%s%I$HF1Ey$N%U%)!<%^%C%H$GF|IU$rIA2h$7$^$9$,!"(B
259 $B%?%$%`%>!<%s$r4^$_$^$9!#(B
260 ``\Verb+Mon Sep 04 15:13:13 2006 -0700+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
262 \item[\tplkwfilt{author}{domain}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B
263 \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
264 $BEE;R%a!<%k%"%I%l%9$H;W$7$-:G=i$NJ8;zNs$r8+$D$1=P$7!"(B
265 $B%I%a%$%sItJ,$N$_$r<h$j=P$7$^$9!#(B
266 $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B
267 ``\Verb+serpentine.com+'' $B$H$J$j$^$9!#(B
269 \item[\tplkwfilt{author}{email}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B
270 \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
271 $BEE;R%a!<%k%"%I%l%9$H;W$7$-:G=i$NJ8;zNs$r8+$D$1=P$7$^$9!#(B
272 $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B
273 ``\Verb+bos@serpentine.com+'' $B$H$J$j$^$9!#(B
275 \item[\tplfilter{escape}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
276 XML/XHTML $B$NFC<lJ8;z$G$"$k(B
277 ``\Verb+&+''$B!"(B``\Verb+<+'' $B$*$h$S(B ``\Verb+>+'' $B$r!"(B
278 XML $B$N<BBN;2>H7A<0$GCV$-49$($^$9!#(B
280 \item[\tplfilter{fill68}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
281 $B%F%-%9%H$r(B 68 $B7e$K<}$^$k$h$&$K9T$r@^$jJV$7$^$9!#(B
282 \tplfilter{tabindent} $B%U%#%k%?<B;\8e$b(B
283 80 $B7e$N8GDj%U%)%s%HI}$N2hLL$K<}$a$?$$>l9g!"(B
284 \tplfilter{tabindent} $B%U%#%k%?$KEO$9A0$N%F%-%9%H$KE,MQ$9$k$N$,NI$$$G$7$g$&!#(B
286 \item[\tplfilter{fill76}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
287 76 $B7e$K<}$^$k$h$&$K9T$r@^$jJV$7$^$9!#(B
289 \item[\tplfilter{firstline}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
290 $B%F%-%9%H$N:G=i$N9T$r!"2~9TEy$r4^$^$J$$7A<0$G<h$j=P$7$^$9!#(B
292 \item[\tplkwfilt{date}{hgdate}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
293 $B2DFI@-$N$"$k?tCM$NAH$H$7$FF|IU$rIA2h$7$^$9!#(B
294 ``\Verb+1157407993 25200+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
296 \item[\tplkwfilt{date}{isodate}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
297 ISO~8601 $B7A<0$NJ8;zNs$H$7$FF|IU$rIA2h$7$^$9!#(B
298 ``\Verb+2006-09-04 15:13:13 -0700+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
300 \item[\tplfilter{obfuscate}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B
301 \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
302 $BF~NO%F%-%9%H$KBP1~$9$k(B XML $B<BBN;2>H%7!<%1%s%9$r@8@.$7$^$9!#(B
303 $BE57?E*$JEE;R%a!<%k%"%I%l%9<}=8$r9T$&%9%Q%`%\%C%H(B
304 $B!J(Bspambot$B!K$KBP$9$kBP93:v$N#1$D$H$7$FMxMQ2DG=$G$9!#(B
306 \item[\tplkwfilt{author}{person}] $BG$0U$NJ8;zNs$KE,MQ2DG=$G$9$,!"(B
307 \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
308 $BEE;R%a!<%k%"%I%l%9$h$jA0$NItJ,$r<h$j=P$7$^$9!#(B
309 $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B
310 ``\Verb+Bryan O'Sullivan+'' $B$H$J$j$^$9!#(B
312 \item[\tplkwfilt{date}{rfc822date}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
313 $BEE;R%a!<%k%X%C%@$HF1$87A<0$GF|IU$rIA2h$7$^$9!#(B
314 ``\Verb+Mon, 04 Sep 2006 15:13:13 -0700+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
316 \item[\tplkwfilt{node}{short}] $B%A%'%s%8%;%C%H%O%C%7%eCM$KE,MQ2DG=$G$9!#(B
317 $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
319 \item[\tplkwfilt{date}{shortdate}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B
320 $BG/7nF|7A<0$GF|IU$rIA2h$7$^$9!#(B
321 ``\Verb+2006-09-04+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B
323 \item[\tplfilter{strip}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
324 $BKAF,$J$i$S$KKvHx$N6uGrJ8;z$rA4$F=|30$7$^$9!#(B
326 \item[\tplfilter{tabindent}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
327 $B:G=i$N9T$r=|$/A4$F$N9T$,%?%VJ8;z$G;O$^$k$h$&$K$7$^$9!#(B
329 \item[\tplfilter{urlescape}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B
330 URL $B2r@O$N:]$K(B``$BFC<lJ8;z(B''$B$H$5$l$kJ8;z$r%(%9%1!<%W$7$^$9!#(B
331 $BNc$($P(B \Verb+foo bar+ $B$O(B \Verb+foo%20bar+ $B$K$J$j$^$9!#(B
333 \item[\tplkwfilt{author}{user}] $BG$0U$NJ8;zNs$KE,MQ2DG=$G$9$,!"(B
334 \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B
335 $BEE;R%a!<%k%"%I%l%9$+$i(B``$B%f!<%6(B''$BItJ,$r<h$j=P$7$^$9!#(B
336 $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B
337 ``\Verb+bos+'' $B$H$J$j$^$9!#(B
339 \end{description}
341 \begin{figure}
342 \interaction{template.simple.manyfilters}
343 \caption{Template filters in action}
344 \label{fig:template:filters}
345 \end{figure}
347 \begin{note}
348 $BE,MQBP>]30$N%G!<%?$KBP$7$F%U%#%k%?$NE,MQ$r;n$_$?>l9g!"(B
349 Mercurial $B$O<B9T$K<:GT$7$F(B Python $B$NNc30$rI=<($7$^$9!#(B
350 $BNc$($P!"(B\tplkword{desc} $B%-!<%o!<%I$K(B
351 \tplkwfilt{date}{isodate} $B%U%#%k%?$rE,MQ$9$k$N$O$h$m$7$/$"$j$^$;$s!#(B
352 \end{note}
354 \subsection{Combining filters}
356 $B=jDj$N7A<0$G$N=PNO$rF@$k$?$a$K!"(B
357 $B4JC1$K%U%#%k%?$rAH$_9g$o$;$k$3$H$,$G$-$^$9!#(B
358 $B0J2<$NNc$G$O!"%m%0%a%C%;!<%8$NKAF,!&KvHx$N6uGr$r=|30$7!"(B
359 68 $B7e$K<}$^$k$h$&$K2~9T$7$?8e$G!"(B
360 $B$5$i$K#8J8;zJ,!J%?%VJ8;z$,47=,E*$K#8J8;z$H$7$F07$o$l$k(B
361 Unix $BE*$J4D6-$G$O!K$N;z2<$2$,!"(B
362 $B%U%#%k%?O":?$K$h$j<B;\$5$l$^$9!#(B
364 \interaction{template.simple.combine}
366 $B%F%s%W%l!<%H$K$*$1$k(B``\Verb+\t+''$B!J%?%VJ8;z!K$NMxMQ$O!"(B
367 $B:G=i$N9T$N6/@)E*$J;z2<$2$r9T$&$?$a$N$b$N$G$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B
368 \tplkword{tabindent} $B$,:G=i$N9T(B\emph{$B0J30$N(B}$BA4$F$N9T$r;z2<$2$9$k$?$a$K!"(B
369 $B$3$N%?%VJ8;z$,I,MW$G$9!#(B
371 $BO":?$K$*$1$k%U%#%k%?$N=g=x$,=EMW$G$"$kE@$KN10U$7$F$/$@$5$$!#(B
372 $B:G=i$N%U%#%k%?$,%-!<%o!<%I$NCV497k2L$KE,MQ$5$l!"(B
373 $B#2$DL\$N%U%#%k%?$,:G=i$N%U%#%k%?$NE,MQ7k2L$KE,MQ$5$l$k!"(B
374 $B$H$$$&6q9g$G$9!#(B
375 $BNc$($P!"(B
376 \Verb+fill68|tabindent+ $B$H$$$&5-=R$O(B
377 \Verb+tabindent|fill68+ $B$H$OA4$/0c$C$?7k2L$H$J$j$^$9!#(B
379 \section{From templates to styles}
381 $B%3%^%s%I9T$G$N%F%s%W%l!<%H;XDj$O!"(B
382 $B<jAa$/4JC1$K=PNO$r@07A$9$k<jCJ$rDs6!$7$^$9!#(B
383 $B$7$+$7!"%F%s%W%l!<%H$O>iD9$K@.$j$,$A$G$9$+$i!"(B
384 $B%F%s%W%l!<%H$KL>A0IU$1$G$-$l$PJXMx$K$J$j$^$9!#(B
385 $BMM<0!J(Bsytle$B!K%U%!%$%k$O!"L>A0$,IU$1$i$l!"(B
386 $B%U%!%$%k$KJ]B8$5$l$?%F%s%W%l!<%H$N$3$H$G$9!#(B
388 $B$=$l0J>e$K!"(B
389 $B%3%^%s%I9T$G$N(B \hgopt{log}{--template} $B%*%W%7%g%s;HMQ$G$O0z$-=P$;$J$+$C$?(B
390 Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$NG=NO$r!"(B
391 $BMM<0%U%!%$%k$rMQ$$$k$3$H$G0z$-=P$9$3$H$,$G$-$^$9!#(B
393 \subsection{The simplest of style files}
395 $B0J2<$K<($94JC1$JMM<0%U%!%$%k$O!"(B
396 $B#19T$@$1$N$b$N$G$9!#(B
398 \interaction{template.simple.rev}
400 $B$3$NMM<05-=R$O!"(B
401 ``$B%A%'%s%8%;%C%H$rI=<($9$k:]$K$O!"(B
402 $B1&JU$N%F%-%9%H$r%F%s%W%l!<%H$H$7$F;HMQ$;$h(B''
403 $B$H(B Mercurial $B$K;X<($7$^$9!#(B
405 \subsection{Style file syntax}
407 $BMM<0%U%!%$%k$NJ8K!$O4JC1$G$9!#(B
409 \begin{itemize}
410 \item $B%U%!%$%k$O0l9T$E$D=hM}$5$l$^$9!#(B
412 \item $B9TF,$*$h$S9TKv$N6uGr$OL5;k$5$l$^$9!#(B
414 \item $B6u9T$OFI$_Ht$P$5$l$^$9!#(B
416 \item ``\texttt{\#}'' $B$J$$$7(B ``\texttt{;}'' $B$N$$$:$l$+$G;O$^$k9T$O!"(B
417 $B9TA4BN$,%3%a%s%H$H$_$J$5$l!"6u9T$HF1MM$KFI$_Ht$P$5$l$^$9!#(B
419 \item $B9T$O%-!<%o!<%I$G3+;O$5$l$^$9!#(B
420 $B%-!<%o!<%I$O1Q;z$J$$$72<@~!J(Bunderscore$B!K$G3+;O$5$l!"(B
421 $BG$0U8D?t$N1Q?t;z$J$$$72<@~$,B3$-$^$9(B
422 $B!J@55,I=8=$G=q$/$J$i!"(B
423 $B%-!<%o!<%I$O(B ``\Verb+[A-Za-z_][A-Za-z0-9_]*+.''
424 $B$K9gCW$7$J$1$l$P$J$j$^$;$s!K!#(B
426 \item $B%-!<%o!<%I$KB3$/MWAG$OJ8;z(B ``\texttt{=}'' $B$G$J$1$l$P$J$j$^$;$s$,!"(B
427 $BA08e$KG$0U8D$N6uGrJ8;z$,$"$C$F$b9=$$$^$;$s!#(B
429 \item $B9T$N;D$jItJ,$,0zMQId!J%7%s%0%k%/%)!<%H$J$$$7%@%V%k%/%)!<%H!K(B
430 $B$G0O$^$l$F$$$k>l9g!"(B
431 $B$=$NItJ,$O%F%s%W%l!<%H$NK\BN$H$_$J$5$l$^$9!#(B
433 \item $B9T$N>h$jItJ,$,0zMQId$G0O$^$l$F(B\emph{$B$$$J$$(B}$B>l9g!"(B
434 $B$=$NItJ,$O!"(B
435 $B%F%s%W%l!<%HK\BN$rFbMF$H$7$F;}$D%U%!%$%k$N%U%!%$%kL>$H$_$J$5$l$^$9!#(B
437 \end{itemize}
439 \section{Style files by example}
441 $BMM<0%U%!%$%k$N5-=R$r@bL@$9$k$?$a$K!"(B
442 $B4v$D$+$NNc$r<($7$^$9!#(B
443 $BMM<0%U%!%$%k0l<0$rDL$7$FFI$`$h$j$b!"(B
444 $BHs=j$K4JC1$JNc$+$i;O$a$F!"(B
445 $B4v$D$+$NJ#;($JNc$rDL$7FI$_$9$k$3$H$G!"(B
446 $BDL>o$NMM<0%U%!%$%k:n@.<j=g$r<($=$&$H;W$$$^$9!#(B
448 \subsection{Identifying mistakes in style files}
450 $BMM<0%U%!%$%kCf$KLdBj$,$"$C$?>l9g!"(B
451 Mercurial $B$O$=$C$1$J$$%(%i!<%a%C%;!<%8$rI=<($7$^$9$,!"(B
452 $B0UL#$9$k$H$3$m$,$o$+$C$F$7$^$($P!"(B
453 $B$=$N%a%C%;!<%8$OHs>o$KM-MQ$G$9!#(B
455 \interaction{template.svnstyle.syntax.input}
457 \filename{broken.style} $B$O!"(B
458 \texttt{changeset} $B%-!<%o!<%I$rDj5A$7$h$&$H$7$F$$$k$b$N$N!"(B
459 $B$=$NFbMF$,5-=R$5$l$F$$$J$$E@$KCmL\$7$F$/$@$5$$!#(B
460 $B$3$N$h$&$JMM<0%U%!%$%k$,;XDj$5$l$?>l9g!"(B
461 Mercurial $B$OB(:B$K%a%C%;!<%8$rI=<($7$^$9!#(B
463 \interaction{template.svnstyle.syntax.error}
465 $B$3$N%a%C%;!<%8$O0R05E*$K8+$($^$9$,!"(B
466 $BFI$_2r$/$N$O$=$l$[$IFq$7$/$"$j$^$;$s!#(B
468 \begin{itemize}
469 \item $B:G=i$NMWAG$O!"C1$K(B Mercurial $B$,(B``$B<B9T$r$"$-$i$a$^$7$?(B''
470 $B$HDLCN$7$F$$$^$9!#(B
471 \begin{codesample4}
472 \textbf{abort:} broken.style:1: parse error
473 \end{codesample4}
475 \item $B<!$NMWAG$O!"%(%i!<$NMW0x$,3JG<$5$l$?MM<0%U%!%$%k$NL>A0$G$9!#(B
476 \begin{codesample4}
477 abort: \textbf{broken.style}:1: parse error
478 \end{codesample4}
480 \item $B%U%!%$%kL>$N<!$O!"%(%i!<$,H/@8$7$?9THV9f$K$J$j$^$9!#(B
481 \begin{codesample4}
482 abort: broken.style:\textbf{1}: parse error
483 \end{codesample4}
485 \item $B:G8e$K!"LdBj$N@bL@$,5-=R$5$l$^$9!#(B
486 \begin{codesample4}
487 abort: broken.style:1: \textbf{parse error}
488 \end{codesample4}
489 $BLdBj$N@bL@$O!J$3$NNc$N$h$&$K!K>o$KL@3N$G$"$k$H$O8B$j$^$;$s$,!"(B
490 $B0E9f$a$$$?$b$N$G$"$C$?$H$7$F$b!"(B
491 $BMM<0%U%!%$%kCf$NLdBj$H$J$k9T$rL\;k3NG'$7$F4V0c$$$r8+$D$1$k>e$G$O!"(B
492 $BKX$I$N>l9g$O<h$k$KB-$i$J$$@bL@$G$9!#(B
494 \end{itemize}
496 \subsection{Uniquely identifying a repository}
498 $BC;$$J8;zNs$r<1JL;R$H$7$F(B
499 Mercurial $B%j%]%8%H%j$r(B``$B35$M0l0U$K(B''$B<1JL(B\footnote{$BLuCm(B:
500 $B$3$3$G8@$&!V%j%]%8%H%j$N<1JL!W$O!"(B
501 $B$`$7$m!V%W%m%8%'%/%H$N<1JL!W$K6a$$%K%e%"%s%9$H;W$o$l$^$9!#(B
502 }$B$7$?$$>l9g!"(B
503 $B%j%]%8%H%j$N:G=i$N%j%S%8%g%s$r;HMQ$9$k$N$,NI$$$G$7$g$&!#(B
505 \interaction{template.svnstyle.id}
507 $B$3$NCM$O0l0U$G$"$k$3$H$,J]>Z$5$l$F$$$^$;$s$,!"(B
508 $B$=$l$G$bB?$/$N>l9g$K$*$$$FM-MQ$G$9!#(B
510 \begin{itemize}
511 \item $B40A4$K6u$N%j%]%8%H%j$G$O%j%S%8%g%s(B~0$B$,B8:_$7$J$$$?$a!"(B
512 $B$3$NJ}K!$O5!G=$7$^$;$s!#(B
514 \item $B0JA0$OJL!9$@$C$?J#?t$N%j%]%8%H%j$r%^!<%8$7$?$b$N$H!"(B
515 $B%^!<%8A0$N%j%]%8%H%j$rJ;MQ$7$F$$$k>l9g(B
516 $B!J$3$N$h$&$J;vBV$OHs>o$K5)$G$O$"$j$^$9$,!K!"(B
517 $B$=$l$i$N%j%]%8%H%j$N4V$G$O!"(B
518 $B$3$NJ}K!$K$h$k<1JL$O5!G=$7$^$;$s!#(B
520 \end{itemize}
522 $B%j%]%8%H%j<1JL;R$NMxMQNc$r0J2<$K<($7$^$9!#(B
524 \begin{itemize}
525 \item $B%5!<%P>e$N%j%]%8%H%j$r4IM}$7$F$$$k%G!<%?%Y!<%9$G$N!"(B
526 $B%F!<%V%k$K$*$1$k%-!<$H$7$F$N;HMQ(B
528 \item \{\emph{$B%j%]%8%H%j<1JL;R(B}, \emph{$B%j%S%8%g%s<1JL;R(B}\}
529 $B$H$$$&%?%W%k$N0lIt$H$7$F$N;HMQ!#(B
530 $B%S%k%I$dB>$N<+F02=$5$l$?=hM}$r<B;\$9$k:]$K!"(B
531 $B$3$N%?%W%k>pJs$rJ]B8$7$F$*$/$3$H$G!"(B
532 $B8e$K=hM}$r(B``$B:F8=(B''$B$9$k$3$H$,2DG=$G$9!#(B
534 \end{itemize}
536 \subsection{Mimicking Subversion's output}
538 $BNc$($P(B Subversion $B$N$h$&$J!"(B
539 $BB>$N9=@.4IM}%D!<%k$N%G%U%)%k%H=PNO7A<0$r$^$M$F$_$^$7$g$&!#(B
541 \interaction{template.svnstyle.short}
543 Subversion $B$N=PNOMM<0$O$+$J$jC1=c$G$9$N$G!"(B
544 $B=PNOFbMF$r%U%!%$%k$KJ]B8$7!"(B
545 $B=PNO%F%-%9%HCf$G(B Subversion $B$K$h$j!JF0E*$K!K@8@.$5$l$kItJ,$r!"(B
546 $BE83+$5$l$k%F%s%W%l!<%HCM(B\footnote{$BLuCm!'(B $B%-!<%o!<%I$N$3$H!)(B
547 }$B$GCV$-49$($k$N$OMF0W$G$7$g$&!#(B
549 \interaction{template.svnstyle.template}
551 $B$3$N%F%s%W%l!<%H$K$h$k=PNO$,!"(B
552 Subversion $B$K$h$j@8@.$5$l$k=PNOMM<0$+$i0oC&$9$k>l9g(B\footnote{
553 $BLuCm!'(B ``a few small ways'' $B$h$j$O(B ``a few small point'' $B$G!"(B
554 $B!V0oC&$9$k2U=j!W$NJ}$,NI$/$J$$$+!)(B}$B$,4v$D$+$"$j$^$9!#(B
556 \begin{itemize}
557 \item Subversion $B$O!"(B``$B2DFI@-$N$"$k(B''$BF|IU(B
558 $B!J>e5-$N=PNONc$K$*$1$k(B ``\texttt{Wed, 27 Sep 2006}''$B!K(B
559 $B$r4]3g8L$NCf$KI=<($7$^$9!#(B
560 Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$O!"(B
561 $B;~9o$H%?%$%`%>!<%s$NL5$$$3$N7A<0$GF|IU$rI=<($9$k<jCJ$rDs6!$7$F$$$^$;$s!#(B
563 \item $B%F%s%W%l!<%HKvHx$K(B
564 ``\texttt{-}''$BJ8;z$r0lGU$K;H$C$?9T$NI=<($rG[CV$9$k$3$H$G(B
565 Subversion $B$N(B``$BJ,N%(B''$B@~$r$^$M$F$$$^$9!#(B
566 Subversion $B$N=PNO$K;w$;$k$?$a!"(B
567 $B=PNO$N:G=i$NJ,N%@~I=<($K$O!"(B
568 $B%F%s%W%l!<%H%(%s%8%s$N(B
569 \tplkword{header} $B%-!<%o!<%I$r;HMQ$7$F$$$^$9!J8e=R$7$^$9!K!#(B\footnote{
570 $BLuCm!'$3$l$O(B deviate $B$JE@$G$O$J$$5$$,!D(B }
572 \item Subversion $B$N=PNO$O!"(B
573 $B%X%C%@It$K%3%_%C%H%a%C%;!<%8$N9T?t$,I=<($5$l$^$9!#(B
574 Mercurial $B$G$O$3$l$KAjEv$9$k>pJs$rI=<($9$k$3$H$,$G$-$^$;$s!#(B
575 $B=hM}BP>]$H$J$k%G!<%?$N9T?t$r?t$(>e$2$k%U%#%k%?$r!"(B
576 $B%F%s%W%l!<%H%(%s%8%s$,8=;~E@$G$ODs6!$7$F$$$J$$$?$a$G$9!#(B
578 \end{itemize}
580 Subversion $B$N=PNONc$r85$K!"(B
581 $B>e5-%F%s%W%l!<%H$N$h$&$J%-!<%o!<%I!&%U%#%k%?$X$NCV$-49$($r9T$&:n6H$O!"(B
582 $B$;$$$<$$$,#1!A#2J,$G:Q$`:n6H$G$9!#(B
583 $BMM<0%U%!%$%k$O!"C1$K$3$N%F%s%W%l!<%H$r;2>H$9$l$PNI$$$N$G$9!#(B
585 \interaction{template.svnstyle.style}
587 $B%F%s%W%l!<%H%U%!%$%k%F%-%9%H$rMM<0%U%!%$%k$GD>@\@_Dj$9$k$K$O!"(B
588 $B0zMQId$G0O$_!"2~9TJ8;z$r(B ``\texttt{\\n}'' $B$GCV$-49$($l$PNI$$$N$G$9$,!"(B
589 $BMM<0%U%!%$%k$rHs>o$KFI$_Fq$/$7$F$7$^$$$^$9!#(B
590 $B%F%s%W%l!<%H$rMM<0%U%!%$%k$KD>@\5-=R$9$k$+!"(B
591 $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
592 $B2DFI@-$r4p=`$H$9$k$N$,NI$$$G$7$g$&!#(B
593 $BMM<0%U%!%$%k$NBg$-$5$dJ#;($5$,9b$^$k>l9g$O!"(B
594 $B%F%s%W%l!<%H%F%-%9%H$r5-=R$9$k$N$G$O$J$/!"(B
595 $B30It%U%!%$%k$K=P$7$F$7$^$$$^$7$g$&!#(B
597 %%% Local Variables:
598 %%% mode: latex
599 %%% TeX-master: "00book"
600 %%% End: