hgbook

view ja/tour-merge.tex @ 1071:9f19da74ac3a

2.4.2 partly zh translated
author Zhaoping Sun <zhaopingsun@gmail.com>
date Wed Nov 11 23:01:15 2009 -0500 (2009-11-11)
parents
children
line source
1 \chapter{A tour of Mercurial: merging work}
2 \label{chap:tour-merge}
4 $BA0>O$K$*$$$F$O!"(B
5 $B%j%]%8%H%j$NJ#@=!"(B
6 $B%j%]%8%H%j$G$N%A%'%s%8%;%C%H$N@8@.!"(B
7 $B$J$i$S$K(B \hgcmd{push} $B$*$h$S(B \hgcmd{pull}
8 $B$K$h$k%j%]%8%H%j4V$G$N%A%'%s%8%;%C%H$N<x<u$r8+$F$-$^$7$?!#(B
9 $B<!$NCJ3,$H$7$F!"JL!9$N%j%]%8%H%j$K$*$1$kJQ99$N(B\emph{$B%^!<%8(B}
10 $B!J(Bmerge$B!K$K$D$$$F8+$F$_$^$7$g$&!#(B
12 \section{Merging streams of work}
14 $BJ,;69=@.4IM}%D!<%k$K$*$$$F!"%^!<%8$O:n6H$N4pK\$G$9!#(B
16 \begin{itemize}
17 \item Alice $B$H(B Bob $B$,!"(B
18 $B6&F1:n6H$7$F$$$k%W%m%8%'%/%H$N%j%]%8%H%j$+$iJ#@=$7$?!"(B
19 $B8D?ME*$J%j%]%8%H%j$r;}$C$F$$$k$b$N$H$7$^$9!#(B
20 Alice $B$O<+J,$N%j%]%8%H%j$K$*$$$F%P%0$r=$@5$7$^$7$?!#(B
21 Bob $B$O<+J,$N%j%]%8%H%j$K$*$$$F5!G=$rDI2C$7$^$7$?!#(B
22 $BFs?M$O!"(B
23 $B%P%0%U%#%C%/%9$H?75!G=$NN>J}$r4^$`%j%]%8%H%j$r6&M-$7$?$$$H;W$&$G$7$g$&!#(B
25 \item $BI.<T$O!"(B
26 $B8DJL$N%j%]%8%H%j$K$h$C$F!"(B
27 $B$*8_$$$,0BA4$K3VN%$5$l$?J#?t$N0[$J$k:n6H$r!"(B
28 $BF10l%W%m%8%'%/%H$K$*$$$FF1;~$K<B;\$9$k$3$H$,IQHK$K$"$j$^$9!#(B
29 $B$3$N7A<0$G$N:n6H$G$O!"(B
30 $B$"$k%j%]%8%H%j$K$*$1$k@.2L$r!"(B
31 $BB>$N%j%]%8%H%j$KBP$7$FIQHK$K%^!<%8$9$kI,MW$,$"$j$^$9!#(B
33 \end{itemize}
35 $B%^!<%8$OI,MW$K1~$8$F<B;\$9$k$"$j$U$l$?:n6H$G$9$N$G!"(B
36 Mercurial $B$G$O4JC1$K9T$($k$h$&$K$J$C$F$$$^$9!#(B
37 $B$=$l$G$O!"%^!<%8<j=g$r8+$F9T$-$^$7$g$&!#(B
38 $B$b$&0lEY%j%]%8%H%j$NJ#@=$r9T$$!J$b$&2?EY$bJ#@=$7$^$7$?$h$M!)!K!"(B
39 $B$=$N%j%]%8%H%j$K$*$$$FJQ99$r9T$$$^$9!#(B
41 \interaction{tour.merge.clone}
43 $B$3$N;~E@$G!"(B
44 $BFbMF$N0[$J$k#2$D$N(B \filename{hello.c} $B$N%3%T!<$,B8:_$9$k$O$:$G$9!#(B
45 $B#2$D$N%j%]%8%H%j$NMzNr$O!"(B
46 $B?^(B~\ref{fig:tour-merge:sep-repos} $B$K<($9$h$&$K!"(B
47 $B;^J,$+$l$7$F$$$^$9!#(B
49 \interaction{tour.merge.cat}
51 \begin{figure}[ht]
52 \centering
53 \grafix{tour-merge-sep-repos}
54 \caption{Divergent recent histories of the \dirname{my-hello} and
55 \dirname{my-new-hello} repositories}
56 \label{fig:tour-merge:sep-repos}
57 \end{figure}
59 \hgcmd{pull} $B$r9T$C$F$b!"(B
60 $B:n6HNN0h%G%#%l%/%H%j$K$O1F6A$r5Z$\$5$J$$$3$H$O4{$K@bL@$7$?$H$*$j$G$9$N$G!"(B
61 \dirname{my-hello} $B$+$i(B \hgcmd{pull} $B$7$F$_$^$7$g$&!#(B
63 \interaction{tour.merge.pull}
65 $B:n6HNN0h%G%#%l%/%H%j$K$O1F6A$r5Z$\$7$F$$$^$;$s$,!"(B
66 \hgcmd{pull} $B%3%^%s%I$O(B ``heads'' $B$K$D$$$F2?$+7Y9p$7$F$$$^$9!#(B
68 \subsection{Head changesets}
70 ``head'' $B$H$O!"(B
71 $B%j%]%8%H%jCf$K$*$$$F!"(B
72 $B;RB9!J$J$$$7;R6!!K$H$J$k%A%'%s%8%;%C%H$,B8:_$7$J$$%A%'%s%8%;%C%H$N$3$H$G$9!#(B
73 $B%j%]%8%H%j$K$*$1$k:G$b:G?7$N%j%S%8%g%s$O!"(B
74 $B0l@Z$N;R%A%'%s%8%;%C%H$r;}$A$^$;$s$+$i!"(B
75 $B=>$C$F(B tip $B%j%S%8%g%s$O(B head $B$H$J$j$^$9$,!"(B
76 $B#1$D$N%j%]%8%H%j$K$OJ#?t$N(B head $B$,B8:_$7$($^$9!#(B
78 \begin{figure}[ht]
79 \centering
80 \grafix{tour-merge-pull}
81 \caption{Repository contents after pulling from \dirname{my-hello} into
82 \dirname{my-new-hello}}
83 \label{fig:tour-merge:pull}
84 \end{figure}
86 \dirname{my-hello} $B$+$i(B \dirname{my-new-hello} $B$X$N(B
87 \hgcmd{pull} $B$K$h$k1F6A$r!"(B
88 $B?^(B~\ref{fig:tour-merge:pull} $B$G8+$k$3$H$,$G$-$^$9!#(B
89 $B4{$K(B \dirname{my-new-hello} $B$KB8:_$7$F$$$?MzNr$K$O<j$,IU$1$i$l$F$$$^$;$s$,!"(B
90 $B?7$7$$%j%S%8%g%s$,DI2C$5$l$F$$$^$9!#(B
91 $B?^(B~\ref{fig:tour-merge:pull} $B$+$i$O!"(B
92 $B?7$7$$%j%]%8%H%j!J(B\dirname{my-new-hello}$B!K$K$*$$$F!"(B
93 \emph{$B%A%'%s%8%;%C%H<1JL;R(B}$B$OF1$8$^$^$G$b!"(B
94 \emph{$B%j%S%8%g%sHV9f(B}$B$,0[$J$kMM$,FI$_<h$l$^$9(B
95 $B!J$=$7$F!"?^$i$:$b!"%A%'%s%8%;%C%H$K$D$$$FOC$r$9$k:]$K!"(B
96 $B%j%S%8%g%sHV9f$r;HMQ$9$k$N$,NI$/$J$$!"$H$$$&9%Nc$K$J$C$F$$$^$9!K!#(B
97 \hgcmd{heads} $B%3%^%s%I$K$h$j!"(B
98 $B%j%]%8%H%j$N(B head $B$r8+$k$3$H$,$G$-$^$9!#(B
100 \interaction{tour.merge.heads}
102 \subsection{Performing the merge}
104 $B:n6HNN0h%G%#%l%/%H%j$r!"(B
105 $B!J(B\dirname{my-hello} $B$+$i<h$j9~$s$@!K?7$?$J(B tip $B%j%S%8%g%s$K99?7$9$k$?$a$K!"(B
106 $B$$$D$b$N$h$&$K(B \hgcmd{update} $B%3%^%s%I$r<B9T$9$k$H!"(B
107 $B$I$&$J$k$G$7$g$&!)(B
109 \interaction{tour.merge.update}
111 Mercurial $B$+$i!"(B
112 \hgcmd{update} $B%3%^%s%I$G$O%^!<%8$,9T$o$l$J$$;]$,DLC#$5$l$^$9!#(B
113 $B%^!<%8$N<B;\$,I,MW$H;W$o$l$k>l9g!"(B
114 $B6/@)E*$J<B9T$r$7$J$$8B$j$O(B
115 \hgcmd{update} $B%3%^%s%I$K$h$k:n6HNN0h%G%#%l%/%H%j$N99?7$O9T$o$l$^$;$s!#(B
116 \hgcmd{update} $B%3%^%s%I$NBe$o$j$K!"(B
117 \hgcmd{merge} $B%3%^%s%I$rMQ$$$F#2$D$N(B head $B$r%^!<%8$7$^$9!#(B
119 \interaction{tour.merge.merge}
121 \begin{figure}[ht]
122 \centering
123 \grafix{tour-merge-merge}
124 \caption{Working directory and repository during merge, and
125 following commit}
126 \label{fig:tour-merge:merge}
127 \end{figure}
129 \hgcmd{merge} $B%3%^%s%I$K$h$C$F!"(B
130 \hgcmd{parents} $B%3%^%s%I$N=PNO!"(B
131 $B$*$h$S(B \filename{hello.c} $B$NFbMF$NJQ99$H$$$&7A$G!"(B
132 \emph{$BN>J}(B}$B$N(B head $B$NJQ99FbMF$,:n6HNN0h%G%#%l%/%H%j$KH?1G$5$l$^$9!#(B
134 \interaction{tour.merge.parents}
136 \subsection{Committing the results of the merge}
138 $B7k2L$r(B \hgcmd{commit} $B$9$k$^$G$O!"(B
139 \hgcmd{parents} $B$O%^!<%8$N:]$K$O>o$K#2$D$N?F!J%A%'%s%8%;%C%H!K$rI=<($7$^$9!#(B
141 \interaction{tour.merge.commit}
143 $B$3$l$G!"?7$7$$(B tip $B%j%S%8%g%s$,:n@.$5$l$^$7$?!#(B
144 $B@h=R$7$?#2$D$N(B head $B$N(B\emph{$BN>J}(B}$B$r?F$K;}$DE@$KCm0U$7$F$/$@$5$$!#(B
145 $B$3$l$i$O!"@h$K(B \hgcmd{parents} $B$GI=<($7$?%j%S%8%g%s$H0lCW$7$^$9!#(B
147 \interaction{tour.merge.tip}
149 $B:n6HNN0h%G%#%l%/%H%j$,%^!<%8$N:]$K$I$N$h$&$K$J$C$F$$$k$N$+!"(B
150 $B$=$7$F%3%_%C%H$K$h$C$F$I$N$h$&$K%j%]%8%H%j$K:nMQ$9$k$N$+$r!"(B
151 $B?^(B~\ref{fig:tour-merge:merge} $B$+$iFI$_<h$k$3$H$,$G$-$^$9!#(B
152 $B%^!<%8$N:]$K:n6HNN0h%G%#%l%/%H%j$N?F$G$"$C$?#2$D$N%A%'%s%8%;%C%H$O!"(B
153 $B%3%_%C%H$N:]$K$O?7$?$J%A%'%s%8%;%C%H$K$H$C$F$N?F%A%'%s%8%;%C%H$H$J$j$^$9!#(B
155 \section{Merging conflicting changes}
157 $BKX$I$N%^!<%8:n6H$O4JC1$K:Q$_$^$9$,!"(B
158 $B;~$K$O%^!<%8BP>]$N%A%'%s%8%;%C%HF1;N$,!"(B
159 $BF1$8%U%!%$%k$NF1$8It0L$rJQ99$7$F$$$k>l9g$,$"$j$^$9!#(B
160 $BN><T$NJQ99FbMF$,F10l$GL5$1$l$P!"(B
161 $B%^!<%8$O(B\emph{$B>WFM(B}$B!J(Bconflict$B!K$r@8$8$k$?$a!"(B
162 $BN><T$N0[$J$kJQ99FbMF$rN>N)$5$;$F(B
163 $B2?$i$+$N0l4S@-$N<h$l$?>uBV$K$9$k$?$a$N7hCG$,I,MW$G$9!#(B
165 \begin{figure}[ht]
166 \centering
167 \grafix{tour-merge-conflict}
168 \caption{Conflicting changes to a document}
169 \label{fig:tour-merge:conflict}
170 \end{figure}
172 $BJ8=q$KBP$9$k#2$D$NJQ99$N>WFM$NNc$r!"(B
173 $B?^(B~\ref{fig:tour-merge:conflict} $B$,?^<($7$F$$$^$9!#(B
174 $BN><T$O%U%!%$%k$NF1$8HG$r85$K$7$F$$$^$9$,!"(B
175 $B0lJ}$,JQ99$r9T$&K5$i!"(B
176 $BB>J}$,F1$8CJMn$KBP$7$F0[$J$kJQ99$r$7$F$7$^$$$^$9!#(B
177 $BJQ99$N>WFM$r2r>C$9$k:n6H$H$O!"(B
178 $B$=$N%U%!%$%k$,$I$N$h$&$K$J$C$F$$$k$Y$-$+$r7hDj$9$k$3$H$KB>$J$j$^$;$s!#(B
180 Mercurial $B$K$O>WFM$r07$&5!G=$,AH$_9~$^$l$F$$$^$;$s!#(B
181 $B$=$NBe$o$j$K!"(B
182 \command{hgmerge} $B$H8F$P$l$k30It%W%m%0%i%`$r<B9T$7$^$9!#(B
183 $B$3$N%W%m%0%i%`$O!"(B
184 Mercurial $B$KE:IU$5$l$k%7%'%k%9%/%j%W%H(B\footnote{$BLuCm(B:
185 \command{/bin/sh} $B8~$1$@$+$i!"$H$$$&$3$H$J$N$G$7$g$&$,!"(B
186 Windows $B$N%P%$%J%jHG$K$OE:IU$5$l$F$$$^$;$s!#(B}$B$G$9$,!"(B
187 $BJL$J%W%m%0%i%`$r5/F0$5$;$k$3$H$b$G$-$^$9!#(B
188 \command{hgmerge} $B$N4pDlF0:n$G$O!"(B
189 $B4v$D$+$NCxL>$J%^!<%8%D!<%k$N$&$A!"(B
190 $B2TF/4D6-$K$*$$$F%$%s%9%H!<%k$5$l$F$$$k$H;W$o$l$k$b$N$rC5$7$^$9!#(B
191 $B$^$:;O$a$K!"(B
192 $BHsBPOCE*%^!<%8%D!<%k(B\footnote{$BLuCm(B:
193 \command{diff3} $B$d(B \command{merge} $B$J$I(B}$B$r<B9T$7$F$_$^$9$,!"(B
194 $B!J?M<j$K$h$C$F2r7h$9$kI,MW@-$,$"$k$?$a$K!K$=$l$,<:GT$7$?>l9g$d!"(B
195 $B$=$b$=$b$=$l$i$N%D!<%k$,Ds6!$5$l$F$$$J$$>l9g!"(B
196 $BB>$N%0%i%U%#%+%k$J%^!<%8%D!<%k$N5/F0$r;n$_$^$9(B
197 \footnote{$BLuCm(B: $BNc$($P!"(B
198 \command{diff3} $B$K$h$k%^!<%8$r9T$$!"(B
199 $B>WFM$,8!=P$5$l$?>l9g$O$=$N%U%!%$%k$4$H$K!"(B
200 \envar{EDITOR} $B4D6-JQ?t$GDj5A$5$l$k%(%G%#%?!J$J$$$7(B \command{vi}$B!K(B
201 $B$r5/F0$7$F!"(B
202 $B$=$l$>$l$N%A%'%s%8%;%C%H$KM3Mh$9$kJQ99$N4V$G$ND4Dd$rMW5a$7$F$-$^$9!#(B
203 }$B!#(B
205 \envar{HGMERGE}
206 $B4D6-JQ?t$K5/F0BP>]%W%m%0%i%`$J$$$7%9%/%j%W%HL>$r@_Dj$9$k$3$H$G!"(B
207 Mercurial $B$K(B \command{hgmerge} $B0J30$r5/F0$5$;$k;v$b$G$-$^$9(B
209 \subsection{Using a graphical merge tool}
211 $BCx<T$N$*A&$a$N%0%i%U%#%+%k$J%^!<%8%D!<%k$O(B \command{kdiff3} $B$J$N$G!"(B
212 $B%0%i%U%#%+%k$J%U%!%$%k%^!<%8%D!<%k$K5a$a$i$l$k5!G=$K$D$$$F!"(B
213 $B$3$l$rBj:`$K@bL@$7$h$&$H;W$$$^$9!#(B
214 $B:n6HCf$N2hLL%$%a!<%8$,?^(B~\ref{fig:tour-merge:kdiff3}$B$K$"$j$^$9!#(B
215 $BCeL\$7$F$$$k#1$D$N%U%!%$%k$KBP$7$F!"(B
216 $B#3$D$N0[$J$k%j%S%8%g%s$,B8:_$9$k$3$H$+$i!"(B
217 $B%^!<%8J}K!$O(B\emph{$B#3J}8~%^!<%8(B}$B!J(Bthree-way merge$B!K$H8F$P$l$F$$$^$9!#(B
218 $B$=$l$f$(!"%^!<%8%D!<%k$O%&%#%s%I%&>eIt$r#3$D$N6h2h$KJ,3d$7$F$$$^$9!#(B
220 \begin{itemize}
221 \item $B:8C<$KI=<($5$l$F$$$k$N$O!"(B
222 $B%U%!%$%k$N(B\emph{$B85(B}$B!J(Bbase$B!K$NHG!"(B
223 $B$D$^$j%^!<%8BP>]$H$7$F$$$k#2$D$NHG$K$H$C$F!"(B
224 $B:G$b?7$7$$J,4t85$H$J$C$F$$$kHG$G$9!#(B
226 \item $BCf1{$KI=<($5$l$F$$$k$N$O!"(B
227 $B%^!<%8(B``$B@h(B''$B$NHG(B\footnote{$BLuCm(B: $B86J8$G$O!V(B``our'' version$B!W(B}$B$G$9$N$G!"(B
228 $B:n6HNN0h%G%#%l%/%H%j$K$*$1$kJQ99FbMF$,I=<($5$l$^$9!#(B
230 \item $B1&C<$KI=<($5$l$F$$$k$N$O!"(B
231 $B%^!<%8(B``$B85(B''\footnote{$BLuCm(B: $B86J8$G$O!V(B``their'' version$B!W(B}$B$G$9$N$G!"(B
232 $B%^!<%8$7$h$&$H$7$F$$$k%A%'%s%8%;%C%H$KM3Mh$9$kFbMF$,I=<($5$l$^$9!#(B
234 \end{itemize}
236 $B$3$l$i$N6h2h$N2<J}$KI=<($5$l$F$$$k$N$O!"(B
237 $B8=;~E@$G$N%^!<%8(B\emph{$B7k2L(B}$B$G$9!#(B
238 $B%^!<%8$K$*$1$k:n6H$H$O!"(B
239 $B2hLL>e$K@V;z$GI=<($5$l$?(B\footnote{$BLuCm(B:
240 \command{diff3} $B$,9TC10L$G$N>WFMI=<($G$"$k$N$KHf$Y$F!"(B
241 GUI $B$G$"$kMxE@$,@8$-$F$$$^$9!#(B}$B!"(B
242 $B?5=E$J%U%!%$%k$N%^!<%8$,I,MW$H$5$l$kL$2r7h$N>WFM$r!"(B
243 $BBEEv$JFbMF$GCV$-49$($k$3$H$G$9!#(B
245 $B$3$l$i#4$D$N6h2h$O(B\emph{$B8_$$$K8GDj(B}$B$5$l$F$$$k$N$G!"(B
246 $B$$$:$l$+$N6h2h$r%9%/%m!<%k$5$;$?>l9g$K$O!"(B
247 $BB>$N6h2h$bAj1~$N>l=j$rI=<($9$k$h$&$K99?7$5$l$^$9!#(B
249 \begin{figure}[ht]
250 \centering
251 \grafixL{kdiff3}
252 \label{fig:tour-merge:kdiff3}
253 \caption{Using \command{kdiff3} to merge versions of a file}
254 \end{figure}
256 $B%U%!%$%kCf$N8D!9$N>WFM2U=j$K$*$$$F!"(B
257 $B>WFM$r2r>C$9$k$?$a$K!"(B
258 $B85HG!?%^!<%8@hHG!?%^!<%885HG$N%F%-%9%H$r(B
259 $B!J$=$l$i$NAH$_9g$o$;$b4^$a$F!KG$0U$KA*Br$9$k$3$H$,$G$-$^$9!#(B
260 $B$^$?!"99$J$kJQ99$r9T$&$?$a$K!"(B
261 $B%^!<%87k2L$rD>@\<j$GF~NO$9$k$3$H$b$G$-$^$9!#(B
263 $B$3$3$G>R2p$7@Z$l$J$$$[$I(B\emph{$BB?$/$N(B}$B%U%!%$%k%^!<%8%D!<%k$,B8:_$7$^$9!#(B
264 $B$3$l$i$O$=$l$>$l!"2TF02DG=%W%i%C%H%[!<%`$d!"(B
265 $BFCD'E*$JF@<jITF@<j$J$I$NE@$G0[$J$j$^$9!#(B
266 $BKX$I$N%D!<%k$O%F%-%9%H%U%!%$%k$N%^!<%8$KFC2=$7$F$$$^$9$,!"(B
267 $BCf$K$OFCDj$N%U%!%$%k%U%)!<%^%C%H!J0lHL$K$O(B XML$B!K(B
268 $B$KFC2=$7$?$b$N$b$"$j$^$9!#(B
270 \subsection{A worked example}
272 $BK\@a$G$NNc$G$O!"(B
273 $BA0=R$N?^(B~\ref{fig:tour-merge:conflict}
274 $B$K$*$1$k%U%!%$%k99?7$NMzNr$r:F8=$7$^$9!#(B
275 $B85$H$J$kHG$N%U%!%$%k$r3JG<$7$?%j%]%8%H%j$r:n@.$9$k$3$H$+$i;O$a$^$7$g$&(B
276 \footnote{$BLuCm(B: $B<B9TNc$G$O!"(B
277 $B?75,$N%j%]%8%H%j$G$"$k(B \dirname{scam} $B$N(B \hgcmd{init} $B$,H4$1$F$$$^$9!#(B}$B!#(B
279 \interaction{tour-merge-conflict.wife}
281 $B<!$K!"%j%]%8%H%j$rJ#@=$7!"%U%!%$%k$rJQ99$7$^$9!#(B
283 \interaction{tour-merge-conflict.cousin}
285 $B$b$&0l$D%j%]%8%H%j$rJ#@=$7!"(B
286 $BB>$NMxMQ<T$K$h$k%U%!%$%k$X$NJQ99$rLO5<E*$K:F8=$7$^$9(B
287 $B!J$3$NLO5<E*$J<B9T$O!"(B
288 $B%?%9%/$4$H$K3VN%$7$?%j%]%8%H%j$N4V$G$N%^!<%8$I$3$m$+!"(B
289 $B$=$l$i$N%^!<%8$N:]$N>WFM$r2r>C$9$k$3$H$G$9$i!"(B
290 $B7h$7$FDA$7$$$3$H$G$O$J$$!"(B
291 $B$H$$$&$3$H$r0E<($7$F$$$^$9!K!#(B
293 \interaction{tour-merge-conflict.son}
295 $BF10l%U%!%$%k$K#2$D$N0[$J$kHG$,$G$-$?$N$G!"(B
296 $B%^!<%8<B;\$N4D6-$,@0$$$^$7$?!#(B
298 \interaction{tour-merge-conflict.pull}
300 $B%^!<%8$K$*$1$kBPOCE*$J=hM}$NItJ,$,!"(B
301 $BK\=q$K$*$1$k<B9TNc$N<+F0<B9T5!9=(B~ref{sec:automated-example-running
302 }$B$rB;$M$k$?$a!"(B
303 $B$3$NNc$G$O(B Mercurial $B$N(B \command{hgmerge} $B$r;HMQ$7$^$;$s!#(B
304 $B$=$NBe$o$j$K!"(B
305 \envar{HGMERGE} $B$r@_Dj$9$k$3$H$G!"(B
306 Mercurial $B$KHsBPOCE*$J(B \command{merge} $B%3%^%s%I$r<B9T$5$;$^$9!#(B
307 $B$3$N%3%^%s%I$OB?$/$N(B Unix $BE*$J%7%9%F%`$KF1:-$5$l$F$$$^$9!#(B
308 $B0J2<$NNc$r<B:]$K;n$9:]$K$O!"(B
309 \envar{HGMERGE} $B$r$o$6$o$6@_Dj$9$kI,MW$O$"$j$^$;$s!#(B
311 \interaction{tour-merge-conflict.merge}
313 \command{merge} $B%3%^%s%I$O>WFM$r2r>C$;$:$K!"(B
314 $B$I$N9T$K$*$1$kJQ99$,>WFM$7$F$$$F!"(B
315 $B$=$NJQ99$,$I$N%A%'%s%8%;%C%H$KM3Mh$9$k$N$+$r<($9(B\emph{$B%^!<%8%^!<%/(B}$B$r!"(B
316 $B>WFM$,8!=P$5$l$?%U%!%$%k$K=q$-9~$_$^$9!#(B
318 Mercurial $B$O!"(B
319 \command{merge} $B$N=*N;%3!<%I$,%^!<%8=hM}(B\footnote{$BLuCm(B:
320 $B$h$j@53N$K$O!V%^!<%8$K$*$1$k>WFM$N2r>C!W(B}$B<:GT$r<($9>l9g!"(B
321 $B%^!<%8=hM}$r:F<B9T$9$k<j=g$rI=<($7$^$9!#(B
322 $B$3$3$GDs<($5$l$k<j=g$O!"(B
323 $B%^!<%8:n6H$NESCf$G:.Mp$7$F$7$^$C$?$j!"(B
324 $B4V0c$C$F$7$^$C$?$3$H$K5$IU$$$F!"(B
325 $B%0%i%U%#%+%k$J%^!<%8%D!<%k$rCfES=*N;$5$;$?>l9g$J$I$KLrN)$A$^$9!#(B
327 $B<+F0$J$$$7<jF0$N%^!<%8$,<:GT$7$?>l9g$G$"$C$F$b!"(B
328 $B4XO"$NM-$k%U%!%$%k$rD>@\(B``$B=$@5(B''$B$7$?>e$G!"(B
329 $B%^!<%87k2L$r%3%_%C%H$9$k$3$H$b2DG=$G$9!#(B
331 \interaction{tour-merge-conflict.commit}
333 \section{Simplifying the pull-merge-commit sequence}
334 \label{sec:tour-merge:fetch}
336 $B$3$3$^$G$K=R$Y$F$-$?JQ99%^!<%8$N<j=g$OC1=c$J$b$N$G$9$,!"(B
337 $B#3$D$N%3%^%s%I$r=g$K<B9T$9$kI,MW$,$"$j$^$9!#(B
339 \begin{codesample2}
340 hg pull
341 hg merge
342 hg commit -m 'Merged remote changes'
343 \end{codesample2}
345 $B:G8e$N%3%_%C%H$N:]$K$O!"(B
346 $BDL>o$OLLGr$/$bL5$$(B``$B7h$^$j$-$C$?(B''$BFbMF$K$J$i$6$k$rF@$^$;$s$,!"(B
347 $B%3%_%C%H%a%C%;!<%8$rF~NO$9$kI,MW$,$"$j$^$9!#(B
349 $B2DG=$G$"$l$P!"I,MW$H$5$l$k<j=g$rDc8:$5$;$?$$$b$N$G$9!#(B
350 $B<B:]$K(B Mercurial $B$O!"$3$l$r2DG=$H$9$k(B \hgext{fetch}
351 $B$H8F$P$l$k%$%/%9%F%s%7%g%s$,F1:-$5$l$F$$$^$9!#(B
353 Mercurial $B$O!"(B
354 $B<h$j07$$$NMxJX@->e$+$iCf3K5!G=$r>.$5$/4J7i$KJ]$D0lJ}$G!"(B
355 $B5!G=DI2C$r2DG=$K$9$k$?$a$N=@Fp$J3HD%!J%$%/%9%F%s%7%g%s!K5!9=$rDs6!$7$F$$$^$9!#(B
356 $B%3%^%s%I%i%$%s$+$iMxMQ$G$-$k(B
357 Mercurial $B%3%^%s%I$rDI2C$9$k%$%/%9%F%s%7%g%s$b$"$l$P!"(B
358 $BNc$($P%5!<%P5!G=$r3HD%$9$k$h$&$J!"(B
359 ``$BIqBfN"(B''$B$G5!G=$9$k%$%/%9%F%s%7%g%s$b$"$j$^$9!#(B
361 \hgext{fetch} $B%$%/%9%F%s%7%g%s$O!"(B
362 $BM=A[$7$?$3$H$H$O;W$$$^$9$,!"(B
363 \hgcmd{fetch} $B$H8F$P$l$k?7$7$$%3%^%s%I$rDI2C$7$^$9!#(B
364 \hgcmd{fetch} $B%3%^%s%I$O!"(B
365 \hgcmd{pull}$B!?(B\hgcmd{update}$B!?(B\hgcmd{merge}$B!?(B\hgcmd{commit}
366 $B$NAH$_9g$o$;$N$h$&$K?6Iq$$$^$9!#(B
367 $B$^$:$OB>$N%j%]%8%H%j$+$i:n6HCf$N%j%]%8%H%j$XJQ99$r<h$j9~$_$^$9!#(B
368 $B<h$j9~$s$@%A%'%s%8%;%C%H$K$h$k?7$?$J(B head $B$NDI2C$,8!CN(B\footnote{$BLuCm(B:
369 $BB>$N%j%]%8%H%j$+$i$N<h$j9~$_$K$h$j!"(B
370 $B#3$D0J>e$N(B head $B$,%j%]%8%H%j$KB8:_$9$k$h$&$K$J$C$?>l9g$O!"(B
371 $B%^!<%8BP>]$NFCDj$,$G$-$J$$$?$a!"(B
372 $B<h$j9~$_$N$_$G=hM}$rCfCG$7$^$9!#(B}$B$5$l$?>l9g!"(B
373 $B%^!<%8$r3+;O$7!"(B
374 $B<+F0E*$K@8@.$5$l$?%3%_%C%H%a%C%;!<%8$r;H$C$F%3%_%C%H$r9T$$$^$9!#(B
375 $B?7$?$J(B head $B$NDI2C$,L5$+$C$?>l9g!"(B
376 \hgcmd{fetch} $B%3%^%s%I$O:n6HNN0h%G%#%l%/%H%j$r(B
377 tip $B%j%S%8%g%s$G99?7$7$^$9!#(B
379 \hgext{fetch} $B%$%/%9%F%s%7%g%s$O4JC1$KM-8z2=$G$-$^$9!#(B
380 \sfilename{.hgrc} $B%U%!%$%k$rJT=8$7!"(B
381 \rcsection{extensions} $B%;%/%7%g%s(B
382 $B!JL5$$>l9g$O:n@.$7$F$/$@$5$$!K$K0\F0$7!"(B
383 ``\Verb+fetch +'' $B$G;O$^$k9T$rDI2C$7$^$9!#(B
385 \begin{codesample2}
386 [extensions]
387 fetch =
388 \end{codesample2}
390 $B!JDL>o$O!"(B
391 ``\texttt{=}'' $B$N1&JU$K%$%/%9%F%s%7%g%s$N0LCV$r;XDj$7$^$9$,!"(B
392 \hgext{fetch} $B%$%/%9%F%s%7%g%s$OI8=`$NG[I[J*$KF1:-$5$l$F$$$k$N$G!"(B
393 Mercurial $B$O(B \hgext{fetch} $B$rC5$7=P$9$3$H$,$G$-$^$9!K(B
395 %%% Local Variables:
396 %%% mode: latex
397 %%% TeX-master: "00book"
398 %%% End: