
foozy@708: \chapter{Advanced uses of Mercurial Queues}
foozy@708: \label{chap:mq-collab}
foozy@708: 
foozy@708: Mercurial Queues $B$NMQK!$r??$C@5D>$KOCBj$K$9$k$N$O4JC1$G$9$,!"(B
foozy@708: $B>/!9M^@)$r8z$+$;$F!"9~$_F~$C$?3+H/4D6-$G$N:n6H$KLrN)$D$h$&$J!"(B
foozy@708: $B$"$^$jMxMQ$5$l$J$$5!G=$r4v$D$+@bL@$7$h$&$H;W$$$^$9!#(B
foozy@708: 
foozy@708: $B$3$N>O$G$O!"(B
foozy@708: Linux $B%+!<%M%k8~$1$N(B Infiniband $B%G%P%$%9%I%i%$%P3+H/$K$*$$$F!"(B
foozy@708: $B4IM}$KMQ$$$F$$$?5;K!$r;HMQNc$H$7$F<h$j>e$2$^$9!#(B
foozy@708: $B$3$N%G%P%$%9%I%i%$%P$O(B
foozy@708: $B!J0lHL$N%G%P%$%9%I%i%$%PDxEY$K$O!KBg$-$/!"(B
foozy@708: 35 $B$N%=!<%9%U%!%$%k$K$^$?$,$C$?(B 25,000 $B9T$+$i$J$C$F$*$j!"(B
foozy@708: $B>/?t$N3+H/%A!<%`$K$h$jJ]<i$5$l$F$$$^$9!#(B
foozy@708: 
foozy@708: $B$3$N>O$G07$C$F$$$kBP>]$O(B Linux $B$KFC2=$7$?$b$N$G$9$,!"(B
foozy@708: $B<+?H$,=jM-$7$F$$$J$$%3!<%I$r85$KB?$/$N3+H/$r9T$&I,MW$,$"$k6ILL$G!"(B
foozy@708: $BF1MM$NJ}?K$,E,MQ$G$-$k$G$7$g$&!#(B
foozy@708: 
foozy@708: \section{The problem of many targets}
foozy@708: 
foozy@708: Linux $B%+!<%M%k$OIQHK$KJQ99$5$l!"(B
foozy@708: $BFbItE*$K$O7h$7$F0BDj$7$F$$$^$;$s!#(B
foozy@708: $B3+H/<T$O%j%j!<%9$N4V$KEY!9;W$$@Z$C$?JQ99$r9T$$$^$9!#(B
foozy@708: $B$3$N$?$a!"(B
foozy@708: Linux $B%+!<%M%k$NFCDj$N%j%j!<%9HG$G5!G=$9$k%I%i%$%P!<$NHG$O!"(B
foozy@708: $B35$7$FB>$NHG$K$*$$$F$O(B\emph{$B%3%s%Q%$%k(B}$B$9$iDL$i$J$$>l9g$,$"$j$^$9!#(B
foozy@708: 
foozy@708: $B%I%i%$%P$NJ]<i$r9T$&$?$a$K$O!"(B
foozy@708: $B$$$/$D$+$N8DJL$N(B Linux $B$NHG$r0U<1$9$kI,MW$,$"$j$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $BBh0l$K$O!"%a%$%s$N(B Linux $B%+!<%M%k3+H/%D%j!<$G$9!#(B
foozy@708:   $B$3$N>l9g$N%3!<%I$NJ]<i$O!"%+!<%M%k%3%_%e%K%F%#$NB>$N3+H/<T$H6&M-$5$l!"(B
foozy@708:   $BH`$i$,%+!<%M%k$N%5%V%7%9%F%`$KBP$7$F9T$&$N$HF1DxEY$K!"(B
foozy@708:   ``$B3+H/$7$J$,$i$N(B''$BJQ99$,9T$o$l$^$9!#(B
foozy@708: 
foozy@708: \item $B3+H/$7$F$$$k%I%i%$%P$rMxMQ$9$k$3$H$,$G$-$J$$8E$$(B 
foozy@708:   Linux $B%G%#%9%H%j%S%e!<%7%g%s$r;HMQ$7$F$$$k8\5R$NMWK>$K1~$($k$?$a$K!"(B
foozy@708:   $B8E$$(B Linux $B%+!<%M%k$NHG$KBP$9$k4v$D$+$N(B``$B%P%C%/%]!<%H(B''$B$NJ]<i$bI,MW$G$9!#(B
foozy@708:   $B!J%3!<%I$N(B\emph{$B%P%C%/%]!<%H(B}$B$K$O!"(B
foozy@708:   $B$=$N%3!<%I$N3+H/BP>]$H$J$kHG$h$j$b8E$$HG$N4D6-$G2TF0$5$;$k$?$a$N!"(B
foozy@708:   $B%3!<%I$N2~JQ$,I,MW$G$9!K(B
foozy@708: 
foozy@708: \item $B:G8e$K$J$j$^$9$,!"8\5R$NMxMQ$7$F$$$k%+!<%M%k$d%G%#%9%H%j%S%e!<%7%g%s$N!"(B
foozy@708:   $BA4BN$KBP$9$k99?7$r6/$$$k$3$H$J$/?75,5!G=$rDs6!$9$k$?$a$K!"(B
foozy@708:   $B%=%U%H%&%'%"$N%j%j!<%9%9%1%8%e!<%k$O!"(B
foozy@708:   Linux $B%G%#%9%H%j%S%e!<%7%g%s$d%+!<%M%k3+H/<T$,MxMQ$7$F$$$k%+!<%M%k$H!"(B
foozy@708:   $BI,$:$7$bB-JB$_$rB7$($k$o$1$G$O$"$j$^$;$s!#(B
foozy@708:   
foozy@708: \end{itemize}
foozy@708: 
foozy@708: \subsection{Tempting approaches that don't work well}
foozy@708: 
foozy@708: $BJ#?t$N0[$J$k4D6-$rBP>]$H$7$J$1$l$P$J$i$J$$0lO"$N%=%U%H%&%'%"$NJ]<i$K$O!"(B
foozy@708: $B#2$D$N(B``$BI8=`E*$J(B''$BJ}K!$,$"$j$^$9!#(B
foozy@708: 
foozy@708: $B#1$DL\$NJ}K!$O!"(B
foozy@708: $B$=$l$>$l$,C10l$N4D6-$rBP>]$H$9$kJ#?t$N%V%i%s%A$r4IM}$9$kJ}K!$G$9!#(B
foozy@708: $B$3$NJ}K!$NLdBjE@$O!"(B
foozy@708: $B%j%]%8%H%j4V$G$NJQ99$N1}Mh(B\footnote{$BLuCm(B: $B$$$o$f$k!V%^!<%8!W$N$3$H(B}$B$K$*$$$F!"(B
foozy@708: $BE4$N5,N'$G$b$C$FK>$`I,MW$,M-$k$3$H$G$9!#(B
foozy@708: $B?7$7$$5!G=$d%P%0$N=$@5$O(B``$B???7$7$$(B''$B%j%]%8%H%j$G;O$a$J$1$l$P$J$i$:!"(B
foozy@708: $B$=$N8e$GA4$F$N%P%C%/%]!<%HMQ%j%]%8%H%j$K?;F)$5$;$^$9!#(B
foozy@708: $B%P%C%/%]!<%H$G$NJQ99$O!"$=$NEAGE$,99$K%V%i%s%A8BDj$5$l$^$9!#(B
foozy@708: $B=jB030$N%V%i%s%A$KE,MQ$5$l$k$h$&$J%P%C%/%]!<%H8~$1$NJQ99$O!"(B
foozy@708: $B$*$=$i$/%I%i%$%P$N%3%s%Q%$%k$rK8$2$k$G$7$g$&!#(B
foozy@708: 
foozy@708: $B#2$DL\$NJ}K!$O!"(B
foozy@708: $B8D!9$N%3!<%IJR$NM-8z!?L58z$r!"(B
foozy@708: $B0U?^$9$kBP>]$K0MB8$7$F@Z$jBX$($k$?$a$N>r7oJ8$GKd$a$i$l$?!"(B
foozy@708: $BC10l$N%=!<%9%D%j!<$rJ]<i$9$kJ}K!$G$9!#(B
foozy@708: $B$3$l$i$N(B``ifdef''$B5-=R$O!"(B
foozy@708: Linux $B%+!<%M%k%D%j!<$G$O5v$5$l$F$$$J$$$N$G!"(B
foozy@708: $B$3$l$i$r<h$j=|$$$Fe:No$J%D%j!<$r@8@.$9$k$?$a$N!"(B
foozy@708: $B<jF0$J$$$7<+F0$N<j=g$,I,MW$G$9!#(B
foozy@708: $B$3$NN.57$GJ]<i$5$l$k%3!<%I%Y!<%9$OAa!9$K!"(B
foozy@708: $BM}2r$bJ]<i$b:$Fq$J>r7oJ,4t$N!VAM$NAc!W$H$J$k$G$7$g$&!#(B
foozy@708: 
foozy@708: $B$3$l$i$N$$$:$l$N<jK!$b!"(B
foozy@708: $B@5Ev$J%=!<%9%D%j!<$N%3%T!<$r(B``$B=jM-(B''$B$7$F$$$J$$>u67$K$OE,9g$7$^$;$s!#(B
foozy@708: $BI8=`%+!<%M%k$H6&$KG[I[$5$l$k(B Linux $B%I%i%$%P$N>l9g!"(B
foozy@708: Linus $B;a$N%=!<%9%D%j!<$O!"(B
foozy@708: $B@$3&Cf$,@5E}$H$_$J$9%3!<%I$N%3%T!<$+$i9=@.$5$l$^$9!#(B
foozy@708: $B>eN.%j%]%8%H%j$K$*$1$k(B``$B;d$N(B''$B%I%i%$%P$O!"(B
foozy@708: Linus $B;a$N%=!<%9%D%j!<>e$K2~JQFbMF$,H?1G$5$l$k$^$G$K$O!"(B
foozy@708: $BCN$i$J$$$&$A$K8+CN$i$L?M!9$K$h$C$F0[$J$kHG$K2~JQ$5$l$F$$$k$+$b$7$l$^$;$s!#(B
foozy@708: 
foozy@708: $B$3$l$i$N<jK!$O!"(B
foozy@708: $B>eN.%j%]%8%H%j$X$N%Q%C%A$NBN:[$r@0$($k$N$rFq$7$/$7$F$7$^$&!"(B
foozy@708: $B$H$$$&7gE@$b;}$C$F$$$^$9!#(B
foozy@708: 
foozy@708: Mercurial Queues $B$O!"(B
foozy@708: $B$3$l$^$G=R$Y$F$-$?>u67$G$N3+H/$r4IM}$9$k$?$a$N!"(B
foozy@708: $BNI$$8uJd$H8@$($^$9!#(B
foozy@708: $B$^$5$K$3$N$h$&$J>u67$K$*$$$F!"(B
foozy@708: MQ $B$O:n6H$r2wE,$K$9$k99$K4v$D$+$NIU2CE*5!G=$r;}$C$F$$$^$9!#(B
foozy@708: 
foozy@708: \section{$B%,!<%I$K$h$k>r7oIU$-%Q%C%AE,MQ(B}
foozy@708: 
foozy@708: $B$*$=$i$/!"(B
foozy@708: $BB?$/$NBP>]4D6-$KBP$9$k7rA4@-$rJ]<i$9$kJ}K!$O!"(B
foozy@708: $B=jDj$N>u67$4$H$KE,MQ$5$l$kFCDj$N%Q%C%A$rA*Br$G$-$k$3$H!"(B
foozy@708: $B$H8@$($k$G$7$g$&!#(B
foozy@708: MQ $B$O!"(B
foozy@708: $B>e5-$N5!G=$r;}$D(B``$B%,!<%I(B''$B!J(Bquilt $B$N(B \texttt{guards} $B%3%^%s%I$KM3Mh$7$^$9!K(B
foozy@708: $B$H8F$P$l$k5!G=$rDs6!$7$^$9!#(B
foozy@708: $B$^$:$O$8$a$K!"(B
foozy@708: $B<B83$N$?$a$N4JAG$J%j%]%8%H%j$r:n@.$7$^$7$g$&!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.init}
foozy@708: 
foozy@708: $B$3$N<j=g$K$h$j!"(B
foozy@708: $B0[$J$k%U%!%$%k$rA`:n$9$k$N$G8_$$$K$O0MB8@-$NL5$$#2$D$N%Q%C%A$r;}$D!"(B
foozy@708: $B>.$5$J%j%]%8%H%j$,F@$i$l$^$9!#(B
foozy@708: 
foozy@708: $B>r7oIU$-E,MQ$N9M$(J}$O!"(B
foozy@708: $BG$0U$NC1=c$JJ8;zNs$+$i$J$k(B\emph{$B%,!<%I(B}$B$5$l$?(B``$B;%(B''
foozy@708: (tag)$B$r%Q%C%A$KIUM?$7$F$*$-!"(B
foozy@708: $B%Q%C%AE,MQ$N:]$K!";HMQ$9$Y$-FCDj$N%,!<%I$r(B MQ $B$KBP$7$F65$($k!"(B
foozy@708: $B$H$$$&$b$N$G$9!#(B
foozy@708: $B$"$i$+$8$aA*Br$7$F$*$$$?%,!<%I$K1~$8$F!"(B
foozy@708: MQ $B$O%,!<%I$5$l$?%Q%C%A$rE,MQ$9$k$+8+Aw$k$+$r7hDj$7$^$9!#(B
foozy@708: 
foozy@708: $B8D!9$N%Q%C%A$OG$0U$N?t$N%,!<%I$r;}$D$3$H$,$G$-!"(B
foozy@708: $B$=$l$>$l$N%,!<%I$O(B\emph{$B%]%8%F%#%V(B}
foozy@708: $B!J(B``$B%,!<%IA*Br;~$K%Q%C%A$rE,MQ$9$k>l9g(B''$B!K$+(B\emph{$B%M%,%F%#%V(B}
foozy@708: $B!J(B``$B%,!<%IA*Br;~$K%Q%C%AE,MQ$r8+Aw$k(B''$B!K$N$I$A$i$+$G$9!#(B
foozy@708: $B%,!<%I$r;}$?$J$$%Q%C%A$O>o$KE,MQ$5$l$^$9!#(B
foozy@708: 
foozy@708: \section{$B%Q%C%A$N%,!<%I$r@)8f$9$k(B}
foozy@708: 
foozy@708: \hgxcmd{mq}{qguard} $B%3%^%s%I$O!"(B
foozy@708: $B$I$N%,!<%I$r%Q%C%A$KE,MQ$9$k$+$r7hDj$9$k$+!"(B
foozy@708: $B$5$b$J$/$P8=;~E@$GM-8z$J%,!<%I$rI=<($7$^$9!#(B
foozy@708: $B0z?t$,L5$$>l9g!"8=:_$N:G>e0L%Q%C%A$N%,!<%I$rI=<($7$^$9!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.qguard}
foozy@708: 
foozy@708: $B%Q%C%A$K%]%8%F%#%V$J%,!<%I$r@_Dj$9$k$K$O!"(B
foozy@708: $B%,!<%IL>$N@\F,<-$H$7$F(B ``\texttt{+}'' $B$rIUM?$7$^$9!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.qguard.pos}
foozy@708: 
foozy@708: $B%Q%C%A$K%M%,%F%#%V$J%,!<%I$r@_Dj$9$k$K$O!"(B
foozy@708: $B%,!<%IL>$N@\F,<-$H$7$F(B ``\texttt{-}'' $B$rIUM?$7$^$9!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.qguard.neg}
foozy@708: 
foozy@708: \begin{note}
foozy@708:   \hgxcmd{mq}{qguard} $B%3%^%s%I$O!"%Q%C%A$K%,!<%I$r@_Dj$7$^$9$,!"(B
foozy@708:   $B%Q%C%A$N%,!<%I@_Dj$r(B\emph{$BJQ99(B}$B$7$?$j$O$7$^$;$s!#(B
foozy@708:   $B$D$^$j!"(B
foozy@708:   $B%Q%C%A$K(B \hgcmdargs{qguard}{+a +b} $B$rE,MQ$7$?8e$K!"(B
foozy@708:   $BF1$8%Q%C%A$K(B \hgcmdargs{qguard}{+c} $B$rE,MQ$7$?>l9g!"(B
foozy@708:   $B$3$N%Q%C%A$K@_Dj$5$l$F$$$k%,!<%I$O(B \texttt{+c} \emph{$B$@$1(B}$B$H$J$j$^$9!#(B
foozy@708: \end{note}
foozy@708: 
foozy@708: Mercurial $B$O!"(B
foozy@708: $B2r<a!&<jF0JT=8$,6&$KMF0W$J7A<0$G!"(B
foozy@708: $B%,!<%I>pJs$r(B \sfilename{series} $B$K3JG<$7$^$9(B
foozy@708: $B!J8@$$49$($k$J$i!"(B
foozy@708: \hgxcmd{mq}{qguard} $B%3%^%s%I$rMxMQ$9$kI,MW$OL5$/!"(B
foozy@708: \sfilename{series} $B%U%!%$%k$rD>@\JT=8$7$F$b9=$$$^$;$s!K!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.series}
foozy@708: 
foozy@708: \section{$B;HMQ$9$k%,!<%I$NA*Br(B}
foozy@708: 
foozy@708: \hgxcmd{mq}{qselect} $B%3%^%s%I$O!"M-8z$K$9$k%,!<%I$r7hDj$7$^$9!#(B
foozy@708: $B%,!<%I$,7hDj$9$k$3$H$G!"(B
foozy@708: $B<!$K(B \hgxcmd{mq}{qpush} $B$r<B9T$7$?:]$K(B MQ $B$,E,MQ$9$k%Q%C%A$,7hDj$5$l$^$9!#(B
foozy@708: $B$3$N%3%^%s%I$O$=$l0J30$NF/$-$r$7$^$;$s!#(B
foozy@708: $BFC$K!"4{$KE,MQ:Q$_$N%Q%C%A$KBP$7$F$O!"0l@Z2?$b9T$$$^$;$s!#(B
foozy@708: 
foozy@708: $B0z?t$,;XDj$5$l$J$$>l9g!"(B
foozy@708: \hgxcmd{mq}{qselect} $B%3%^%s%I$O!"(B
foozy@708: $B8=;~E@$GM-8z$K$J$C$F$$$k%,!<%I$r#19T$K#1$D$E$DI=<($7$^$9!#(B
foozy@708: $B8D!9$N0z?t$O!"E,MQ$5$l$k%,!<%I$NL>A0$H$_$J$5$l$^$9!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.qselect.foo}
foozy@708: 
foozy@708: $B8=:_A*Br$5$l$F$$$k%,!<%I$N0lMw$,(B
foozy@708: \sfilename{guards} $B%U%!%$%k$K3JG<$5$l$F$$$^$9$N$G!"(B
foozy@708: $B6=L#$,$"$l$P8+$F$_$k$N$bNI$$$G$7$g$&!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.qselect.cat}
foozy@708: 
foozy@708: \hgxcmd{mq}{qpush} $B$r<B9T$9$k$3$H$G!"(B
foozy@708: $B%,!<%IA*Br$N8z2L$r8+$k$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.qselect.qpush}
foozy@708: 
foozy@708: 
foozy@708: ``\texttt{+}'' $B$J$$$7(B ``\texttt{-}'' 
foozy@708: $B$G;O$^$kL>A0$O%,!<%IL>$K$O$G$-$^$;$s!#(B
foozy@708: $B6uGrJ8;z$r4^$`$b$N$b%,!<%IL>$K$O$J$l$^$;$s$,!"(B
foozy@708: $B$=$l$$$,$$$NBgDq$NJ8;z$O;HMQ2DG=$G$9!#(B
foozy@708: $BIT@5$J%,!<%IL>$N;HMQ$O!"(BMQ $B$K$h$j7Y9p$5$l$^$9!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.qselect.error} 
foozy@708: 
foozy@708: $B%,!<%IA*Br$NJQ99$O!"E,MQ$5$l$k%Q%C%A$r@Z$jBX$($^$9!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.qselect.quux} 
foozy@708: 
foozy@708: $B%M%,%F%#%V$J%,!<%I$,%]%8%F%#%V$J%,!<%I$KM%@h$9$k$3$H$r!"(B
foozy@708: $B0J2<$NNc$G8+$k$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \interaction{mq.guards.qselect.foobar}
foozy@708: 
foozy@708: \section{MQ $B$N%Q%C%AE,MQ%k!<%k(B}
foozy@708: 
foozy@708: $B%Q%C%AE,MQ$NM-L5$rH=Dj$9$k:]$K!"(BMQ $B$O0J2<$N%k!<%k$r;HMQ$7$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item $B%,!<%IL5$7%Q%C%A$O>o$KE,MQ$5$l$^$9!#(B
foozy@708: 
foozy@708: \item $B8=:_A*Br$5$l$F$$$k%,!<%I$K%^%C%A$9$k%M%,%F%#%V%,!<%I$,$"$k>l9g!"(B
foozy@708:   $B%Q%C%A$OE,MQ$5$l$^$;$s!#(B
foozy@708: 
foozy@708: \item $B8=:_A*Br$5$l$F$$$k%,!<%I$K%^%C%A$9$k%]%8%F%#%V%,!<%I$,$"$k>l9g!"(B
foozy@708:   $B%Q%C%A$OE,MQ$5$l$^$9!#(B
foozy@708: 
foozy@708: \item $B8=:_A*Br$5$l$F$$$k%,!<%I$K%^%C%A$9$k%,!<%I$,2?$bL5$$>l9g!"(B
foozy@708:   $B%Q%C%A$OE,MQ$5$l$^$;$s!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: \section{Trimming the work environment}
foozy@708: 
foozy@708: $B@h$K=R$Y$?(B
foozy@708: Linux $B%+!<%M%k8~$1$N(B Infiniband
foozy@708: $B%G%P%$%9%I%i%$%P3+H/$G$N%Q%C%AE,MQ$G$O!"(B
foozy@708: Linux $B%+!<%M%k$NDL>o$N%=!<%9%D%j!<$O;HMQ$7$^$;$s!#(B
foozy@708: $B$=$NBe$o$j!"(B
foozy@708: Infiniband $B%G%P%$%9%I%i%$%P3+H/$K4XO"$9$k%=!<%9!?(B
foozy@708: $B%X%C%@$N$_$r4^$`%j%]%8%H%j$r:n@.$7!"(B
foozy@708: $B$=$3$KBP$7$F%Q%C%A$rE,MQ$9$k$h$&$K$7$^$9!#(B
foozy@708: $B$3$N%j%]%8%H%j$N%5%$%:$O%+!<%M%k%j%]%8%H%j$N(B 1\% $B$K<}$^$k$?$a!"(B
foozy@708: $B:n6H$r9T$&$N$b4JC1$G$9!#(B
foozy@708: 
foozy@708: $B=L>.HG$N%j%]%8%H%j$r:n@.$7$?$J$i$P!"(B
foozy@708: $B%Q%C%A$N(B``$BE,MQBP>](B''$B$H$J$k%P!<%8%g%s$rA*Br$7$^$9(B\footnote{$BLuCm(B:
foozy@708: $B$3$3$G8@$&!V(Bchoose$B!W!JA*Br!K$O!"(B
foozy@708: \hgcmd{update} $B<B9T$r;X$9$N$G$O$J$$$+!)(B
foozy@708: $B$=$&$G$"$l$P!"<!J8$,!V$3$l$O!A%9%J%C%W%7%g%C%H$@!W$H$$$&$N$bM}2r$G$-$k!#(B}$B!#(B
foozy@708: XXXXXXXXXXXX
foozy@708: This is a snapshot of the Linux kernel tree as of a revision
foozy@708: of my choosing.
foozy@708: XXXXXXXXXXXX
foozy@708: $BE,MQBP>]$rA*Br$9$k:]$KI.<T$O!"(B
foozy@708: $BEv3:%j%S%8%g%s$N%+!<%M%k%j%]%8%H%j$K$*$1$k%A%'%s%8%;%C%H(BID$B$r!"(B
foozy@708: $B%3%_%C%H%a%C%;!<%8(B\footnote{$BLuCm(B: $B%Q%C%A$N!)(B XXXXXX}$BCf$K5-O?$7$F$*$-$^$9!#(B
foozy@708: $B%+!<%M%k%D%j!<Cf$N3+H/$K4XO"$9$kIt0L$K4X$7$F!"(B
foozy@708: $B%9%J%C%W%7%g%C%H$K$h$C$F(B``$B>u67(B''$B$HFbMF$,FCDj$G$-$k$?$a!"(B
foozy@708: $B=L>.HG%j%]%8%H%j$HDL>oHG$N%+!<%M%k%D%j!<$N$$$:$l$KBP$7$F$b!"(B
foozy@708: $B%Q%C%A$NE,MQ$,2DG=$K$J$j$^$9!#(BXXXXXX
foozy@708: Since the snapshot
foozy@708: preserves the ``shape'' and content of the relevant parts of the
foozy@708: kernel tree, I can apply my patches on top of either my tiny
foozy@708: repository or a normal kernel tree.
foozy@708: 
foozy@708: $BDL>o$O!"(B
foozy@708: $B%Q%C%A$NE,MQBP>]$H$J$k%=!<%9%D%j!<$N%Y!<%9$K$O!"(B
foozy@708: $B>eN.%j%]%8%H%j$ND>6a$N%9%J%C%W%7%g%C%H$r;HMQ$9$Y$-$G$9!#(B
foozy@708: $B$=$&$9$k$3$H$G!"(B
foozy@708: $B:n@.$7$?%Q%C%A$r>eN.%j%]%8%H%j$NC4Ev<T$XAwIU$9$k:]$K!"(B
foozy@708: $BKX$I!J$"$k$$$OA4$/!K2~JQ$NI,MW$,L5$/$J$k$G$7$g$&!#(B
foozy@708: 
foozy@708: \section{Dividing up the \sfilename{series} file}
foozy@708: 
foozy@708: $BI.<T$O!"(B\sfilename{series} $B$KNs5s$5$l$k%Q%C%A$r!"(B
foozy@708: $B4v$D$+$NO@M}E*$J$^$H$^$j$KJ,N`$7$F$$$^$9!#(B
foozy@708: $B$=$l$>$l$N%Q%C%AJ,N`$O!"(B
foozy@708: $B$=$N8e$KNs5s$5$l$k%Q%C%A$N0U?^$r5-=R$7$?%3%a%s%H%V%m%C%/$G3+;O$5$l$^$9!#(B
foozy@708: 
foozy@708: $BI.<T$N07$C$F$$$k%Q%C%AJ,N`$O!"0J2<$N$h$&$JJB$S$K$J$C$F$$$^$9!#(B
foozy@708: $BJ,N`$N=g=x$O=EMW$J$N$G!"J,N`$r>R2p$7$?8e$G@bL@$7$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item ``$B<uM}:Q$_(B(accepted)''$BJ,N`(B: 
foozy@708:   $B3+H/%A!<%`$,(B Infiniband $B%5%V%7%9%F%`$NJ]<iC4Ev$KAwIU$7$F!"(B
foozy@708:   $B4{$K<uM}$O$5$l$F$$$k$b$N$N!"(B
foozy@708:   $B=L>.HG%j%]%8%H%j$,85$K$7$F$$$k%9%J%C%W%7%g%C%H$K$O!"(B
foozy@708:   $B$^$@H?1G$5$l$F$$$J$$%Q%C%A$NJ,N`$G$9!#(B
foozy@708:   $B$3$l$i$O!"(B
foozy@708:   $B>eN.%j%]%8%H%j$NJ]<iC4Ev$N%j%]%8%H%j$HF1$8>uBV$rF@$k$?$a$K!"(B
foozy@708:   $B%=!<%9%D%j!<$rJQ49$9$k(B``$BFI$_=P$78BDj(B''$B%Q%C%A$G$9!#(B
foozy@708: 
foozy@708: \item ``$B:F:n6H(B(rework)''$BJ,N`(B:
foozy@708:   $B>eN.%j%]%8%H%j$NJ]<iC4Ev$KAwIU$7$?$b$N$N!"(B
foozy@708:   $B<uM}$KEv$?$C$FJQ99$rMW5a$5$l$?%Q%C%A$NJ,N`!#(B
foozy@708: 
foozy@708: \item ``$BJ]N1(B(pending)''$BJ,N`(B:
foozy@708:   $B>eN.%j%]%8%H%j$NJ]<iC4Ev$KAwIU$3$=$7$F$$$J$$$b$N$N!"(B
foozy@708:   $B4{$K:n6H$r=*$($?%Q%C%A$NJ,N`!#(B
foozy@708:   $B$7$P$i$/$N4V$O(B``$BFI$_=P$78BDj(B''$B$H$7$F07$o$l$^$9!#(B
foozy@708:   $B>eN.%j%]%8%H%j$NJ]<iC4Ev$K$h$j<uM}$5$l$l$P!"(B
foozy@708:   $B$3$N%Q%C%A$r(B``$B<uM}:Q$_(B''$BJ,N`$NKvHx$X$H0\F0$7$^$9!#(B
foozy@708:   $B<uM}$KEv$?$C$FJQ99$,MW5a$5$l$?>l9g!"(B
foozy@708:   ``$B:F:n6H(B''$BJ,N`$N@hF,$X$H0\F0$7$^$9!#(B
foozy@708: 
foozy@708: \item ``$B:n6HCf(B(in progress)''$BJ,N`(B:
foozy@708:   $BL\2<$N$H$3$m3hH/$K:n6H$,9T$o$l$F$$$k%Q%C%A$NJ,N`!#(B
foozy@708:   $B$3$NJ,N`$N%Q%C%A$O!"30It$K8x3+$9$Y$-$G$O$"$j$^$;$s!#(B
foozy@708: 
foozy@708: \item ``$B%P%C%/%]!<%H(B(backport)''$BJ,N`(B:
foozy@708:   $B8E$$HG$N%+!<%M%k$N%=!<%9%D%j!<$KE,9g$5$;$k$?$a$N%Q%C%A$NJ,N`!#(B
foozy@708: 
foozy@708: \item ``$BFbItMQ(B(do not ship)''$BJ,N`(B:
foozy@708:   $B2?$i$+$NM}M3$K$h$j!">eN.%j%]%8%H%j$NJ]<iC4Ev$X$OAwIU$5$l$J$$%Q%C%A$NJ,N`!#(B
foozy@708:   $B$3$N$h$&$J%Q%C%A$NNc$H$7$F$O!"(B
foozy@708:   $B%I%i%$%P<1JLMQ$NKd$a9~$_J8;zNs$NJQ99$r9T$&$3$H$G!"(B
foozy@708:   $B%=!<%9%D%j!<$N$b$N$H$O0[$J$k%I%i%$%P<BAu$NHG(B
foozy@708:   \footnote{$BLuCm(B: $B3+H/Cf$N%I%i%$%P$N$3$H!)(B}$B$H!"(B
foozy@708:   $B%G%#%9%H%j%S%e!<%7%g%s%Y%s%@$K$h$C$FG[I[$5$l$k%I%i%$%P<BAu$NHG$N4V$G!"(B
foozy@708:   $BF0:n3NG'Ey$K$*$1$k6hJL$rMF0W$K$9$k%Q%C%A$,$"$j$^$9!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: $B$G$O$3$3$G!"%Q%C%AJ,N`Hx$r$3$N=gHV$K$9$kM}M3$KLa$j$^$7$g$&!#(B
foozy@708: $B%3%s%F%-%9%H$NJQ99$,H/@8$9$k$3$H$G!"(B
foozy@708: $B%9%?%C%/>eJ}$N%Q%C%A$X$N:F:n6H(B
foozy@708: \footnote{$BLuCm(B: \hgxcmd{mq}{qrefresh} $B$N<B9T$K$h$k%Q%C%A$N=$@5$N$3$H(B}
foozy@708: $B$,I,MW$K$J$k$3$H$,L5$$$h$&$K!"(B
foozy@708: $B%9%?%C%/Cf$GDl$K$"$k%Q%C%A$[$I0BDj$7$F$$$FM_$7$$$b$N$G$9!#(B
foozy@708: $BJQ99$5$l$K$/$$%Q%C%A72$r(B
foozy@708: \sfilename{series} $B%U%!%$%k$NKAF,$KCV$/$3$H$G!"(B
foozy@708: $B$3$NL\E*$rC#@.$9$k$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: $BB>$N%Q%C%A$NE,MQ$r6KNO>eN.%j%]%8%H%j$N>uBV$K6a$$%=!<%9%D%j!<$X9T$&$?$a$K!"(B
foozy@708: $B%=!<%9%D%j!<$NJQ49$KI,MW$H;W$o$l$k%Q%C%A$b=EMW$G$9!#(B
foozy@708: $B<uM}:Q$_$N%Q%C%A$b;C$/$N4VJ];}$7$F$$$k$N$O$=$N$?$a$G$9!#(B
foozy@708: 
foozy@708: ``$B%P%C%/%]!<%H(B''$B$*$h$S(B``$BFbItMQ(B''$B%Q%C%A$O!"(B
foozy@708: \sfilename{series} $BKvHx6aJU$rE>!9$H$7$^$9!#(B
foozy@708: $B%P%C%/%]!<%H%Q%C%A$OB>$NA4$F$N%Q%C%AE,MQ$N>e$GE,MQ$5$l$J$1$l$P$J$j$^$;$s$7!"(B
foozy@708: $B$=$N>e!"(B
foozy@708: ``$BFbItMQ(B''$B%Q%C%A$OITET9g$,L5$$$h$&$KFbIt$KN1$^$jB3$1$kI,MW$,$"$j$^$9!#(B
foozy@708: 
foozy@708: \section{Maintaining the patch series}
foozy@708: 
foozy@708: $BI.<T$N:n6H$N:]$K$O!"(B
foozy@708: $B%Q%C%AE,MQ$r@)8f$9$k$?$a$KJ#?t$N%,!<%I$r;HMQ$7$F$$$^$9!#(B
foozy@708: 
foozy@708: \begin{itemize}
foozy@708: \item ``$B<uM}:Q$_(B''$B%Q%C%A$K$O!"(B\texttt{accepted} $B%,!<%I$,IUM?$5$l$^$9!#(B
foozy@708:   $B$3$N%,!<%I$OKX$I$N>l9g$KM-8z$H$5$l$^$9!#(B
foozy@708:   $B4{$K%Q%C%A$,E,MQ$5$l$F$$$k%=!<%9%D%j!<$K%Q%C%A$rE,MQ$9$k:]$K$O!"(B
foozy@708:   $B%Q%C%A$rE,MQ$5$;$J$$$h$&$K$9$k$3$H$,(B
foozy@708:   \footnote{$BLuCm(B: \texttt{accepted} $B%,!<%IIU$-%Q%C%A$rL58z$K$9$k$3$H$G(B}
foozy@708:   $B$G$-$k$N$G!"(B
foozy@708:   $B8eB3$N%Q%C%A72$Oe:No$KE,MQ$5$l$^$9!#(B
foozy@708: 
foozy@708: \item $B:n6H$O(B``$B40N;(B''$B$7$F$$$k$b$N$N!"(B
foozy@708:   $B>eN.%j%]%8%H%j$NJ]<iC4Ev$KAwIU$5$l$F$$$J$$%Q%C%A(B
foozy@708:   \footnote{$BLuCm(B: $B@h$NJ,N`$G8@$&$H$3$m$N(B``$BJ]N1(B(pending)''}$B$K$O!"(B
foozy@708:   $B2?$b%,!<%I$,IUM?$5$l$^$;$s!#(B
foozy@708:   $B>eN.%j%]%8%H%j$N%3%T!<$KBP$7$F%Q%C%A%9%?%C%/$rE,MQ$9$k>l9g!"(B
foozy@708:   $BFC$K2?$b%,!<%I$r;XDj$7$J$/$F$b!"(B
foozy@708:   $BE,EY$K0BA4$J%=!<%9%D%j!<$rF@$k$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \item $B>eN.%j%]%8%H%j$NJ]<iC4Ev$X$N!J:F!KAwIU$KEv$?$C$F!"(B
foozy@708:   $B:F:n6H$,I,MW$J%Q%C%A$K$O(B \texttt{rework} $B%,!<%I$,IUM?$5$l$^$9!#(B
foozy@708: 
foozy@708: \item $BL\2<3+H/:n6HCf$K$"$k%Q%C%A(B
foozy@708:   \footnote{$BLuCm(B: $B@h$NJ,N`$G8@$&$H$3$m$N(B``$B:n6HCf(B(in progress)''}$B$K$O!"(B
foozy@708:   \texttt{devel} $B%,!<%I$,IUM?$5$l$^$9!#(B
foozy@708: 
foozy@708: \item $B%P%C%/%]!<%H%Q%C%A$K$O!"(B
foozy@708:   $BE,MQBP>]%+!<%M%k$N%P!<%8%g%s$r;XDj$9$kJ#?t$N%,!<%I$,IUM?$5$l$^$9!#(B
foozy@708:   $BNc$($P!"(B~2.6.9 $BHG$X$N%P%C%/%]!<%H$r9T$&%Q%C%A$K$O!"(B
foozy@708:   \texttt{2.6.9} $B%,!<%I$,IUM?$5$l$^$9!#(B
foozy@708: 
foozy@708: \end{itemize}
foozy@708: 
foozy@708: $B$3$l$i$N%,!<%IJ,N`$K$h$j!"(B
foozy@708: $B:G=*E*$K$I$N$h$&$J%=!<%9%D%j!<$,F@$i$l$k$+$r7hDj$9$k:]$K!"(B
foozy@708: $B>/$J$+$i$L=@Fp@-$rF@$k$3$H$,$G$-$^$9!#(B
foozy@708: $BB?$/$N>l9g!"(B
foozy@708: $BE,@Z$J%,!<%I$NA*Br$O9=C[<j=g$NCf$G<+F02=$5$l$F$$$^$9$,!"(B
foozy@708: $BFCJL$J>u678~$1$K%,!<%I$ND4@0$r<jF0$G9T$&$3$H$b2DG=$G$9!#(B
foozy@708: 
foozy@708: \subsection{The art of writing backport patches}
foozy@708: 
foozy@708: MQ $B$r;HMQ$9$k$3$H$G!"(B
foozy@708: $B%P%C%/%]!<%H%Q%C%A$N:n@.$OC1=c$J:n6H$H$J$j$^$9!#(B
foozy@708: $B5lHG$N%+!<%M%kG[2<$K$*$$$F$b%I%i%$%P$,@5>o$K2TF0$9$k$h$&$K!"(B
foozy@708: $B5lHG$N%+!<%M%k$K$*$$$FDs6!$5$l$F$$$J$$5!G=$r;HMQ$9$k%3!<%I$NJQ99$,!"(B
foozy@708: $B%P%C%/%]!<%H%Q%C%A$N$9$Y$-$3$H$NA4$F$G$9!#(B
foozy@708: 
foozy@708: $BNI$$%P%C%/%]!<%H%Q%C%A$r=q$/:]$N%4!<%k$O!"(B
foozy@708: $BBP>]$H$9$k5lHG%+!<%M%k8~$1$K=q$$$?$+$N$h$&$K!"(B
foozy@708: $B$"$J$?$N%3!<%I$rJQ99$9$k$h$&$J%Q%C%A$K$9$k$3$H$G$9!#(B
foozy@708: $B%Q%C%A$,$G$7$c$P$i$J$$Dx!"M}2r$HJ]<i$,MF0W$K$J$j$^$9!#(B
foozy@708: $B%3!<%ICf$NBgNL$N(B \texttt{\#ifdef}$B!J>r7o$K1~$8$FE,MQ$5$l$k%3!<%IJR!K(B
foozy@708: $B$K$h$k(B``$BAM$NAc(B''$B2=$rHr$1$k$?$a$K%P%C%/%]!<%H%Q%C%A72$r=q$/$N$G$"$l$P!"(B
foozy@708: $B%P!<%8%g%s0MB8$J(B \texttt{\#ifdef} $B$r%Q%C%A$K;}$A9~$`$Y$-$G$O$"$j$^$;$s!#(B
foozy@708: $B%P!<%8%g%s0MB8$J(B \texttt{\#ifdef} $B$r;HMQ$9$kBX$o$j$K!"(B
foozy@708: $B8D!9$N%Q%C%A$O%P!<%8%g%s$K0MB8$7$J$$JQ99$r9T$&$h$&$K$7$F!"(B
foozy@708: $B%Q%C%A$NE,MQ$r%,!<%I$K$h$C$F@)8f$9$Y$-$G$9!#(B
foozy@708: 
foozy@708: ``$BDL>o(B''$B$N%Q%C%A$H!"(B
foozy@708: $B$=$NE,MQ7k2L$r99$KJQ99$9$k%P%C%/%]!<%H%Q%C%A$H$r!"(B
foozy@708: $BJL8D$N%0%k!<%W$KJ,N%$9$k$N$K$O#2$D$NM}M3$,$"$j$^$9!#(B
foozy@708: $BBh#1$NM}M3$O!"(B
foozy@708: $B$3$l$i$N%Q%C%A$,:.$6$j9g$C$?>l9g$K!"(B
foozy@708: $B>eN.%j%]%8%H%j$NJ]<iC4Ev$X$N%Q%C%AAwIU$N<+F02=$N:]$K!"(B
foozy@708: \hgext{patchbomb} $B3HD%$N$h$&$J%D!<%k$r;H$&$3$H$,Fq$7$/$J$k$?$a$G$9!#(B
foozy@708: $BBh#2$NM}M3$O!"(B
foozy@708: $B8eB3$NDL>o%Q%C%A$NE,MQ%3%s%F%-%9%H(B
foozy@708: \footnote{$BLuCm(B: \command{patch} $B%U%!%$%k$K$*$1$k!V%3%s%F%-%9%H!W(B}
foozy@708: $B$r%P%C%/%]!<%H%Q%C%A$,:.Mp$5$;$F$7$^$$!"(B
foozy@708: $BDL>o%Q%C%A$NE,MQA0$KE,MQ$5$l$?%P%C%/%]!<%H%Q%C%A(B\emph{$BH4$-(B}$B$G$O!"(B
foozy@708: $BDL>o%Q%C%A$re:No$KE,MQ$9$k$3$H$,$G$-$J$/$J$C$F$7$^$&$?$a$G$9!#(B
foozy@708: 
foozy@708: \section{Useful tips for developing with MQ}
foozy@708: 
foozy@708: \subsection{Organising patches in directories}
foozy@708: 
foozy@708: MQ $B$rMxMQ$7$?<B:_$9$k%W%m%8%'%/%H$G:n6H$r$7$F$$$k$N$G$"$l$P!"(B
foozy@708: $BB?$/$N%Q%C%A$rC_@Q$9$k$3$H$bFq$7$$$3$H$G$O$"$j$^$;$s!#(B
foozy@708: $BNc$($P!"I.<T$O(B 250 $B$rD6$($k%Q%C%A$rJz$($?%Q%C%A%j%]%8%H%j$r;}$C$F$$$^$9!#(B
foozy@708: 
foozy@708: $B%Q%C%A$r8DJL$NO@M}E*$J$^$H$^$j$KJ,N`$G$-$k$N$G$"$l$P!"(B
foozy@708: MQ $B$O%Q%C%AL>$K%Q%96h@Z$j$,4^$^$l$F$$$F$bLdBj$J$$$N$G!"(B
foozy@708: $B$=$l$>$l$N%Q%C%A$r0[$J$k%G%#%l%/%H%j$K3JG<$9$k$3$H$b$G$-$^$9(B
foozy@708: \footnote{$BLuCm(B: MQ $B$O%Q%C%AFbMF$NJ]B8@h$H$7$F!"(B
foozy@708: $B%Q%C%AL>$HF1L>$N%U%!%$%k$r:n@.$9$k$?$a!"(B
foozy@708: $B%Q%C%AL>$K%Q%96h@Z$j$,4^$^$l$k>l9g!"(B
foozy@708: MQ $B$O<+F0E*$K%5%V%G%#%l%/%H%j$r:n@.$7$^$9(B}$B!#(B
foozy@708: 
foozy@708: \subsection{Viewing the history of a patch}
foozy@708: \label{mq-collab:tips:interdiff}
foozy@708: 
foozy@708: $BD94|4V$K$o$?$C$F%Q%C%A$N3+H/$r9T$&>l9g!"(B
foozy@708: \ref{sec:mq:repo} $B@a$G=R$Y$?$h$&$K!"(B
foozy@708: $B%Q%C%A$r%j%]%8%H%j$G4IM}$9$k$N$,NI$$$G$7$g$&!#(B
foozy@708: $B$=$N>l9g$OAa!9$K!"(B
foozy@708: $B%Q%C%A$NJQ99MzNr$N;2>H$K(B 
foozy@708: \hgcmd{diff} $B$,;H$($J$$$3$H$K5$IU$/$3$H$G$7$g$&!#(B
foozy@708: $B$3$l$O<B:]$N%3!<%I$NFs<!GI@8J*(B($B:9J,$N:9J,(B)$B$r8+$F$$$k$3$H0J30$K$b!"(B
foozy@708: $B%?%$%`%9%?%s%W$d%Q%C%A99?7;~$N%G%#%l%/%H%jL>Ey$r2~JQ$9$k$3$H$G(B
foozy@708: MQ $B$,;(2;$r2C$($F$7$^$C$F$$$k$3$H$K860x$,$"$j$^$9!#(B
foozy@708: 
foozy@708: Mercurial $B$KF1:-$5$l$F$$$k(B \hgext{extdiff} $B3HD%$r;H$&$3$H$G!"(B
foozy@708: $B#2$D$NHG$N%Q%C%A:9J,$r4vJ,FI$_$d$9$$$b$N$K$9$k$3$H$,$G$-$^$9!#(B
foozy@708: $B$3$N3HD%$r;H$&$?$a$K$O!"(B
foozy@708: $B%5!<%I%Q!<%F%#!<%Q%C%1!<%8$G$"$k(B
foozy@708: \package{patchutils}~\cite{web:patchutils} $B$,I,MW$G$9!#(B
foozy@708: $B$3$N%Q%C%1!<%8$,Ds6!$9$k(B \command{interdiff} $B$H$$$&%3%^%s%I$O!"(B
foozy@708: $B:9J,4V$N:9J,$r#1$D$N:9J,$H$7$FI=<($7$^$9!#(B
foozy@708: $BF1$8:9J,$N#2$D$NHG(B
foozy@708: \footnote{$BLuCm(B: $B!VF1$8%Q%C%A$N0[$J$kHG!W$N0U$+!)(B}
foozy@708: $B$KBP$7$F$3$N%3%^%s%I$rE,MQ$9$k$H!"(B
foozy@708: $B:G=i$NHG$+$i<!$NHG$X$HJQ99$9$k$?$a$N:9J,$r@8@.$7$^$9!#(B
foozy@708: 
foozy@708: $B$$$D$b$N$h$&$K!"(B
foozy@708: \hgrc $B%U%!%$%k$N(B \rcsection{extensions} 
foozy@708: $B%;%/%7%g%s$K9T$rDI2C$9$k$3$H$G!"(B
foozy@708: \hgext{extdiff} $B3HD%$rM-8z2=$9$k$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \begin{codesample2}
foozy@708:   [extensions]
foozy@708:   extdiff =
foozy@708: \end{codesample2}
foozy@708: 
foozy@708: \command{interdiff} $B%3%^%s%I$O#2$D$N%U%!%$%kL>$N;XDj$,I,MW$G$9$,!"(B
foozy@708: \hgext{extdiff} $B3HD%$O!"(B
foozy@708: $B$=$l$>$lG$0U$N?t$N%U%!%$%k$rG[2<$K;}$D!"(B
foozy@708: $B#2$D$N%G%#%l%/%H%j$KBP$7$FF0:n$9$k%W%m%0%i%`$N;XDj$,I,MW$G$9!#(B
foozy@708: $B$=$N$?$a!"(B
foozy@708: $B$3$l$i#2$D$N%G%#%l%/%H%jG[2<$N8D!9$N%U%!%$%kBP$KBP$7$F(B
foozy@708: \command{interdiff} $B$r<B9T$9$k>.$5$J%W%m%0%i%`$,I,MW$G$9!#(B
foozy@708: $BK\=q$N%=!<%9%3!<%I%j%]%8%H%j$K$*$1$k(B
foozy@708: \dirname{examples} $B%G%#%l%/%H%jG[2<$K!"(B
foozy@708: \sfilename{hg-interdiff} $B$H$7$F3JG<$5$l$F$$$^$9!#(B
foozy@708: 
foozy@708: \excode{hg-interdiff}
foozy@708: 
foozy@708: \sfilename{hg-interdiff} $B$,%7%'%k$N%3%^%s%I8!:w%Q%9>e$KM-$k>l9g!"(B
foozy@708: MQ $B$N%Q%C%A%G%#%l%/%H%j$+$i0J2<$N$h$&$K$7$F5/F0$9$k$3$H$,$G$-$^$9!#(B
foozy@708: 
foozy@708: \begin{codesample2}
foozy@708:   hg extdiff -p hg-interdiff -r A:B my-change.patch
foozy@708: \end{codesample2}
foozy@708: 
foozy@708: $B$*$=$i$/$3$ND9$?$i$7$$%3%^%s%I$r2?EY$b;H$&$3$H$K$J$k$G$7$g$&$+$i!"(B
foozy@708: $B:FEY(B \hgrc $B$rJT=8$7$F!"(B
foozy@708: \hgext{hgext} $B$r(B Mercurial $B$NIaDL$N%3%^%s%IJB$K;H$($k$h$&$K$7$^$7$g$&!#(B
foozy@708: 
foozy@708: \begin{codesample2}
foozy@708:   [extdiff]
foozy@708:   cmd.interdiff = hg-interdiff
foozy@708: \end{codesample2}
foozy@708: 
foozy@708: $B$3$N5-=R$K$h$j(B \texttt{interdiff} $B$,(B
foozy@708: \hgext{hgext} $B$+$iMxMQ$G$-$k$h$&$K$J$j$^$9$N$G!"(B
foozy@708: $B@h$N(B \hgxcmd{extdiff}{extdiff} $B5/F0$bC;$/$J$C$F4vJ,;H$$$d$9$/$J$k$G$7$g$&!#(B
foozy@708: 
foozy@708: \begin{codesample2}
foozy@708:   hg interdiff -r A:B my-change.patch
foozy@708: \end{codesample2}
foozy@708: 
foozy@708: \begin{note}
foozy@708:   \command{interdiff} $B%3%^%s%I$O!"(B
foozy@708:   $B>l9g$@$1@5$7$/5!G=$7$^$9!#(B
foozy@708:   The \command{interdiff} command works well only if the underlying
foozy@708:   files against which versions of a patch are generated remain the
foozy@708:   same.  
foozy@708:   $B%Q%C%A$N@8@.!&%U%!%$%k$NJQ99$*$h$S%Q%C%A$N99?7$r9T$C$?>l9g!"(B
foozy@708:   \command{interdiff} $B$OM-MQ$J=PNO$r@8@.$7$J$$$3$H$,$"$j$^$9!#(B
foozy@708: \end{note}
foozy@708: 
foozy@708: \hgext{extdiff} $B3HD%$O!"(B
foozy@708: MQ $B%Q%C%A$NI=<(5!G=$N8~>e$KN1$^$i$J$$M-MQ$J$b$N$G$9!#(B
foozy@708: \hgext{extdiff} $B3HD%$K4X$9$k>\:Y$O!"(B
foozy@708: \ref{sec:hgext:extdiff} $B@a$r;2>H$7$F$/$@$5$$!#(B
foozy@708: 
foozy@708: %%% Local Variables: 
foozy@708: %%% mode: latex
foozy@708: %%% TeX-master: "00book"
foozy@708: %%% End: 




