hgbook
annotate ja/tour-merge.tex @ 1114:527b86d55d4a
inotify: update installation information
inotify is shipped in Mercurial since 1.0, which greatly simplifies the installation process
inotify is shipped in Mercurial since 1.0, which greatly simplifies the installation process
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Sun Dec 13 16:35:56 2009 +0900 (2009-12-13) |
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: |