rev |
line source |
foozy@708
|
1 \chapter{Advanced uses of Mercurial Queues}
|
foozy@708
|
2 \label{chap:mq-collab}
|
foozy@708
|
3
|
foozy@708
|
4 Mercurial Queues $B$NMQK!$r??$C@5D>$KOCBj$K$9$k$N$O4JC1$G$9$,!"(B
|
foozy@708
|
5 $B>/!9M^@)$r8z$+$;$F!"9~$_F~$C$?3+H/4D6-$G$N:n6H$KLrN)$D$h$&$J!"(B
|
foozy@708
|
6 $B$"$^$jMxMQ$5$l$J$$5!G=$r4v$D$+@bL@$7$h$&$H;W$$$^$9!#(B
|
foozy@708
|
7
|
foozy@708
|
8 $B$3$N>O$G$O!"(B
|
foozy@708
|
9 Linux $B%+!<%M%k8~$1$N(B Infiniband $B%G%P%$%9%I%i%$%P3+H/$K$*$$$F!"(B
|
foozy@708
|
10 $B4IM}$KMQ$$$F$$$?5;K!$r;HMQNc$H$7$F<h$j>e$2$^$9!#(B
|
foozy@708
|
11 $B$3$N%G%P%$%9%I%i%$%P$O(B
|
foozy@708
|
12 $B!J0lHL$N%G%P%$%9%I%i%$%PDxEY$K$O!KBg$-$/!"(B
|
foozy@708
|
13 35 $B$N%=!<%9%U%!%$%k$K$^$?$,$C$?(B 25,000 $B9T$+$i$J$C$F$*$j!"(B
|
foozy@708
|
14 $B>/?t$N3+H/%A!<%`$K$h$jJ]<i$5$l$F$$$^$9!#(B
|
foozy@708
|
15
|
foozy@708
|
16 $B$3$N>O$G07$C$F$$$kBP>]$O(B Linux $B$KFC2=$7$?$b$N$G$9$,!"(B
|
foozy@708
|
17 $B<+?H$,=jM-$7$F$$$J$$%3!<%I$r85$KB?$/$N3+H/$r9T$&I,MW$,$"$k6ILL$G!"(B
|
foozy@708
|
18 $BF1MM$NJ}?K$,E,MQ$G$-$k$G$7$g$&!#(B
|
foozy@708
|
19
|
foozy@708
|
20 \section{The problem of many targets}
|
foozy@708
|
21
|
foozy@708
|
22 Linux $B%+!<%M%k$OIQHK$KJQ99$5$l!"(B
|
foozy@708
|
23 $BFbItE*$K$O7h$7$F0BDj$7$F$$$^$;$s!#(B
|
foozy@708
|
24 $B3+H/<T$O%j%j!<%9$N4V$KEY!9;W$$@Z$C$?JQ99$r9T$$$^$9!#(B
|
foozy@708
|
25 $B$3$N$?$a!"(B
|
foozy@708
|
26 Linux $B%+!<%M%k$NFCDj$N%j%j!<%9HG$G5!G=$9$k%I%i%$%P!<$NHG$O!"(B
|
foozy@708
|
27 $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
|
28
|
foozy@708
|
29 $B%I%i%$%P$NJ]<i$r9T$&$?$a$K$O!"(B
|
foozy@708
|
30 $B$$$/$D$+$N8DJL$N(B Linux $B$NHG$r0U<1$9$kI,MW$,$"$j$^$9!#(B
|
foozy@708
|
31
|
foozy@708
|
32 \begin{itemize}
|
foozy@708
|
33 \item $BBh0l$K$O!"%a%$%s$N(B Linux $B%+!<%M%k3+H/%D%j!<$G$9!#(B
|
foozy@708
|
34 $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
|
35 $BH`$i$,%+!<%M%k$N%5%V%7%9%F%`$KBP$7$F9T$&$N$HF1DxEY$K!"(B
|
foozy@708
|
36 ``$B3+H/$7$J$,$i$N(B''$BJQ99$,9T$o$l$^$9!#(B
|
foozy@708
|
37
|
foozy@708
|
38 \item $B3+H/$7$F$$$k%I%i%$%P$rMxMQ$9$k$3$H$,$G$-$J$$8E$$(B
|
foozy@708
|
39 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
|
40 $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
|
41 $B!J%3!<%I$N(B\emph{$B%P%C%/%]!<%H(B}$B$K$O!"(B
|
foozy@708
|
42 $B$=$N%3!<%I$N3+H/BP>]$H$J$kHG$h$j$b8E$$HG$N4D6-$G2TF0$5$;$k$?$a$N!"(B
|
foozy@708
|
43 $B%3!<%I$N2~JQ$,I,MW$G$9!K(B
|
foozy@708
|
44
|
foozy@708
|
45 \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
|
46 $BA4BN$KBP$9$k99?7$r6/$$$k$3$H$J$/?75,5!G=$rDs6!$9$k$?$a$K!"(B
|
foozy@708
|
47 $B%=%U%H%&%'%"$N%j%j!<%9%9%1%8%e!<%k$O!"(B
|
foozy@708
|
48 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
|
49 $BI,$:$7$bB-JB$_$rB7$($k$o$1$G$O$"$j$^$;$s!#(B
|
foozy@708
|
50
|
foozy@708
|
51 \end{itemize}
|
foozy@708
|
52
|
foozy@708
|
53 \subsection{Tempting approaches that don't work well}
|
foozy@708
|
54
|
foozy@708
|
55 $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
|
56 $B#2$D$N(B``$BI8=`E*$J(B''$BJ}K!$,$"$j$^$9!#(B
|
foozy@708
|
57
|
foozy@708
|
58 $B#1$DL\$NJ}K!$O!"(B
|
foozy@708
|
59 $B$=$l$>$l$,C10l$N4D6-$rBP>]$H$9$kJ#?t$N%V%i%s%A$r4IM}$9$kJ}K!$G$9!#(B
|
foozy@708
|
60 $B$3$NJ}K!$NLdBjE@$O!"(B
|
foozy@708
|
61 $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
|
62 $BE4$N5,N'$G$b$C$FK>$`I,MW$,M-$k$3$H$G$9!#(B
|
foozy@708
|
63 $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
|
64 $B$=$N8e$GA4$F$N%P%C%/%]!<%HMQ%j%]%8%H%j$K?;F)$5$;$^$9!#(B
|
foozy@708
|
65 $B%P%C%/%]!<%H$G$NJQ99$O!"$=$NEAGE$,99$K%V%i%s%A8BDj$5$l$^$9!#(B
|
foozy@708
|
66 $B=jB030$N%V%i%s%A$KE,MQ$5$l$k$h$&$J%P%C%/%]!<%H8~$1$NJQ99$O!"(B
|
foozy@708
|
67 $B$*$=$i$/%I%i%$%P$N%3%s%Q%$%k$rK8$2$k$G$7$g$&!#(B
|
foozy@708
|
68
|
foozy@708
|
69 $B#2$DL\$NJ}K!$O!"(B
|
foozy@708
|
70 $B8D!9$N%3!<%IJR$NM-8z!?L58z$r!"(B
|
foozy@708
|
71 $B0U?^$9$kBP>]$K0MB8$7$F@Z$jBX$($k$?$a$N>r7oJ8$GKd$a$i$l$?!"(B
|
foozy@708
|
72 $BC10l$N%=!<%9%D%j!<$rJ]<i$9$kJ}K!$G$9!#(B
|
foozy@708
|
73 $B$3$l$i$N(B``ifdef''$B5-=R$O!"(B
|
foozy@708
|
74 Linux $B%+!<%M%k%D%j!<$G$O5v$5$l$F$$$J$$$N$G!"(B
|
foozy@708
|
75 $B$3$l$i$r<h$j=|$$$Fe:No$J%D%j!<$r@8@.$9$k$?$a$N!"(B
|
foozy@708
|
76 $B<jF0$J$$$7<+F0$N<j=g$,I,MW$G$9!#(B
|
foozy@708
|
77 $B$3$NN.57$GJ]<i$5$l$k%3!<%I%Y!<%9$OAa!9$K!"(B
|
foozy@708
|
78 $BM}2r$bJ]<i$b:$Fq$J>r7oJ,4t$N!VAM$NAc!W$H$J$k$G$7$g$&!#(B
|
foozy@708
|
79
|
foozy@708
|
80 $B$3$l$i$N$$$:$l$N<jK!$b!"(B
|
foozy@708
|
81 $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
|
82 $BI8=`%+!<%M%k$H6&$KG[I[$5$l$k(B Linux $B%I%i%$%P$N>l9g!"(B
|
foozy@708
|
83 Linus $B;a$N%=!<%9%D%j!<$O!"(B
|
foozy@708
|
84 $B@$3&Cf$,@5E}$H$_$J$9%3!<%I$N%3%T!<$+$i9=@.$5$l$^$9!#(B
|
foozy@708
|
85 $B>eN.%j%]%8%H%j$K$*$1$k(B``$B;d$N(B''$B%I%i%$%P$O!"(B
|
foozy@708
|
86 Linus $B;a$N%=!<%9%D%j!<>e$K2~JQFbMF$,H?1G$5$l$k$^$G$K$O!"(B
|
foozy@708
|
87 $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
|
88
|
foozy@708
|
89 $B$3$l$i$N<jK!$O!"(B
|
foozy@708
|
90 $B>eN.%j%]%8%H%j$X$N%Q%C%A$NBN:[$r@0$($k$N$rFq$7$/$7$F$7$^$&!"(B
|
foozy@708
|
91 $B$H$$$&7gE@$b;}$C$F$$$^$9!#(B
|
foozy@708
|
92
|
foozy@708
|
93 Mercurial Queues $B$O!"(B
|
foozy@708
|
94 $B$3$l$^$G=R$Y$F$-$?>u67$G$N3+H/$r4IM}$9$k$?$a$N!"(B
|
foozy@708
|
95 $BNI$$8uJd$H8@$($^$9!#(B
|
foozy@708
|
96 $B$^$5$K$3$N$h$&$J>u67$K$*$$$F!"(B
|
foozy@708
|
97 MQ $B$O:n6H$r2wE,$K$9$k99$K4v$D$+$NIU2CE*5!G=$r;}$C$F$$$^$9!#(B
|
foozy@708
|
98
|
foozy@708
|
99 \section{$B%,!<%I$K$h$k>r7oIU$-%Q%C%AE,MQ(B}
|
foozy@708
|
100
|
foozy@708
|
101 $B$*$=$i$/!"(B
|
foozy@708
|
102 $BB?$/$NBP>]4D6-$KBP$9$k7rA4@-$rJ]<i$9$kJ}K!$O!"(B
|
foozy@708
|
103 $B=jDj$N>u67$4$H$KE,MQ$5$l$kFCDj$N%Q%C%A$rA*Br$G$-$k$3$H!"(B
|
foozy@708
|
104 $B$H8@$($k$G$7$g$&!#(B
|
foozy@708
|
105 MQ $B$O!"(B
|
foozy@708
|
106 $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
|
107 $B$H8F$P$l$k5!G=$rDs6!$7$^$9!#(B
|
foozy@708
|
108 $B$^$:$O$8$a$K!"(B
|
foozy@708
|
109 $B<B83$N$?$a$N4JAG$J%j%]%8%H%j$r:n@.$7$^$7$g$&!#(B
|
foozy@708
|
110
|
foozy@708
|
111 \interaction{mq.guards.init}
|
foozy@708
|
112
|
foozy@708
|
113 $B$3$N<j=g$K$h$j!"(B
|
foozy@708
|
114 $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
|
115 $B>.$5$J%j%]%8%H%j$,F@$i$l$^$9!#(B
|
foozy@708
|
116
|
foozy@708
|
117 $B>r7oIU$-E,MQ$N9M$(J}$O!"(B
|
foozy@708
|
118 $BG$0U$NC1=c$JJ8;zNs$+$i$J$k(B\emph{$B%,!<%I(B}$B$5$l$?(B``$B;%(B''
|
foozy@708
|
119 (tag)$B$r%Q%C%A$KIUM?$7$F$*$-!"(B
|
foozy@708
|
120 $B%Q%C%AE,MQ$N:]$K!";HMQ$9$Y$-FCDj$N%,!<%I$r(B MQ $B$KBP$7$F65$($k!"(B
|
foozy@708
|
121 $B$H$$$&$b$N$G$9!#(B
|
foozy@708
|
122 $B$"$i$+$8$aA*Br$7$F$*$$$?%,!<%I$K1~$8$F!"(B
|
foozy@708
|
123 MQ $B$O%,!<%I$5$l$?%Q%C%A$rE,MQ$9$k$+8+Aw$k$+$r7hDj$7$^$9!#(B
|
foozy@708
|
124
|
foozy@708
|
125 $B8D!9$N%Q%C%A$OG$0U$N?t$N%,!<%I$r;}$D$3$H$,$G$-!"(B
|
foozy@708
|
126 $B$=$l$>$l$N%,!<%I$O(B\emph{$B%]%8%F%#%V(B}
|
foozy@708
|
127 $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
|
128 $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
|
129 $B%,!<%I$r;}$?$J$$%Q%C%A$O>o$KE,MQ$5$l$^$9!#(B
|
foozy@708
|
130
|
foozy@708
|
131 \section{$B%Q%C%A$N%,!<%I$r@)8f$9$k(B}
|
foozy@708
|
132
|
foozy@708
|
133 \hgxcmd{mq}{qguard} $B%3%^%s%I$O!"(B
|
foozy@708
|
134 $B$I$N%,!<%I$r%Q%C%A$KE,MQ$9$k$+$r7hDj$9$k$+!"(B
|
foozy@708
|
135 $B$5$b$J$/$P8=;~E@$GM-8z$J%,!<%I$rI=<($7$^$9!#(B
|
foozy@708
|
136 $B0z?t$,L5$$>l9g!"8=:_$N:G>e0L%Q%C%A$N%,!<%I$rI=<($7$^$9!#(B
|
foozy@708
|
137
|
foozy@708
|
138 \interaction{mq.guards.qguard}
|
foozy@708
|
139
|
foozy@708
|
140 $B%Q%C%A$K%]%8%F%#%V$J%,!<%I$r@_Dj$9$k$K$O!"(B
|
foozy@708
|
141 $B%,!<%IL>$N@\F,<-$H$7$F(B ``\texttt{+}'' $B$rIUM?$7$^$9!#(B
|
foozy@708
|
142
|
foozy@708
|
143 \interaction{mq.guards.qguard.pos}
|
foozy@708
|
144
|
foozy@708
|
145 $B%Q%C%A$K%M%,%F%#%V$J%,!<%I$r@_Dj$9$k$K$O!"(B
|
foozy@708
|
146 $B%,!<%IL>$N@\F,<-$H$7$F(B ``\texttt{-}'' $B$rIUM?$7$^$9!#(B
|
foozy@708
|
147
|
foozy@708
|
148 \interaction{mq.guards.qguard.neg}
|
foozy@708
|
149
|
foozy@708
|
150 \begin{note}
|
foozy@708
|
151 \hgxcmd{mq}{qguard} $B%3%^%s%I$O!"%Q%C%A$K%,!<%I$r@_Dj$7$^$9$,!"(B
|
foozy@708
|
152 $B%Q%C%A$N%,!<%I@_Dj$r(B\emph{$BJQ99(B}$B$7$?$j$O$7$^$;$s!#(B
|
foozy@708
|
153 $B$D$^$j!"(B
|
foozy@708
|
154 $B%Q%C%A$K(B \hgcmdargs{qguard}{+a +b} $B$rE,MQ$7$?8e$K!"(B
|
foozy@708
|
155 $BF1$8%Q%C%A$K(B \hgcmdargs{qguard}{+c} $B$rE,MQ$7$?>l9g!"(B
|
foozy@708
|
156 $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
|
157 \end{note}
|
foozy@708
|
158
|
foozy@708
|
159 Mercurial $B$O!"(B
|
foozy@708
|
160 $B2r<a!&<jF0JT=8$,6&$KMF0W$J7A<0$G!"(B
|
foozy@708
|
161 $B%,!<%I>pJs$r(B \sfilename{series} $B$K3JG<$7$^$9(B
|
foozy@708
|
162 $B!J8@$$49$($k$J$i!"(B
|
foozy@708
|
163 \hgxcmd{mq}{qguard} $B%3%^%s%I$rMxMQ$9$kI,MW$OL5$/!"(B
|
foozy@708
|
164 \sfilename{series} $B%U%!%$%k$rD>@\JT=8$7$F$b9=$$$^$;$s!K!#(B
|
foozy@708
|
165
|
foozy@708
|
166 \interaction{mq.guards.series}
|
foozy@708
|
167
|
foozy@708
|
168 \section{$B;HMQ$9$k%,!<%I$NA*Br(B}
|
foozy@708
|
169
|
foozy@708
|
170 \hgxcmd{mq}{qselect} $B%3%^%s%I$O!"M-8z$K$9$k%,!<%I$r7hDj$7$^$9!#(B
|
foozy@708
|
171 $B%,!<%I$,7hDj$9$k$3$H$G!"(B
|
foozy@708
|
172 $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
|
173 $B$3$N%3%^%s%I$O$=$l0J30$NF/$-$r$7$^$;$s!#(B
|
foozy@708
|
174 $BFC$K!"4{$KE,MQ:Q$_$N%Q%C%A$KBP$7$F$O!"0l@Z2?$b9T$$$^$;$s!#(B
|
foozy@708
|
175
|
foozy@708
|
176 $B0z?t$,;XDj$5$l$J$$>l9g!"(B
|
foozy@708
|
177 \hgxcmd{mq}{qselect} $B%3%^%s%I$O!"(B
|
foozy@708
|
178 $B8=;~E@$GM-8z$K$J$C$F$$$k%,!<%I$r#19T$K#1$D$E$DI=<($7$^$9!#(B
|
foozy@708
|
179 $B8D!9$N0z?t$O!"E,MQ$5$l$k%,!<%I$NL>A0$H$_$J$5$l$^$9!#(B
|
foozy@708
|
180
|
foozy@708
|
181 \interaction{mq.guards.qselect.foo}
|
foozy@708
|
182
|
foozy@708
|
183 $B8=:_A*Br$5$l$F$$$k%,!<%I$N0lMw$,(B
|
foozy@708
|
184 \sfilename{guards} $B%U%!%$%k$K3JG<$5$l$F$$$^$9$N$G!"(B
|
foozy@708
|
185 $B6=L#$,$"$l$P8+$F$_$k$N$bNI$$$G$7$g$&!#(B
|
foozy@708
|
186
|
foozy@708
|
187 \interaction{mq.guards.qselect.cat}
|
foozy@708
|
188
|
foozy@708
|
189 \hgxcmd{mq}{qpush} $B$r<B9T$9$k$3$H$G!"(B
|
foozy@708
|
190 $B%,!<%IA*Br$N8z2L$r8+$k$3$H$,$G$-$^$9!#(B
|
foozy@708
|
191
|
foozy@708
|
192 \interaction{mq.guards.qselect.qpush}
|
foozy@708
|
193
|
foozy@708
|
194
|
foozy@708
|
195 ``\texttt{+}'' $B$J$$$7(B ``\texttt{-}''
|
foozy@708
|
196 $B$G;O$^$kL>A0$O%,!<%IL>$K$O$G$-$^$;$s!#(B
|
foozy@708
|
197 $B6uGrJ8;z$r4^$`$b$N$b%,!<%IL>$K$O$J$l$^$;$s$,!"(B
|
foozy@708
|
198 $B$=$l$$$,$$$NBgDq$NJ8;z$O;HMQ2DG=$G$9!#(B
|
foozy@708
|
199 $BIT@5$J%,!<%IL>$N;HMQ$O!"(BMQ $B$K$h$j7Y9p$5$l$^$9!#(B
|
foozy@708
|
200
|
foozy@708
|
201 \interaction{mq.guards.qselect.error}
|
foozy@708
|
202
|
foozy@708
|
203 $B%,!<%IA*Br$NJQ99$O!"E,MQ$5$l$k%Q%C%A$r@Z$jBX$($^$9!#(B
|
foozy@708
|
204
|
foozy@708
|
205 \interaction{mq.guards.qselect.quux}
|
foozy@708
|
206
|
foozy@708
|
207 $B%M%,%F%#%V$J%,!<%I$,%]%8%F%#%V$J%,!<%I$KM%@h$9$k$3$H$r!"(B
|
foozy@708
|
208 $B0J2<$NNc$G8+$k$3$H$,$G$-$^$9!#(B
|
foozy@708
|
209
|
foozy@708
|
210 \interaction{mq.guards.qselect.foobar}
|
foozy@708
|
211
|
foozy@708
|
212 \section{MQ $B$N%Q%C%AE,MQ%k!<%k(B}
|
foozy@708
|
213
|
foozy@708
|
214 $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
|
215
|
foozy@708
|
216 \begin{itemize}
|
foozy@708
|
217 \item $B%,!<%IL5$7%Q%C%A$O>o$KE,MQ$5$l$^$9!#(B
|
foozy@708
|
218
|
foozy@708
|
219 \item $B8=:_A*Br$5$l$F$$$k%,!<%I$K%^%C%A$9$k%M%,%F%#%V%,!<%I$,$"$k>l9g!"(B
|
foozy@708
|
220 $B%Q%C%A$OE,MQ$5$l$^$;$s!#(B
|
foozy@708
|
221
|
foozy@708
|
222 \item $B8=:_A*Br$5$l$F$$$k%,!<%I$K%^%C%A$9$k%]%8%F%#%V%,!<%I$,$"$k>l9g!"(B
|
foozy@708
|
223 $B%Q%C%A$OE,MQ$5$l$^$9!#(B
|
foozy@708
|
224
|
foozy@708
|
225 \item $B8=:_A*Br$5$l$F$$$k%,!<%I$K%^%C%A$9$k%,!<%I$,2?$bL5$$>l9g!"(B
|
foozy@708
|
226 $B%Q%C%A$OE,MQ$5$l$^$;$s!#(B
|
foozy@708
|
227
|
foozy@708
|
228 \end{itemize}
|
foozy@708
|
229
|
foozy@708
|
230 \section{Trimming the work environment}
|
foozy@708
|
231
|
foozy@708
|
232 $B@h$K=R$Y$?(B
|
foozy@708
|
233 Linux $B%+!<%M%k8~$1$N(B Infiniband
|
foozy@708
|
234 $B%G%P%$%9%I%i%$%P3+H/$G$N%Q%C%AE,MQ$G$O!"(B
|
foozy@708
|
235 Linux $B%+!<%M%k$NDL>o$N%=!<%9%D%j!<$O;HMQ$7$^$;$s!#(B
|
foozy@708
|
236 $B$=$NBe$o$j!"(B
|
foozy@708
|
237 Infiniband $B%G%P%$%9%I%i%$%P3+H/$K4XO"$9$k%=!<%9!?(B
|
foozy@708
|
238 $B%X%C%@$N$_$r4^$`%j%]%8%H%j$r:n@.$7!"(B
|
foozy@708
|
239 $B$=$3$KBP$7$F%Q%C%A$rE,MQ$9$k$h$&$K$7$^$9!#(B
|
foozy@708
|
240 $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
|
241 $B:n6H$r9T$&$N$b4JC1$G$9!#(B
|
foozy@708
|
242
|
foozy@708
|
243 $B=L>.HG$N%j%]%8%H%j$r:n@.$7$?$J$i$P!"(B
|
foozy@708
|
244 $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
|
245 $B$3$3$G8@$&!V(Bchoose$B!W!JA*Br!K$O!"(B
|
foozy@708
|
246 \hgcmd{update} $B<B9T$r;X$9$N$G$O$J$$$+!)(B
|
foozy@708
|
247 $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
|
248 XXXXXXXXXXXX
|
foozy@708
|
249 This is a snapshot of the Linux kernel tree as of a revision
|
foozy@708
|
250 of my choosing.
|
foozy@708
|
251 XXXXXXXXXXXX
|
foozy@708
|
252 $BE,MQBP>]$rA*Br$9$k:]$KI.<T$O!"(B
|
foozy@708
|
253 $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
|
254 $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
|
255 $B%+!<%M%k%D%j!<Cf$N3+H/$K4XO"$9$kIt0L$K4X$7$F!"(B
|
foozy@708
|
256 $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
|
257 $B=L>.HG%j%]%8%H%j$HDL>oHG$N%+!<%M%k%D%j!<$N$$$:$l$KBP$7$F$b!"(B
|
foozy@708
|
258 $B%Q%C%A$NE,MQ$,2DG=$K$J$j$^$9!#(BXXXXXX
|
foozy@708
|
259 Since the snapshot
|
foozy@708
|
260 preserves the ``shape'' and content of the relevant parts of the
|
foozy@708
|
261 kernel tree, I can apply my patches on top of either my tiny
|
foozy@708
|
262 repository or a normal kernel tree.
|
foozy@708
|
263
|
foozy@708
|
264 $BDL>o$O!"(B
|
foozy@708
|
265 $B%Q%C%A$NE,MQBP>]$H$J$k%=!<%9%D%j!<$N%Y!<%9$K$O!"(B
|
foozy@708
|
266 $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
|
267 $B$=$&$9$k$3$H$G!"(B
|
foozy@708
|
268 $B:n@.$7$?%Q%C%A$r>eN.%j%]%8%H%j$NC4Ev<T$XAwIU$9$k:]$K!"(B
|
foozy@708
|
269 $BKX$I!J$"$k$$$OA4$/!K2~JQ$NI,MW$,L5$/$J$k$G$7$g$&!#(B
|
foozy@708
|
270
|
foozy@708
|
271 \section{Dividing up the \sfilename{series} file}
|
foozy@708
|
272
|
foozy@708
|
273 $BI.<T$O!"(B\sfilename{series} $B$KNs5s$5$l$k%Q%C%A$r!"(B
|
foozy@708
|
274 $B4v$D$+$NO@M}E*$J$^$H$^$j$KJ,N`$7$F$$$^$9!#(B
|
foozy@708
|
275 $B$=$l$>$l$N%Q%C%AJ,N`$O!"(B
|
foozy@708
|
276 $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
|
277
|
foozy@708
|
278 $BI.<T$N07$C$F$$$k%Q%C%AJ,N`$O!"0J2<$N$h$&$JJB$S$K$J$C$F$$$^$9!#(B
|
foozy@708
|
279 $BJ,N`$N=g=x$O=EMW$J$N$G!"J,N`$r>R2p$7$?8e$G@bL@$7$^$9!#(B
|
foozy@708
|
280
|
foozy@708
|
281 \begin{itemize}
|
foozy@708
|
282 \item ``$B<uM}:Q$_(B(accepted)''$BJ,N`(B:
|
foozy@708
|
283 $B3+H/%A!<%`$,(B Infiniband $B%5%V%7%9%F%`$NJ]<iC4Ev$KAwIU$7$F!"(B
|
foozy@708
|
284 $B4{$K<uM}$O$5$l$F$$$k$b$N$N!"(B
|
foozy@708
|
285 $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
|
286 $B$^$@H?1G$5$l$F$$$J$$%Q%C%A$NJ,N`$G$9!#(B
|
foozy@708
|
287 $B$3$l$i$O!"(B
|
foozy@708
|
288 $B>eN.%j%]%8%H%j$NJ]<iC4Ev$N%j%]%8%H%j$HF1$8>uBV$rF@$k$?$a$K!"(B
|
foozy@708
|
289 $B%=!<%9%D%j!<$rJQ49$9$k(B``$BFI$_=P$78BDj(B''$B%Q%C%A$G$9!#(B
|
foozy@708
|
290
|
foozy@708
|
291 \item ``$B:F:n6H(B(rework)''$BJ,N`(B:
|
foozy@708
|
292 $B>eN.%j%]%8%H%j$NJ]<iC4Ev$KAwIU$7$?$b$N$N!"(B
|
foozy@708
|
293 $B<uM}$KEv$?$C$FJQ99$rMW5a$5$l$?%Q%C%A$NJ,N`!#(B
|
foozy@708
|
294
|
foozy@708
|
295 \item ``$BJ]N1(B(pending)''$BJ,N`(B:
|
foozy@708
|
296 $B>eN.%j%]%8%H%j$NJ]<iC4Ev$KAwIU$3$=$7$F$$$J$$$b$N$N!"(B
|
foozy@708
|
297 $B4{$K:n6H$r=*$($?%Q%C%A$NJ,N`!#(B
|
foozy@708
|
298 $B$7$P$i$/$N4V$O(B``$BFI$_=P$78BDj(B''$B$H$7$F07$o$l$^$9!#(B
|
foozy@708
|
299 $B>eN.%j%]%8%H%j$NJ]<iC4Ev$K$h$j<uM}$5$l$l$P!"(B
|
foozy@708
|
300 $B$3$N%Q%C%A$r(B``$B<uM}:Q$_(B''$BJ,N`$NKvHx$X$H0\F0$7$^$9!#(B
|
foozy@708
|
301 $B<uM}$KEv$?$C$FJQ99$,MW5a$5$l$?>l9g!"(B
|
foozy@708
|
302 ``$B:F:n6H(B''$BJ,N`$N@hF,$X$H0\F0$7$^$9!#(B
|
foozy@708
|
303
|
foozy@708
|
304 \item ``$B:n6HCf(B(in progress)''$BJ,N`(B:
|
foozy@708
|
305 $BL\2<$N$H$3$m3hH/$K:n6H$,9T$o$l$F$$$k%Q%C%A$NJ,N`!#(B
|
foozy@708
|
306 $B$3$NJ,N`$N%Q%C%A$O!"30It$K8x3+$9$Y$-$G$O$"$j$^$;$s!#(B
|
foozy@708
|
307
|
foozy@708
|
308 \item ``$B%P%C%/%]!<%H(B(backport)''$BJ,N`(B:
|
foozy@708
|
309 $B8E$$HG$N%+!<%M%k$N%=!<%9%D%j!<$KE,9g$5$;$k$?$a$N%Q%C%A$NJ,N`!#(B
|
foozy@708
|
310
|
foozy@708
|
311 \item ``$BFbItMQ(B(do not ship)''$BJ,N`(B:
|
foozy@708
|
312 $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
|
313 $B$3$N$h$&$J%Q%C%A$NNc$H$7$F$O!"(B
|
foozy@708
|
314 $B%I%i%$%P<1JLMQ$NKd$a9~$_J8;zNs$NJQ99$r9T$&$3$H$G!"(B
|
foozy@708
|
315 $B%=!<%9%D%j!<$N$b$N$H$O0[$J$k%I%i%$%P<BAu$NHG(B
|
foozy@708
|
316 \footnote{$BLuCm(B: $B3+H/Cf$N%I%i%$%P$N$3$H!)(B}$B$H!"(B
|
foozy@708
|
317 $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
|
318 $BF0:n3NG'Ey$K$*$1$k6hJL$rMF0W$K$9$k%Q%C%A$,$"$j$^$9!#(B
|
foozy@708
|
319
|
foozy@708
|
320 \end{itemize}
|
foozy@708
|
321
|
foozy@708
|
322 $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
|
323 $B%3%s%F%-%9%H$NJQ99$,H/@8$9$k$3$H$G!"(B
|
foozy@708
|
324 $B%9%?%C%/>eJ}$N%Q%C%A$X$N:F:n6H(B
|
foozy@708
|
325 \footnote{$BLuCm(B: \hgxcmd{mq}{qrefresh} $B$N<B9T$K$h$k%Q%C%A$N=$@5$N$3$H(B}
|
foozy@708
|
326 $B$,I,MW$K$J$k$3$H$,L5$$$h$&$K!"(B
|
foozy@708
|
327 $B%9%?%C%/Cf$GDl$K$"$k%Q%C%A$[$I0BDj$7$F$$$FM_$7$$$b$N$G$9!#(B
|
foozy@708
|
328 $BJQ99$5$l$K$/$$%Q%C%A72$r(B
|
foozy@708
|
329 \sfilename{series} $B%U%!%$%k$NKAF,$KCV$/$3$H$G!"(B
|
foozy@708
|
330 $B$3$NL\E*$rC#@.$9$k$3$H$,$G$-$^$9!#(B
|
foozy@708
|
331
|
foozy@708
|
332 $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
|
333 $B%=!<%9%D%j!<$NJQ49$KI,MW$H;W$o$l$k%Q%C%A$b=EMW$G$9!#(B
|
foozy@708
|
334 $B<uM}:Q$_$N%Q%C%A$b;C$/$N4VJ];}$7$F$$$k$N$O$=$N$?$a$G$9!#(B
|
foozy@708
|
335
|
foozy@708
|
336 ``$B%P%C%/%]!<%H(B''$B$*$h$S(B``$BFbItMQ(B''$B%Q%C%A$O!"(B
|
foozy@708
|
337 \sfilename{series} $BKvHx6aJU$rE>!9$H$7$^$9!#(B
|
foozy@708
|
338 $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
|
339 $B$=$N>e!"(B
|
foozy@708
|
340 ``$BFbItMQ(B''$B%Q%C%A$OITET9g$,L5$$$h$&$KFbIt$KN1$^$jB3$1$kI,MW$,$"$j$^$9!#(B
|
foozy@708
|
341
|
foozy@708
|
342 \section{Maintaining the patch series}
|
foozy@708
|
343
|
foozy@708
|
344 $BI.<T$N:n6H$N:]$K$O!"(B
|
foozy@708
|
345 $B%Q%C%AE,MQ$r@)8f$9$k$?$a$KJ#?t$N%,!<%I$r;HMQ$7$F$$$^$9!#(B
|
foozy@708
|
346
|
foozy@708
|
347 \begin{itemize}
|
foozy@708
|
348 \item ``$B<uM}:Q$_(B''$B%Q%C%A$K$O!"(B\texttt{accepted} $B%,!<%I$,IUM?$5$l$^$9!#(B
|
foozy@708
|
349 $B$3$N%,!<%I$OKX$I$N>l9g$KM-8z$H$5$l$^$9!#(B
|
foozy@708
|
350 $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
|
351 $B%Q%C%A$rE,MQ$5$;$J$$$h$&$K$9$k$3$H$,(B
|
foozy@708
|
352 \footnote{$BLuCm(B: \texttt{accepted} $B%,!<%IIU$-%Q%C%A$rL58z$K$9$k$3$H$G(B}
|
foozy@708
|
353 $B$G$-$k$N$G!"(B
|
foozy@708
|
354 $B8eB3$N%Q%C%A72$Oe:No$KE,MQ$5$l$^$9!#(B
|
foozy@708
|
355
|
foozy@708
|
356 \item $B:n6H$O(B``$B40N;(B''$B$7$F$$$k$b$N$N!"(B
|
foozy@708
|
357 $B>eN.%j%]%8%H%j$NJ]<iC4Ev$KAwIU$5$l$F$$$J$$%Q%C%A(B
|
foozy@708
|
358 \footnote{$BLuCm(B: $B@h$NJ,N`$G8@$&$H$3$m$N(B``$BJ]N1(B(pending)''}$B$K$O!"(B
|
foozy@708
|
359 $B2?$b%,!<%I$,IUM?$5$l$^$;$s!#(B
|
foozy@708
|
360 $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
|
361 $BFC$K2?$b%,!<%I$r;XDj$7$J$/$F$b!"(B
|
foozy@708
|
362 $BE,EY$K0BA4$J%=!<%9%D%j!<$rF@$k$3$H$,$G$-$^$9!#(B
|
foozy@708
|
363
|
foozy@708
|
364 \item $B>eN.%j%]%8%H%j$NJ]<iC4Ev$X$N!J:F!KAwIU$KEv$?$C$F!"(B
|
foozy@708
|
365 $B:F:n6H$,I,MW$J%Q%C%A$K$O(B \texttt{rework} $B%,!<%I$,IUM?$5$l$^$9!#(B
|
foozy@708
|
366
|
foozy@708
|
367 \item $BL\2<3+H/:n6HCf$K$"$k%Q%C%A(B
|
foozy@708
|
368 \footnote{$BLuCm(B: $B@h$NJ,N`$G8@$&$H$3$m$N(B``$B:n6HCf(B(in progress)''}$B$K$O!"(B
|
foozy@708
|
369 \texttt{devel} $B%,!<%I$,IUM?$5$l$^$9!#(B
|
foozy@708
|
370
|
foozy@708
|
371 \item $B%P%C%/%]!<%H%Q%C%A$K$O!"(B
|
foozy@708
|
372 $BE,MQBP>]%+!<%M%k$N%P!<%8%g%s$r;XDj$9$kJ#?t$N%,!<%I$,IUM?$5$l$^$9!#(B
|
foozy@708
|
373 $BNc$($P!"(B~2.6.9 $BHG$X$N%P%C%/%]!<%H$r9T$&%Q%C%A$K$O!"(B
|
foozy@708
|
374 \texttt{2.6.9} $B%,!<%I$,IUM?$5$l$^$9!#(B
|
foozy@708
|
375
|
foozy@708
|
376 \end{itemize}
|
foozy@708
|
377
|
foozy@708
|
378 $B$3$l$i$N%,!<%IJ,N`$K$h$j!"(B
|
foozy@708
|
379 $B:G=*E*$K$I$N$h$&$J%=!<%9%D%j!<$,F@$i$l$k$+$r7hDj$9$k:]$K!"(B
|
foozy@708
|
380 $B>/$J$+$i$L=@Fp@-$rF@$k$3$H$,$G$-$^$9!#(B
|
foozy@708
|
381 $BB?$/$N>l9g!"(B
|
foozy@708
|
382 $BE,@Z$J%,!<%I$NA*Br$O9=C[<j=g$NCf$G<+F02=$5$l$F$$$^$9$,!"(B
|
foozy@708
|
383 $BFCJL$J>u678~$1$K%,!<%I$ND4@0$r<jF0$G9T$&$3$H$b2DG=$G$9!#(B
|
foozy@708
|
384
|
foozy@708
|
385 \subsection{The art of writing backport patches}
|
foozy@708
|
386
|
foozy@708
|
387 MQ $B$r;HMQ$9$k$3$H$G!"(B
|
foozy@708
|
388 $B%P%C%/%]!<%H%Q%C%A$N:n@.$OC1=c$J:n6H$H$J$j$^$9!#(B
|
foozy@708
|
389 $B5lHG$N%+!<%M%kG[2<$K$*$$$F$b%I%i%$%P$,@5>o$K2TF0$9$k$h$&$K!"(B
|
foozy@708
|
390 $B5lHG$N%+!<%M%k$K$*$$$FDs6!$5$l$F$$$J$$5!G=$r;HMQ$9$k%3!<%I$NJQ99$,!"(B
|
foozy@708
|
391 $B%P%C%/%]!<%H%Q%C%A$N$9$Y$-$3$H$NA4$F$G$9!#(B
|
foozy@708
|
392
|
foozy@708
|
393 $BNI$$%P%C%/%]!<%H%Q%C%A$r=q$/:]$N%4!<%k$O!"(B
|
foozy@708
|
394 $BBP>]$H$9$k5lHG%+!<%M%k8~$1$K=q$$$?$+$N$h$&$K!"(B
|
foozy@708
|
395 $B$"$J$?$N%3!<%I$rJQ99$9$k$h$&$J%Q%C%A$K$9$k$3$H$G$9!#(B
|
foozy@708
|
396 $B%Q%C%A$,$G$7$c$P$i$J$$Dx!"M}2r$HJ]<i$,MF0W$K$J$j$^$9!#(B
|
foozy@708
|
397 $B%3!<%ICf$NBgNL$N(B \texttt{\#ifdef}$B!J>r7o$K1~$8$FE,MQ$5$l$k%3!<%IJR!K(B
|
foozy@708
|
398 $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
|
399 $B%P!<%8%g%s0MB8$J(B \texttt{\#ifdef} $B$r%Q%C%A$K;}$A9~$`$Y$-$G$O$"$j$^$;$s!#(B
|
foozy@708
|
400 $B%P!<%8%g%s0MB8$J(B \texttt{\#ifdef} $B$r;HMQ$9$kBX$o$j$K!"(B
|
foozy@708
|
401 $B8D!9$N%Q%C%A$O%P!<%8%g%s$K0MB8$7$J$$JQ99$r9T$&$h$&$K$7$F!"(B
|
foozy@708
|
402 $B%Q%C%A$NE,MQ$r%,!<%I$K$h$C$F@)8f$9$Y$-$G$9!#(B
|
foozy@708
|
403
|
foozy@708
|
404 ``$BDL>o(B''$B$N%Q%C%A$H!"(B
|
foozy@708
|
405 $B$=$NE,MQ7k2L$r99$KJQ99$9$k%P%C%/%]!<%H%Q%C%A$H$r!"(B
|
foozy@708
|
406 $BJL8D$N%0%k!<%W$KJ,N%$9$k$N$K$O#2$D$NM}M3$,$"$j$^$9!#(B
|
foozy@708
|
407 $BBh#1$NM}M3$O!"(B
|
foozy@708
|
408 $B$3$l$i$N%Q%C%A$,:.$6$j9g$C$?>l9g$K!"(B
|
foozy@708
|
409 $B>eN.%j%]%8%H%j$NJ]<iC4Ev$X$N%Q%C%AAwIU$N<+F02=$N:]$K!"(B
|
foozy@708
|
410 \hgext{patchbomb} $B3HD%$N$h$&$J%D!<%k$r;H$&$3$H$,Fq$7$/$J$k$?$a$G$9!#(B
|
foozy@708
|
411 $BBh#2$NM}M3$O!"(B
|
foozy@708
|
412 $B8eB3$NDL>o%Q%C%A$NE,MQ%3%s%F%-%9%H(B
|
foozy@708
|
413 \footnote{$BLuCm(B: \command{patch} $B%U%!%$%k$K$*$1$k!V%3%s%F%-%9%H!W(B}
|
foozy@708
|
414 $B$r%P%C%/%]!<%H%Q%C%A$,:.Mp$5$;$F$7$^$$!"(B
|
foozy@708
|
415 $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
|
416 $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
|
417
|
foozy@708
|
418 \section{Useful tips for developing with MQ}
|
foozy@708
|
419
|
foozy@708
|
420 \subsection{Organising patches in directories}
|
foozy@708
|
421
|
foozy@708
|
422 MQ $B$rMxMQ$7$?<B:_$9$k%W%m%8%'%/%H$G:n6H$r$7$F$$$k$N$G$"$l$P!"(B
|
foozy@708
|
423 $BB?$/$N%Q%C%A$rC_@Q$9$k$3$H$bFq$7$$$3$H$G$O$"$j$^$;$s!#(B
|
foozy@708
|
424 $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
|
425
|
foozy@708
|
426 $B%Q%C%A$r8DJL$NO@M}E*$J$^$H$^$j$KJ,N`$G$-$k$N$G$"$l$P!"(B
|
foozy@708
|
427 MQ $B$O%Q%C%AL>$K%Q%96h@Z$j$,4^$^$l$F$$$F$bLdBj$J$$$N$G!"(B
|
foozy@708
|
428 $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
|
429 \footnote{$BLuCm(B: MQ $B$O%Q%C%AFbMF$NJ]B8@h$H$7$F!"(B
|
foozy@708
|
430 $B%Q%C%AL>$HF1L>$N%U%!%$%k$r:n@.$9$k$?$a!"(B
|
foozy@708
|
431 $B%Q%C%AL>$K%Q%96h@Z$j$,4^$^$l$k>l9g!"(B
|
foozy@708
|
432 MQ $B$O<+F0E*$K%5%V%G%#%l%/%H%j$r:n@.$7$^$9(B}$B!#(B
|
foozy@708
|
433
|
foozy@708
|
434 \subsection{Viewing the history of a patch}
|
foozy@708
|
435 \label{mq-collab:tips:interdiff}
|
foozy@708
|
436
|
foozy@708
|
437 $BD94|4V$K$o$?$C$F%Q%C%A$N3+H/$r9T$&>l9g!"(B
|
foozy@708
|
438 \ref{sec:mq:repo} $B@a$G=R$Y$?$h$&$K!"(B
|
foozy@708
|
439 $B%Q%C%A$r%j%]%8%H%j$G4IM}$9$k$N$,NI$$$G$7$g$&!#(B
|
foozy@708
|
440 $B$=$N>l9g$OAa!9$K!"(B
|
foozy@708
|
441 $B%Q%C%A$NJQ99MzNr$N;2>H$K(B
|
foozy@708
|
442 \hgcmd{diff} $B$,;H$($J$$$3$H$K5$IU$/$3$H$G$7$g$&!#(B
|
foozy@708
|
443 $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
|
444 $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
|
445 MQ $B$,;(2;$r2C$($F$7$^$C$F$$$k$3$H$K860x$,$"$j$^$9!#(B
|
foozy@708
|
446
|
foozy@708
|
447 Mercurial $B$KF1:-$5$l$F$$$k(B \hgext{extdiff} $B3HD%$r;H$&$3$H$G!"(B
|
foozy@708
|
448 $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
|
449 $B$3$N3HD%$r;H$&$?$a$K$O!"(B
|
foozy@708
|
450 $B%5!<%I%Q!<%F%#!<%Q%C%1!<%8$G$"$k(B
|
foozy@708
|
451 \package{patchutils}~\cite{web:patchutils} $B$,I,MW$G$9!#(B
|
foozy@708
|
452 $B$3$N%Q%C%1!<%8$,Ds6!$9$k(B \command{interdiff} $B$H$$$&%3%^%s%I$O!"(B
|
foozy@708
|
453 $B:9J,4V$N:9J,$r#1$D$N:9J,$H$7$FI=<($7$^$9!#(B
|
foozy@708
|
454 $BF1$8:9J,$N#2$D$NHG(B
|
foozy@708
|
455 \footnote{$BLuCm(B: $B!VF1$8%Q%C%A$N0[$J$kHG!W$N0U$+!)(B}
|
foozy@708
|
456 $B$KBP$7$F$3$N%3%^%s%I$rE,MQ$9$k$H!"(B
|
foozy@708
|
457 $B:G=i$NHG$+$i<!$NHG$X$HJQ99$9$k$?$a$N:9J,$r@8@.$7$^$9!#(B
|
foozy@708
|
458
|
foozy@708
|
459 $B$$$D$b$N$h$&$K!"(B
|
foozy@708
|
460 \hgrc $B%U%!%$%k$N(B \rcsection{extensions}
|
foozy@708
|
461 $B%;%/%7%g%s$K9T$rDI2C$9$k$3$H$G!"(B
|
foozy@708
|
462 \hgext{extdiff} $B3HD%$rM-8z2=$9$k$3$H$,$G$-$^$9!#(B
|
foozy@708
|
463
|
foozy@708
|
464 \begin{codesample2}
|
foozy@708
|
465 [extensions]
|
foozy@708
|
466 extdiff =
|
foozy@708
|
467 \end{codesample2}
|
foozy@708
|
468
|
foozy@708
|
469 \command{interdiff} $B%3%^%s%I$O#2$D$N%U%!%$%kL>$N;XDj$,I,MW$G$9$,!"(B
|
foozy@708
|
470 \hgext{extdiff} $B3HD%$O!"(B
|
foozy@708
|
471 $B$=$l$>$lG$0U$N?t$N%U%!%$%k$rG[2<$K;}$D!"(B
|
foozy@708
|
472 $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
|
473 $B$=$N$?$a!"(B
|
foozy@708
|
474 $B$3$l$i#2$D$N%G%#%l%/%H%jG[2<$N8D!9$N%U%!%$%kBP$KBP$7$F(B
|
foozy@708
|
475 \command{interdiff} $B$r<B9T$9$k>.$5$J%W%m%0%i%`$,I,MW$G$9!#(B
|
foozy@708
|
476 $BK\=q$N%=!<%9%3!<%I%j%]%8%H%j$K$*$1$k(B
|
foozy@708
|
477 \dirname{examples} $B%G%#%l%/%H%jG[2<$K!"(B
|
foozy@708
|
478 \sfilename{hg-interdiff} $B$H$7$F3JG<$5$l$F$$$^$9!#(B
|
foozy@708
|
479
|
foozy@708
|
480 \excode{hg-interdiff}
|
foozy@708
|
481
|
foozy@708
|
482 \sfilename{hg-interdiff} $B$,%7%'%k$N%3%^%s%I8!:w%Q%9>e$KM-$k>l9g!"(B
|
foozy@708
|
483 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
|
484
|
foozy@708
|
485 \begin{codesample2}
|
foozy@708
|
486 hg extdiff -p hg-interdiff -r A:B my-change.patch
|
foozy@708
|
487 \end{codesample2}
|
foozy@708
|
488
|
foozy@708
|
489 $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
|
490 $B:FEY(B \hgrc $B$rJT=8$7$F!"(B
|
foozy@708
|
491 \hgext{hgext} $B$r(B Mercurial $B$NIaDL$N%3%^%s%IJB$K;H$($k$h$&$K$7$^$7$g$&!#(B
|
foozy@708
|
492
|
foozy@708
|
493 \begin{codesample2}
|
foozy@708
|
494 [extdiff]
|
foozy@708
|
495 cmd.interdiff = hg-interdiff
|
foozy@708
|
496 \end{codesample2}
|
foozy@708
|
497
|
foozy@708
|
498 $B$3$N5-=R$K$h$j(B \texttt{interdiff} $B$,(B
|
foozy@708
|
499 \hgext{hgext} $B$+$iMxMQ$G$-$k$h$&$K$J$j$^$9$N$G!"(B
|
foozy@708
|
500 $B@h$N(B \hgxcmd{extdiff}{extdiff} $B5/F0$bC;$/$J$C$F4vJ,;H$$$d$9$/$J$k$G$7$g$&!#(B
|
foozy@708
|
501
|
foozy@708
|
502 \begin{codesample2}
|
foozy@708
|
503 hg interdiff -r A:B my-change.patch
|
foozy@708
|
504 \end{codesample2}
|
foozy@708
|
505
|
foozy@708
|
506 \begin{note}
|
foozy@708
|
507 \command{interdiff} $B%3%^%s%I$O!"(B
|
foozy@708
|
508 $B>l9g$@$1@5$7$/5!G=$7$^$9!#(B
|
foozy@708
|
509 The \command{interdiff} command works well only if the underlying
|
foozy@708
|
510 files against which versions of a patch are generated remain the
|
foozy@708
|
511 same.
|
foozy@708
|
512 $B%Q%C%A$N@8@.!&%U%!%$%k$NJQ99$*$h$S%Q%C%A$N99?7$r9T$C$?>l9g!"(B
|
foozy@708
|
513 \command{interdiff} $B$OM-MQ$J=PNO$r@8@.$7$J$$$3$H$,$"$j$^$9!#(B
|
foozy@708
|
514 \end{note}
|
foozy@708
|
515
|
foozy@708
|
516 \hgext{extdiff} $B3HD%$O!"(B
|
foozy@708
|
517 MQ $B%Q%C%A$NI=<(5!G=$N8~>e$KN1$^$i$J$$M-MQ$J$b$N$G$9!#(B
|
foozy@708
|
518 \hgext{extdiff} $B3HD%$K4X$9$k>\:Y$O!"(B
|
foozy@708
|
519 \ref{sec:hgext:extdiff} $B@a$r;2>H$7$F$/$@$5$$!#(B
|
foozy@708
|
520
|
foozy@708
|
521 %%% Local Variables:
|
foozy@708
|
522 %%% mode: latex
|
foozy@708
|
523 %%% TeX-master: "00book"
|
foozy@708
|
524 %%% End:
|