Mercurial > hgbook
changeset 333:db3aa48f2f73
more mq.tex
author | Yoshiki Yazawa <yaz@cc.rim.or.jp> |
---|---|
date | Sun, 30 Mar 2008 17:46:24 +0900 |
parents | 9ad5d69c4a37 |
children | 4ffdaa0773a3 |
files | ja/mq.tex |
diffstat | 1 files changed, 69 insertions(+), 58 deletions(-) [+] |
line wrap: on
line diff
--- a/ja/mq.tex Sun Mar 30 16:54:49 2008 +0900 +++ b/ja/mq.tex Sun Mar 30 17:46:24 2008 +0900 @@ -50,43 +50,28 @@ $B%1!<%8$,H`$i$N4D6-$G@5$7$/%S%k%I$G$-$k$h$&$K%Q%C%1!<%8$XJQ99$r2C$($k$3$H(B $B$,B?$$!%(B -When you have few changes to maintain, it is easy to manage a single -patch using the standard \command{diff} and \command{patch} programs -(see section~\ref{sec:mq:patch} for a discussion of these tools). -Once the number of changes grows, it starts to make sense to maintain -patches as discrete ``chunks of work,'' so that for example a single -patch will contain only one bug fix (the patch might modify several -files, but it's doing ``only one thing''), - -and you may have a number -of such patches for different bugs you need fixed and local changes -you require. - - - -In this situation, if you submit a bug fix patch to the -upstream maintainers of a package and they include your fix in a -subsequent release, you can simply drop that single patch when you're -updating to the newer release. +%When you have few changes to maintain, it is easy to manage a single +%patch using the standard \command{diff} and \command{patch} programs +%(see section~\ref{sec:mq:patch} for a discussion of these tools). Once +%the number of changes grows, it starts to make sense to maintain patches +%as discrete ``chunks of work,'' so that for example a single patch will +%contain only one bug fix (the patch might modify several files, but it's +%doing ``only one thing''), and you may have a number of such patches for +%different bugs you need fixed and local changes you require. In this +%situation, if you submit a bug fix patch to the upstream maintainers of +%a package and they include your fix in a subsequent release, you can +%simply drop that single patch when you're updating to the newer release. $B$b$7%a%s%F%J%s%9$7$F$$$kJQ99$,$4$/$o$:$+$J$i!$I8=`$N(B\command{diff}$B%3%^%s(B $B%I$H(B\command{patch}$B%3%^%s%I$r;H$C$FC10l$N%Q%C%A$r4IM}$9$k$N$,4JC1$@!%!J$3(B -$B$l$i$N%D!<%k$K$D$$$F$O(B~\ref{sec:mq:patch}$B$N@a$r;2>H!%!K(B - -$BJQ99$N?t$,A}$($F$/$k$H!$C10l$N%P%0%U%#%C%/%9$@$1$r4^$`8DJL$N%Q%C%A$r=89g(B -$B$H$7$F4IM}$9$k$3$H$,8=<BL#$rBS$S$F$/$k!%!J3F!9$N%Q%C%A$OJ#?t$N%U%!%$%k$r(B -$BJQ99$9$k$+$b$7$l$J$$$,!$L\E*$O(B1$B$D$-$j$G$"$k!%!K(B - -$B=$@5$7$?$$0[$J$k%P%0$HI,MW$J%m!<%+%k$JJQ99$N$?$a$N!$?tB?$/$N$=$N$h$&$J%Q%C(B -$B%A$r;}$D$3$H$K$J$k$+$b$7$l$J$$!%(B - -$B$3$N>u67$G$O%"%C%W%9%H%j!<%`$N%a%s%F%J$K%P%0=$@5%Q%C%A$rAw$j!$H`$i$,$"$J(B -$B$?$N=$@5$r(B - - - - - +$B$l$i$N%D!<%k$K$D$$$F$O(B~\ref{sec:mq:patch}$B$N@a$r;2>H!%!KJQ99$N?t$,A}$($F$/(B +$B$k$H!$C10l$N%P%0%U%#%C%/%9$r4^$`8D!9$N%Q%C%A$r0l2t$N=89g$H$7$F4IM}$9$k$3(B +$B$H$,8=<BL#$rBS$S$F$/$k!%!J3F!9$N%Q%C%A$OJ#?t$N%U%!%$%k$rJQ99$9$k$+$b$7$l(B +$B$J$$$,!$L\E*$O(B1$B$D$-$j$G$"$k!%!K=$@5$7$?$$%P%0$,$$$/$D$b$"$C$?$j!$%m!<%+%k(B +$B$G$NMM!9$JJQ99$NI,MW$N$?$a!$?tB?$/$N$=$N$h$&$J%Q%C%A$r;}$D$3$H$K$J$k$+$b(B +$B$7$l$J$$!%$3$N>u67$G!$%"%C%W%9%H%j!<%`$N%a%s%F%J$K%P%0=$@5%Q%C%A$rAw$j!$(B +$BH`$i$,$"$J$?$N=$@5$r8e$N%j%j!<%9$K<h$j9~$a$P!$<j85$G?7$7$$%j%j!<%9$K@ZBX(B +$B$($?;~$K$OC1=c$K$=$N%Q%C%A$rGK4~$9$l$PNI$$!%(B %Maintaining a single patch against an upstream tree is a little %tedious and error-prone, but not difficult. However, the complexity @@ -617,49 +602,75 @@ $B$3$l$^$G$N5DO@$O(B``known''$B$H(B``applied''$B%Q%C%A$K0c$$$,$"$k$3$H$r0EL[$K2>Dj(B $B$7$F$$$?!%(BMQ$B$O:90[$N$J$$%Q%C%A$r%j%]%8%H%j$KBP$7$FE,MQ$9$k$3$H$b$G$-$k!%(B -An \emph{applied} patch has a corresponding changeset in the -repository, and the effects of the patch and changeset are visible in -the working directory. You can undo the application of a patch using -the \hgxcmd{mq}{qpop} command. MQ still \emph{knows about}, or manages, a -popped patch, but the patch no longer has a corresponding changeset in -the repository, and the working directory does not contain the changes -made by the patch. Figure~\ref{fig:mq:stack} illustrates the -difference between applied and tracked patches. +%An \emph{applied} patch has a corresponding changeset in the +%repository, and the effects of the patch and changeset are visible in +%the working directory. You can undo the application of a patch using +%the \hgxcmd{mq}{qpop} command. MQ still \emph{knows about}, or manages, a +%popped patch, but the patch no longer has a corresponding changeset in +%the repository, and the working directory does not contain the changes +%made by the patch. Figure~\ref{fig:mq:stack} illustrates the +%difference between applied and tracked patches. + +\emph{$BE,MQ$5$l$?(B}$B%Q%C%A$O%j%]%8%H%jFb$KBP1~$9$k%A%'%s%8%;%C%H$r;}$A!$%Q%C(B +$B%A$N8z2L$H%A%'%s%8%;%C%H$O%o!<%-%s%0%G%#%l%/%H%jFb$G8+$k$3$H$,$G$-$k!%%Q%C(B +$B%A$NE,MQ$O(B\hgxcmd{mq}{qpop}$B%3%^%s%I$G<h$j>C$9$3$H$,$G$-$k!%%]%C%W$5$l$?%Q%C(B +$B%A$OBP1~$9$k%A%'%s%8%;%C%H$r;}$?$:!$JQ99$b%o!<%-%s%0%G%#%l%/%H%j$K;D$C$F(B +$B$$$J$$$,!$(BMQ$B$O%]%C%W$5$l$?%Q%C%A$r0MA3$H$7$F5-21$7!$4IM}$7$F$$$k!%(B +$B?^(B~\ref{fig:mq:stack}$B$OE,MQ$5$l$?%Q%C%A$H4IM}$5$l$F$$$k%Q%C%A$N0c$$$r<((B +$B$9!%(B \begin{figure}[ht] \centering \grafix{mq-stack} - \caption{Applied and unapplied patches in the MQ patch stack} +% \caption{Applied and unapplied patches in the MQ patch stack} + \caption{MQ$B%Q%C%A%9%?%C%/$NCf$NE,MQ$5$l$?%Q%C%A$HE,MQ$5$l$J$$%Q%C%A(B} \label{fig:mq:stack} \end{figure} -You can reapply an unapplied, or popped, patch using the \hgxcmd{mq}{qpush} -command. This creates a new changeset to correspond to the patch, and -the patch's changes once again become present in the working -directory. See figure~\ref{ex:mq:qpop} for examples of \hgxcmd{mq}{qpop} -and \hgxcmd{mq}{qpush} in action. Notice that once we have popped a patch -or two patches, the output of \hgxcmd{mq}{qseries} remains the same, while -that of \hgxcmd{mq}{qapplied} has changed. +%You can reapply an unapplied, or popped, patch using the \hgxcmd{mq}{qpush} +%command. This creates a new changeset to correspond to the patch, and +%the patch's changes once again become present in the working +%directory. See figure~\ref{ex:mq:qpop} for examples of \hgxcmd{mq}{qpop} +%and \hgxcmd{mq}{qpush} in action. Notice that once we have popped a patch +%or two patches, the output of \hgxcmd{mq}{qseries} remains the same, while +%that of \hgxcmd{mq}{qapplied} has changed. + +$BE,MQ$r30$7$?%Q%C%A$d%]%C%W$7$?%Q%C%A$r(B\hgxcmd{mq}{qpush}$B%3%^%s%I$G:FE,MQ(B +$B$9$k$3$H$,$G$-$k!%$3$N%3%^%s%I$O!$%Q%C%A$KBP1~$7$??7$7$$%A%'%s%8%;%C%H$r(B +$B:n$j!$%Q%C%A$K$h$kJQ99$O$b$&0lEY%o!<%-%s%0%G%#%l%/%H%j$K8=$l$k!%(B +\hgxcmd{mq}{qpop}$B$H(B\hgxcmd{mq}{qpush}$B$N;HMQNc$r?^(B~\ref{ex:mq:qpop}$B$K<($9!%(B +1$B$D$^$?$OJ#?t$N%Q%C%A$r%]%C%W$9$k$H(B\hgxcmd{mq}{qapplied}$B$N=PNO$OJQ2=$9$k(B +$B$,!$(B\hgxcmd{mq}{qseries}$B$N=PNO$OF1$8$^$^;D$k$N$KCm0U$5$l$?$$!%(B \begin{figure}[ht] \interaction{mq.tutorial.qpop} - \caption{Modifying the stack of applied patches} +% \caption{Modifying the stack of applied patches} + \caption{$BE,MQ$5$l$?%Q%C%A$N%9%?%C%/$rJQ99$9$k(B} \label{ex:mq:qpop} \end{figure} %\subsection{Pushing and popping many patches} \subsection{$B%Q%C%A$N%W%C%7%e$H%]%C%W(B} -While \hgxcmd{mq}{qpush} and \hgxcmd{mq}{qpop} each operate on a single patch at -a time by default, you can push and pop many patches in one go. The -\hgxopt{mq}{qpush}{-a} option to \hgxcmd{mq}{qpush} causes it to push all -unapplied patches, while the \hgxopt{mq}{qpop}{-a} option to \hgxcmd{mq}{qpop} -causes it to pop all applied patches. (For some more ways to push and -pop many patches, see section~\ref{sec:mq:perf} below.) +%While \hgxcmd{mq}{qpush} and \hgxcmd{mq}{qpop} each operate on a single patch at +%a time by default, you can push and pop many patches in one go. The +%\hgxopt{mq}{qpush}{-a} option to \hgxcmd{mq}{qpush} causes it to push all +%unapplied patches, while the \hgxopt{mq}{qpop}{-a} option to \hgxcmd{mq}{qpop} +%causes it to pop all applied patches. (For some more ways to push and +%pop many patches, see section~\ref{sec:mq:perf} below.) + +\hgxcmd{mq}{qpush}$B$H(B\hgxcmd{mq}{qpop}$B$O0lEY$K3F!9$N%Q%C%A0l$D$:$D$rA`:n$9(B +$B$k!J$3$l$O%G%U%)%k%HF0:n$G$"$k!K0lJ}!$J#?t$N%Q%C%A$r0lEY$K%]%C%W!&%W%C%7%e(B +$B$9$kA`:n$b$"$k!%(B\hgxcmd{mq}{qpush}$B%3%^%s%I$N(B\hgxopt{mq}{qpush}{-a}$B%*%W%7%g(B +$B%s$O!$L$E,MQ$N%Q%C%AA4BN$r%W%C%7%e$7!$(B\hgxcmd{mq}{qpop}$B%3%^%s%I$N(B +\hgxopt{mq}{qpop}{-a} $B%*%W%7%g%s$OE,MQ:Q$_$N%Q%C%AA4BN$r%]%C%W$9$k!%(B +$B!JB>$NJ#?t$N%Q%C%A$rF1;~$K%W%C%7%e!&%]%C%W$9$kJ}K!$K$D$$$F$O2<(B +$B$N(B~\ref{sec:mq:perf}$B$r;2>H$N$3$H!K(B \begin{figure}[ht] \interaction{mq.tutorial.qpush-a} - \caption{Pushing all unapplied patches} +% \caption{Pushing all unapplied patches} + \caption{$BE,MQ$5$l$F$$$J$$%Q%C%A$rA4$F%W%C%7%e$9$k(B} \label{ex:mq:qpush-a} \end{figure}