hgbook

annotate ja/tour-merge.tex @ 890:2887b61fa4fe

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