changeset 802:de4142983445

Propagate 3b640272a966 Progres on resolve
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sun, 21 Jun 2009 09:20:47 +0900
parents ce4050cf7d44
children 5276f40fca1c
files ja/collab.tex ja/daily.tex ja/examples/ch04/resolve ja/mq.tex ja/tour-basic.tex
diffstat 5 files changed, 295 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/ja/collab.tex	Thu Jun 18 20:12:07 2009 +0900
+++ b/ja/collab.tex	Sun Jun 21 09:20:47 2009 +0900
@@ -34,7 +34,7 @@
 
 %Also for human consumption, the web interface provides an RSS feed of
 %the changes in a repository.  This lets you ``subscribe'' to a
-%repository using your favourite feed reader, and be automatically
+%repository using your favorite feed reader, and be automatically
 %notified of activity in that repository as soon as it happens.  I find
 %this capability much more convenient than the model of subscribing to
 %a mailing list to which notifications are sent, as it requires no
@@ -161,7 +161,7 @@
 
 %As one example, many projects have a loose-knit group of collaborators
 %who rarely physically meet each other.  Some groups like to overcome
-%the isolation of working at a distance by organising occasional
+%the isolation of working at a distance by organizing occasional
 %``sprints''.  In a sprint, a number of people get together in a single
 %location (a company's conference room, a hotel meeting room, that kind
 %of place) and spend several days more or less locked in there, hacking
@@ -407,7 +407,7 @@
 %\subsection{The release train}
 \subsection{$B%j%j!<%9%H%l%$%s(B}
 
-%Some projects are organised on a ``train'' basis: a release is
+%Some projects are organized on a ``train'' basis: a release is
 %scheduled to happen every few months, and whatever features are ready
 %when the ``train'' is ready to leave are allowed in.
 
--- a/ja/daily.tex	Thu Jun 18 20:12:07 2009 +0900
+++ b/ja/daily.tex	Sun Jun 21 09:20:47 2009 +0900
@@ -26,20 +26,20 @@
 
 %After you run a \hgcmd{commit}, the files that you added before the
 %commit will no longer be listed in the output of \hgcmd{status}.  The
-%reason for this is that \hgcmd{status} only tells you about
-%``interesting'' files---those that you have modified or told Mercurial
-%to do something with---by default.  If you have a repository that
-%contains thousands of files, you will rarely want to know about files
-%that Mercurial is tracking, but that have not changed.  (You can still
-%get this information; we'll return to this later.)
+%reason for this is that by default, \hgcmd{status} only tells you about
+%``interesting'' files---those that you have (for example) modified,
+%removed, or renamed. If you have a repository that contains thousands of
+%files, you will rarely want to know about files that Mercurial is
+%tracking, but that have not changed.  (You can still get this
+%information; we'll return to this later.)
 
 \hgcmd{commit}$B%3%^%s%I$r<B9T$9$k$H!$(Bcommit$B$NA0$KDI2C$7$?%U%!%$%k$O(B
 \hgcmd{status}$B$N=PNO$K8=$l$J$/$J$k!%$3$l$O!$(B\hgcmd{status}$B$,%G%U%)%k%H$G(B
-$B$OJQ99$r2C$($?$j!$(BMercurial$B$K2?$+$r$5$;$?$H$$$C$?(B``$BCmL\$9$Y$-(B''$B%U%!%$%k$N(B
-$B$_$rI=<($9$k$?$a$G$"$k!%?t@i$N%U%!%$%k$+$i$J$k%j%]%8%H%j$N>l9g!$(BMercurial$B$,(B
-$BDI@W$7$F$$$k$b$N$N!$JQ99$N2C$($i$l$F$$$J$$%U%!%$%k$K$D$$$F2?$+$rCN$j$?$$(B
-$B$H$$$&$3$H$O5)$G$"$k!%!J$b$A$m$sCN$j$?$$>l9g$O>pJs$rF@$k$3$H$b$G$-$k!%$3(B
-$B$l$K$D$$$F$O8e=R$9$k!%!K(B
+$B$O!$JQ99!$:o=|!$%j%M!<%`$J$I$r9T$C$?(B``$BCmL\$9$Y$-(B''$B%U%!%$%k$N$_$rI=<($9$k(B
+$B$?$a$G$"$k!%?t@i$N%U%!%$%k$+$i$J$k%j%]%8%H%j$N>l9g!$(BMercurial$B$,DI@W$7$F$$(B
+$B$k$b$N$N!$JQ99$N2C$($i$l$F$$$J$$%U%!%$%k$K$D$$$F2?$+$rCN$j$?$$$H$$$&$3$H(B
+$B$O5)$G$"$k!%!J$b$A$m$sCN$j$?$$>l9g$O>pJs$rF@$k$3$H$b$G$-$k!%$3$l$K$D$$$F(B
+$B$O8e=R$9$k!%!K(B
 
 %Once you add a file, Mercurial doesn't do anything with it
 %immediately.  Instead, it will take a snapshot of the file's state the
@@ -61,23 +61,23 @@
 %\interaction{daily.files.add-dir}
 %Notice in this example that Mercurial printed the names of the files
 %it added, whereas it didn't do so when we added the file named
-%\filename{a} in the earlier example.
+%\filename{myfile.txt} in the earlier example.
 
 Mercurial$B$NA4$F$N%3%^%s%I$O!$0z?t$H$7$F%G%#%l%/%H%jL>$rEO$9$H!$%G%#%l%/%H(B
 $B%j$NFb$NA4$F$N%U%!%$%k$H%5%V%G%#%l%/%H%j$KBP$9$kA`:n$G$"$k$H2r<a$9$k$?$a(B
 $BJXMx$G$"$k!%(B
 \interaction{daily.files.add-dir}
 $B$3$NNc$G$O(BMercurial$B$ODI2C$7$?%U%!%$%kL>$rI=<($7$F$$$k$,!$A0$NNc$G(B
-\filename{a}$B$H$$$&L>A0$N%U%!%$%k$rDI2C$7$?:]$K$OI=<($7$F$$$J$+$C$?E@$KCm(B
-$B0U$5$l$?$$!%(B
+\filename{myfile.txt}$B$H$$$&L>A0$N%U%!%$%k$rDI2C$7$?:]$K$OI=<($7$F$$$J$+$C(B
+$B$?E@$KCm0U$5$l$?$$!%(B
 
-%What's going on is that in the former case, we explicitly named the
-%file to add on the command line, so the assumption that Mercurial
-%makes in such cases is that you know what you were doing, and it
-%doesn't print any output.
+%What's going on is that in the former case, we explicitly named the file
+%to add on the command line. The assumption that Mercurial makes in such
+%cases is that we know what we are doing, and it doesn't print any
+%output.
 
-$BA0$NNc$G$O%3%^%s%I%i%$%s$G$I$N%U%!%$%k$rDI2C$9$k$N$+$rL@<(E*$K;XDj$7$?$?(B
-$B$a!$(BMercurial$B$O%f!<%6$,2?$r$7$h$&$H$7$F$$$k$N$+J,$+$C$F$$$k$H?dDj$7$F2?$b(B
+$BA0$NNc$G$O!$%3%^%s%I%i%$%s$GDI2C$9$k%U%!%$%k$rL@<(E*$K;XDj$7$?$?(B
+$B$a!$(BMercurial$B$O%f!<%6$,2?$r$7$h$&$H$7$F$$$k$N$+J,$+$C$F$$$k$H?dDj$7!$2?$b(B
 $BI=<($7$J$+$C$?!%(B
 
 %However, when we \emph{imply} the names of files by giving the name of
@@ -151,7 +151,7 @@
 \section{$B%U%!%$%kDI@W$NDd;_(B}
 
 %Once you decide that a file no longer belongs in your repository, use
-%the \hgcmd{remove} command; this deletes the file, and tells Mercurial
+%the \hgcmd{remove} command. This deletes the file, and tells Mercurial
 %to stop tracking it.  A removed file is represented in the output of
 %\hgcmd{status} with a ``\texttt{R}''.
 %\interaction{daily.files.remove}
@@ -193,17 +193,18 @@
 %the file.
 $B%U%!%$%k$r$I$N$h$&$K:o=|$7$F$b%U%!%$%k$N(B\emph{$BMzNr(B}$B$OJQ99(B\emph{$B$5$l$J$$(B}$B!%(B
 
-%If you update the working directory to a changeset in which a file
-%that you have removed was still tracked, it will reappear in the
-%working directory, with the contents it had when you committed that
-%changeset.  If you then update the working directory to a later
-%changeset, in which the file had been removed, Mercurial will once
+%If you update the working directory to a changeset that was committed
+%when it was still tracking a file that you later removed, the file will
+%reappear in the working directory, with the contents it had when you
+%committed that changeset.  If you then update the working directory to a
+%later changeset, in which the file had been removed, Mercurial will once
 %again remove the file from the working directory.
 
-$B%o!<%-%s%0%G%#%l%/%H%j$r!$>C5n$7$?%U%!%$%k$r4^$`%A%'%s%8%;%C%H$K99?7$9$k(B
-$B$H!$%U%!%$%k$O$=$N%A%'%s%8%;%C%H$G$NFbMF$G:F$S%o!<%-%s%0%G%#%l%/%H%j$K8=(B
-$B$l$k!%$=$3$G%U%!%$%k$,>C5n$5$l$F$$$k8e$N%A%'%s%8%;%C%H$K99?7$9$k(B
-$B$H!$(BMercurial$B$O%U%!%$%k$r:F$S%o!<%-%s%0%G%#%l%/%H%j$+$i>C5n$9$k!%(B
+$B%o!<%-%s%0%G%#%l%/%H%j$r!$>C5n$7$?%U%!%$%k$,4IM}$5$l$F$$$?:"$K%3%_%C%H$5(B
+$B$l$?%A%'%s%8%;%C%H$K99?7$9$k$H!$%U%!%$%k$O$=$N%A%'%s%8%;%C%H$N%3%_%C%H;~(B
+$B$NFbMF$G%o!<%-%s%0%G%#%l%/%H%j$K:F$S8=$l$k!%$=$3$G%o!<%-%s%0%G%#%l%/%H%j(B
+$B$r%U%!%$%k$N>C5n$5$l$?8e$N%A%'%s%8%;%C%H$K99?7$9$k$H!$(BMercurial$B$O:F$S%U%!(B
+$B%$%k$r%o!<%-%s%0%G%#%l%/%H%j$+$i>C5n$9$k!%(B
 
 %\subsection{Missing files}
 \subsection{$B7gMn$7$?%U%!%$%k(B}
@@ -355,8 +356,8 @@
 \subsection{$BJQ99$O$J$<%3%T!<$K=>$o$J$1$l$P$J$i$J$$$+(B}
 \label{sec:daily:why-copy}
 
-%This behaviour, of changes to a file propagating out to copies of the
-%file, might seem esoteric, but in most cases it's highly desirable.
+%This behaviour---of changes to a file propagating out to copies of the
+%file---might seem esoteric, but in most cases it's highly desirable.
 
 $B%U%!%$%k$X$NJQ99$,$=$N%3%T!<$XGH5Z$9$kF0:n$OFq2r$K;W$($k$+$b$7$J$$$,!$B?(B
 $B$/$N>l9g$OHs>o$KK>$^$7$$F0:n$G$"$k!%(B
@@ -370,12 +371,12 @@
 $B$r(B\hgcmd{copy}$B$9$k>l9g$d!$DL>o$N:n6H$G%*%j%8%J%k%U%!%$%k$rJQ99$9$k>l9g$O(B
 $B2?$b5/$-$J$$!%(B
 
-%The second thing to know is thatmodifications will only propagate
-%across a copy as long as the repository that you're pulling changes
-%from \emph{doesn't know} about the copy.
+%The second thing to know is that modifications will only propagate
+%across a copy as long as the changeset that you're merging changes from
+%\emph{hasn't yet seen} the copy.
 
-$BCN$C$F$*$/$Y$-E@$N(B2$B$DL\$O!$JQ99$r(Bpull$B$9$k%j%]%8%H%j$,!$%3%T!<$K$D$$$F(B
-\emph{$B4XCN$7$J$$(B}$B8B$j!$JQ99$OGH5Z$9$k$H$$$&$3$H$G$"$k!%(B
+$BCN$C$F$*$/$Y$-E@$N(B2$B$DL\$O!$JQ99$OJQ99$N%^!<%885$N%A%'%s%8%;%C%H$,%3%T!<$r(B
+\emph{$B4XCN$7$F$$$J$$>l9g(B}$B$K$N$_GH5Z$9$k$H$$$&$3$H$G$"$k!%(B
 
 %The reason that Mercurial does this is as follows.  Let's say I make
 %an important bug fix in a source file, and commit my changes.
@@ -389,13 +390,13 @@
 \hgcmd{copy}$B$r9T$$!$%U%!%$%k$NJQ99$r;O$a$?$H$9$k!%(B
 
 %If you pulled and merged my changes, and Mercurial \emph{didn't}
-%propagate changes across copies, your source file would now contain
-%the bug, and unless you remembered to propagate the bug fix by hand,
-%the bug would \emph{remain} in your copy of the file.
+%propagate changes across copies, your new source file would now contain
+%the bug, and unless you knew to propagate the bug fix by hand, the bug
+%would \emph{remain} in your copy of the file.
 
 $B$"$J$?$,;d$N9T$C$?JQ99$r(Bpull$B$7!$(Bmerge$B$7$?>l9g!$(BMercurial$B$OJQ99$r%3%T!<4V(B
-$B$GGH5Z$5$;$J$$!%$"$J$?$N%=!<%9%U%!%$%k:#%P%0$r;}$C$F$$$k$+$b$7$l$J$$$,!$(B
-$B%P%0=$@5$r<j$GGH5Z$5$;$J$1$l$P%P%0$O%U%!%$%k$N%3%T!<$K(B\emph{$B;D$k(B}$B!%(B
+$B$GGH5Z$5$;$J$$!%$"$J$?$N?7$7$$%=!<%9%U%!%$%k$O:#%P%0$r;}$C$F$$$k$+$b$7$l(B
+$B$J$$$,!$%P%0=$@5$r<j$GGH5Z$5$;$J$1$l$P%P%0$O%U%!%$%k$N%3%T!<$K(B\emph{$B;D$k(B}$B!%(B
 
 %By automatically propagating the change that fixed the bug from the
 %original file to the copy, Mercurial prevents this class of problem.
@@ -407,16 +408,15 @@
 $B$j!$(BMercurial$B$O!$$3$N$h$&$J%3%T!<4V$GJQ99$rGH5Z$5$;$kM#0l$N%j%S%8%g%s%3%s(B
 $B%H%m!<%k%7%9%F%`$G$"$k!%(B
 
-%Once your change history has a record that the copy and subsequent
-%merge occurred, there's usually no further need to propagate changes
-%from the original file to the copied file, and that's why Mercurial
-%only propagates changes across copies until this point, and no
-%further.
+%Once your change history has a record that the copy and subsequent merge
+%occurred, there's usually no further need to propagate changes from the
+%original file to the copied file, and that's why Mercurial only
+%propagates changes across copies at the first merge, and not afterwards.
 
 $B%3%T!<$H8eB3$N%^!<%8$,5/$3$C$?$3$H$,99?7MzNr$K4^$^$l$k>l9g!$JQ99$r%*%j%8(B
 $B%J%k%U%!%$%k$+$i%3%T!<$5$l$?%U%!%$%k$X$5$i$KGH5Z$5$;$kI,MW$O$J$$!%$3$l$,(B
-Mercurial$B$,$3$N;~E@$^$G$N$_JQ99$r%3%T!<4V$GGH5Z$5$;!$$=$N8e$G$O9T$o$J$$M}(B
-$BM3$G$"$k!%(B
+Mercurial$B$,:G=i$N%^!<%8$N;~$K%3%T!<4V$GJQ99$rGH5Z$5$;!$$=$N8e$G$O9T$o$J$$(B
+$BM}M3$G$"$k!%(B
 
 %\subsection{How to make changes \emph{not} follow a copy}
 \subsection{$BJQ99$,%3%T!<$K=>$o$J$$$h$&$K$9$kJ}K!(B}
@@ -427,7 +427,7 @@
 %\command{cp}) to make a copy of a file, then \hgcmd{add} the new copy
 %by hand.  Before you do so, though, please do reread
 %section~\ref{sec:daily:why-copy}, and make an informed decision that
-%this behaviour is not appropriate to your specific case.
+%this behavior is not appropriate to your specific case.
 
 $B2?$i$+$NM}M3$G$3$N$h$&$KJQ99$,<+F0E*$KGH5Z$9$k$d$jJ}$,9%$^$7$/$J$$$H;W$o(B
 $B$l$k>l9g$O!$%7%9%F%`I8=`$N$"%U%!%$%k%3%T!<%3%^%s%I!J(BUNIX$B7O%7%9%F%`$G$O(B
@@ -436,7 +436,7 @@
 $B$K!$(B~\ref{sec:daily:why-copy}$B@a$r:FFI$7!$$3$N$d$jJ}$N>\:Y$rF'$^$($?>e$G!$(B
 $B$"$J$?$N%1!<%9$KE,$7$F$$$k$+H=CG$7$F$[$7$$!%(B
 
-%\subsection{Behaviour of the \hgcmd{copy} command}
+%\subsection{Behavior of the \hgcmd{copy} command}
 \subsection{\hgcmd{copy}$B%3%^%s%I$N5sF0(B}
 
 %When you use the \hgcmd{copy} command, Mercurial makes a copy of each
@@ -453,11 +453,21 @@
 $B2C$($?JQ99$r4^$s$G$$$k!%(B $B!JI.<T$O$3$N5sF0$O$d$dD>4Q$KH?$9$k$H9M$($F$$$k$?(B
 $B$a!$4:$($F$3$3$G8@5Z$7$?!%!K(B
 
-%The \hgcmd{copy} command acts similarly to the Unix \command{cp}
-%command (you can use the \hgcmd{cp} alias if you prefer).  The last
-%argument is the \emph{destination}, and all prior arguments are
-%\emph{sources}.  If you pass it a single file as the source, and the
+%The \hgcmd{copy} command acts similarly to the Unix \command{cp} command
+%(you can use the \hgcmd{cp} alias if you prefer). We must supply two or
+%more arguments, of which the last is treated as the \emph{destination},
+%and all others are \emph{sources}.
+
+\hgcmd{copy}$B%3%^%s%I$O(BUnix$B$N(B\command{cp}$B$HF1MM$K?6Iq$&!%!J(B\hgcmd{cp}$B%(%$(B
+$B%j%"%9$rDj5A$7$F;H$&$3$H$b2DG=$@!%!K0z?t$O(B2$B$D0J>e$,I,MW$G!$:G8e$N0z?t$O(B
+\emph{$B%3%T!<@h(B}$B$G!$$=$l0J30$N0z?t$O(B\emph{$B%3%T!<85(B}$B$H$7$F07$o$l$k!%(B
+
+%If you pass \hgcmd{copy} a single file as the source, and the
 %destination does not exist, it creates a new file with that name.
+
+$B%3%T!<85$H$7$FC10l$N%U%!%$%k$r;XDj$7!$%3%T!<@h%U%!%$%k$,B8:_$7$J$$>l9g!$(B
+$B%3%^%s%I$O%3%T!<@h%U%!%$%k$r?75,$K:n@.$9$k!%(B
+
 %\interaction{daily.copy.simple}
 %If the destination is a directory, Mercurial copies its sources into
 %that directory.
@@ -469,11 +479,6 @@
 %recreated in the destination directory.
 %\interaction{daily.copy.dir-src-dest}
 
-\hgcmd{copy}$B%3%^%s%I$O(BUnix$B$N(B\command{cp}$B$HF1MM$K?6Iq$&!%!J(B\hgcmd{cp}$B%(%$(B
-$B%j%"%9$rDj5A$7$F;H$&$3$H$b2DG=$@!%!K0z?t$N:G8e$O(B\emph{$B%3%T!<@h(B}$B$G!$$=$l0J(B
-$BA0$N0z?t$O(B\emph{$B%3%T!<85(B}$B$G$"$k!%%3%T!<85$H$7$FC10l$N%U%!%$%k$r;XDj$7!$%3(B
-$B%T!<@h%U%!%$%k$,B8:_$7$J$$>l9g!$%3%^%s%I$O%3%T!<@h%U%!%$%k$r?75,$K:n@.$9(B
-$B$k!%(B
 \interaction{daily.copy.simple}
 $B%3%T!<@h$,%G%#%l%/%H%j$N>l9g!$(BMercurial$B$O%3%T!<85$r%3%T!<@h%G%#%l%/%H%j(B
 $B$NCf$K%3%T!<$9$k!%(B
@@ -484,12 +489,12 @@
 $B@h$N%G%#%l%/%H%j$NCf$K:F8=$5$l$k!%(B
 \interaction{daily.copy.dir-src-dest}
 
-%As with the \hgcmd{rename} command, if you copy a file manually and
+%As with the \hgcmd{remove} command, if you copy a file manually and
 %then want Mercurial to know that you've copied the file, simply use
 %the \hgopt{copy}{--after} option to \hgcmd{copy}.
 %\interaction{daily.copy.after}
 
-\hgcmd{rename}$B%3%^%s%I$HF1MM$K!$%U%!%$%k$r<jF0$G%3%T!<$7$?8e$G!$(BMercurial$B$K(B
+\hgcmd{remove}$B%3%^%s%I$HF1MM$K!$%U%!%$%k$r<jF0$G%3%T!<$7$?8e$G!$(BMercurial$B$K(B
 $BA`:n$rDLCN$7$?$$>l9g$O!$(B\hgcmd{copy}$B%3%^%s%I$K(B\hgopt{copy}{--after}$B%*%W(B
 $B%7%g%s$rIU$1$l$P$h$$!%(B
 \interaction{daily.copy.after}
@@ -545,6 +550,12 @@
 $B%^%s%I$N5sF0$H!$$3$N%3%^%s%I$,<u$1F~$l$k%*%W%7%g%s$O(B\hgcmd{copy}$B%3%^%s%I(B
 $B$HN`;w$7$F$$$k!%(B
 
+%If you're familiar with the Unix command line, you'll be glad to know
+%that \hgcmd{rename} command can be invoked as \hgcmd{mv}.
+
+Unix$B%3%^%s%I$K47$l$F$$$k$J$i!$(B\hgcmd{rename}$B$NBe$o$j$K(B\hgcmd{mv}$B$,;H$($k(B
+$B$3$H$rCN$C$F$$$k$H$h$$$@$m$&!%(B
+
 %\subsection{Renaming files and merging changes}
 \subsection{$B%U%!%$%k$N%j%M!<%`$HJQ99$N%^!<%8(B}
 
@@ -592,15 +603,15 @@
 %Anne renames the file to \filename{bar}.
 $B%"%s$O%U%!%$%k$r(B\filename{bar}$B$H2~L>$7$?!%(B
 \interaction{rename.divergent.rename.anne}
-%Meanwhile, Bob renames it to \filename{quux}.
-$B$=$N4V!$%\%V$OF1$8%U%!%$%k$r(B\filename{quux}$B$H2~L>$7$?!%(B
+%Meanwhile, Bob renames it to \filename{quux}. (Remember that \hgcmd{mv}
+%is an alias for \hgcmd{rename}.)
+$B$=$N4V!$%\%V$OF1$8%U%!%$%k$r(B\filename{quux}$B$H2~L>$7$?!%!J(B\hgcmd{mv}$B$,(B
+\hgcmd{rename}$B$N%(%$%j%"%9$G$"$k$3$H$KCm0U!K(B
 \interaction{rename.divergent.rename.bob}
-
 %I like to think of this as a conflict because each developer has
 %expressed different intentions about what the file ought to be named.
-
-$B3F!9$N3+H/<T$O%U%!%$%k$,$I$N$h$&$K8F$P$l$k$Y$-$+$K$D$$$F0[$J$C$?0U?^$r;}$C(B
-$B$F$*$j!$$3$l$O%3%s%U%j%/%H$H9M$($i$l$k!%(B
+$B3F!9$N3+H/<T$O%U%!%$%k$,2?$H8F$P$l$k$Y$-$+0[$J$C$?0U8+$r;}$C$F$*$j!$$3$l(B
+$B$OL>A0$N%3%s%U%j%/%H$G$"$k!%(B
 
 %What do you think should happen when they merge their work?
 %Mercurial's actual behaviour is that it always preserves \emph{both}
@@ -612,8 +623,8 @@
 $BL>A0$rJ]B8$9$k!%(B
 \interaction{rename.divergent.merge}
 
-%Notice that Mercurial does warn about the divergent renames, but it
-%leaves it up to you to do something about the divergence after the merge.
+%Notice that while Mercurial warns about the divergent renames, it leaves
+%it up to you to do something about the divergence after the merge.
 
 Mercurial$B$OL>A0$NH/;6$K$D$$$F7Y9p$9$k$,!$%^!<%88e$bL>A0$NH/;6$N2r7h$O%f!<(B
 $B%6$KG$$;$kE@$KCm0U!%(B
@@ -663,7 +674,7 @@
 \hgcmd{revert}$B$r<B9T$9$l$P%U%!%$%k$O2?$bJQ99$5$l$:!$(BMercurial$B$N4IM}$+$i30(B
 $B$5$l$k!%$^$?(B\hgcmd{revert}$B$O%U%!%$%k$X$N4V0c$C$?JQ99$r>C5n$9$k$N$b;H$($k!%(B
 
-%It's useful to remember that the \hgcmd{revert} command is useful for
+%It's good to remember that the \hgcmd{revert} command is useful for
 %changes that you have not yet committed.  Once you've committed a
 %change, if you decide it was a mistake, you can still do something
 %about it, though your options may be more limited.
@@ -679,6 +690,176 @@
 \hgcmd{revert}$B%3%^%s%I$K$D$$$F$N$h$j>\:Y$J>pJs$H!$$9$G$K%3%_%C%H$7$?JQ99(B
 $B$X$NA`:n$K$D$$$F$O(B~\ref{chap:undo}$B$N>O$r;2>H$5$l$?$$!%(B
 
+%\section{Dealing with tricky merges}
+\section{$BJ#;($J%^!<%8$N<h$j07$$(B}
+
+%In a complicated or large project, it's not unusual for a merge of two
+%changesets to result in some headaches.  Suppose there's a big source
+%file that's been extensively edited by each side of a merge: this is
+%almost inevitably going to result in conflicts, some of which can take a
+%few tries to sort out.
+
+$BJ#;($J%W%m%8%'%/%H$dBg5,LO$J%W%m%8%'%/%H$G$O!$(B 2$B$D$N%A%'%s%8%;%C%H$r%^!<(B
+$B%8$9$k;~$KF,$rG:$^$;$k$3$H$,>/$J$/$J$$!%%^!<%885$NAPJ}$G@9$s$KJT=8$5$l$F(B
+$B$$$kBg$-$J%=!<%9%U%!%$%k$,$"$k$H$9$k$H!$%3%s%U%j%/%H$,@8$8$k$3$H$O$[$\IT(B
+$B2DHr$G$"$j!$<}=&$9$k$?$a$K$O>/!9<j?t$,$+$+$k!%(B
+
+%Let's develop a simple case of this and see how to deal with it.  We'll
+%start off with a repository containing one file, and clone it
+%twice.
+
+$B$3$N$h$&$J>l9g$K$D$$$F!$4JC1$JNc$G2r7hJ}K!$r$r8+$F$_$h$&!%$^$:!$%U%!%$%k(B
+1$B$D$N$_$r4^$`%j%]%8%H%j$r:n$j!$$3$l$rFsEY%/%m!<%s$9$k!%(B
+
+%\interaction{ch04-resolve.init}
+
+%In one clone, we'll modify the file in one way.
+
+$B%/%m!<%s$N0lJ}$G%U%!%$%k$rJQ99$9$k!%(B
+
+%\interaction{ch04-resolve.left}
+
+%In another, we'll modify the file differently.
+
+$B$b$&0lJ}$N%/%m!<%s$G$bJL$NJQ99$r9T$&!%(B
+
+%\interaction{ch04-resolve.right}
+
+%Next, we'll pull each set of changes into our original repo.
+
+$B<!$K85$N%j%]%8%H%j$K3F!9$NJQ99$r(Bpull$B$9$k!%(B
+
+%\interaction{ch04-resolve.pull}
+
+%We expect our repository to now contain two heads.
+
+$B85$N%j%]%8%H%j$K$O:#%X%C%I$,(B2$B$D$"$k!%(B
+
+%\interaction{ch04-resolve.heads}
+
+%Normally, if we run \hgcmd{merge} at this point, it will drop us into a
+%GUI that will let us manually resolve the conflicting edits to
+
+%\filename{myfile.txt}.  However, to simplify things for presentation
+%here, we'd like the merge to fail immediately instead.  Here's one way
+%we can do so.
+
+$BDL>o$N>l9g!$$3$3$G(B\hgcmd{merge}$B$r<B9T$9$k$H!$%U%!%$%k(B
+\filename{myfile.txt}$B$N%3%s%U%j%/%H$r<jF0$G2r7h$9$k$?$a$N(BGUI$B$,5/F0$9$k!%(B
+$B$7$+$7$3$3$G$O@bL@$rC1=c$K$9$k$?$a$K!$D>$A$K<:GT$9$k%^!<%8$r$7$F$_$h$&!%(B
+$B$=$NJ}K!$O$3$N$h$&$K$J$k!%(B
+
+%\interaction{ch04-resolve.export}
+
+%We've told Mercurial's merge machinery to run the command
+%\command{false} (which, as we desire, fails immediately) if it detects a
+%merge that it can't sort out automatically.
+
+$B<+F0E*$KJRIU$+$J$$%^!<%8$,8+$D$+$C$?>l9g$O!$(BMercurial$B$N%^!<%8%a%+%K%:%`$,(B
+\command{false}$B%3%^%s%I!J$3$l$O4uK>DL$jD>$A$K<:GT$9$k!%!K$r<B9T$9$k$h$&(B
+$B$K$5$;$k!%(B
+
+%If we now fire up \hgcmd{merge}, it should grind to a halt and report a
+%failure.
+
+$B$3$3$G(B\hgcmd{merge}$B$r<B9T$9$k$H!$<B9T$ODd;_$7$F!$%^!<%8$N<:GT$,Js9p$5$l(B
+$B$k!%(B
+
+%\interaction{ch04-resolve.merge}
+
+%Even if we don't notice that the merge failed, Mercurial will prevent us
+%from accidentally committing the result of a failed merge.
+
+$B%f!<%6$,%^!<%8$N<:GT$K5$IU$+$J$$>l9g$G$b!$(BMercurial$B$O<+F0E*$K<:GT$7$?%^!<(B
+$B%8$N7k2L$N%3%_%C%H$rK8$2$k!%(B
+
+%\interaction{ch04-resolve.cifail}
+
+%When \hgcmd{commit} fails in this case, it suggests that we use the
+%unfamiliar \hgcmd{resolve} command.  As usual, \hgcmd{help resolve} will
+%print a helpful synopsis.
+
+\hgcmd{commit}$B$,<:GT$9$k$H!$$"$^$jFk@w$_$N$J$$%3%^%s%I$G$"$k(B
+\hgcmd{resolve}$B$r;H$&$h$&$K%a%C%;!<%8$,I=<($5$l$k!%$3$N%3%^%s%I$N;HMQK!$O(B
+$B$$$D$bDL$j(B\hgcmd{help resolve}$B$r<B9T$9$k$3$H$G8+$k$3$H$,$G$-$k!%(B
+
+%\subsection{File resolution states}
+\subsection{$B%U%!%$%k2r7h>uBV(B}
+
+%When a merge occurs, most files will usually remain unmodified.  For
+%each file where Mercurial has to do something, it tracks the state of
+%the file.
+
+$B%^!<%8$N:]$K$[$H$s$I$N%U%!%$%k$O$=$N$^$^;D$5$l$k!%(BMercurial$B$OA`:n$r9T$&%U%!(B
+$B%$%k$N>uBV$r4IM}$7$F$$$k!%(B
+
+\begin{itemize}
+% \item A \emph{resolved} file has been successfully merged, either
+%       automatically by Mercurial or manually with human intervention.
+ \item \emph{$B2r7h:Q$_(B}$B%U%!%$%k$O%^!<%8$,@.8y$7$?%U%!%$%k$G!$(BMercurial$B$K(B
+       $B$h$C$F<+F0E*$K9T$o$l$?$+!$?M$,%^!<%8:n6H$r9T$C$?$+$OLd$o$J$$!%(B
+% \item An \emph{unresolved} file was not merged successfully, and needs
+%       more attention.
+ \item \emph{$BL$2r7h(B}$B%U%!%$%k$O%^!<%8$,<:GT$7!$$J$s$i$+$N=$@5$,I,MW$J(B
+       $B%U%!%$%k$G$"$k!%(B
+\end{itemize}
+
+%If Mercurial sees \emph{any} file in the unresolved state after a merge,
+%it considers the merge to have failed.  Fortunately, we do not need to
+%restart the entire merge from scratch.
+
+Mercurial$B$O%^!<%88e$KL$2r7h>uBV$N%U%!%$%k$r8+$D$1$k$H!$%^!<%8$,<:GT(B
+$B$7$?$HH=CG$9$k!%9,$$$J$3$H$K$3$N>l9g$G$b%^!<%8$r;O$a$+$i$d$jD>$9I,MW$O$J(B
+$B$$!%(B
+
+%The \hgopt{resolve}{--list} or \hgopt{resolve}{-l} option to
+%\hgcmd{resolve} prints out the state of each merged file.
+
+\hgcmd{resolve}$B%3%^%s%I$G(B\hgopt{resolve}{--list}$B%*%W%7%g%s$d(B
+\hgopt{resolve}{-l}$B%*%W%7%g%s$r;H$&$H!$%^!<%8$5$l$?3F!9$N%U%!%$%k$N>uBV(B
+$B$,I=<($5$l$k!%(B
+
+%\interaction{ch04-resolve.list}
+
+%In the output from \hgcmd{resolve}, a resolved file is marked with
+%\texttt{R}, while an unresolved file is marked with \texttt{U}.  If any
+%files are listed with \texttt{U}, we know that an attempt to commit the
+%results of the merge will fail.
+
+\hgcmd{resolve}$B$N=PNO$G!$2r7h:Q$_%U%!%$%k$O(B\texttt{R}$B!$L$2r7h$N%U%!%$%k(B
+$B$O(B\texttt{U}$B$HI=$5$l$k!%(B\texttt{U}$B$H$J$k%U%!%$%k$,$"$k>l9g!$%^!<%87k2L$N(B
+$B%3%_%C%H$O<:GT$9$k!%(B
+
+%\subsection{Resolving a file merge}
+\subsection{$B%U%!%$%k%^!<%8$N2r7h(B}
+
+%We have several options to move a file from the unresolved into the
+%resolved state.  By far the most common is to rerun \hgcmd{resolve}.  If
+%we pass the names of individual files or directories, it will retry the
+%merges of any unresolved files present in those locations. We can also
+%pass the \hgopt{resolve}{--all} or \hgopt{resolve}{-a} option, which
+%will retry the merges of \emph{all} unresolved files.
+
+$B%U%!%$%k$rL$2r7h>uBV$+$i2r7h:Q$_>uBV$X;}$C$F$$$/J}K!$O$$$/$D$+$"(B
+$B$k!%:G$b$h$/MQ$$$i$l$k$N$,:FEY(B\hgcmd{resolve}$B$r<B9T$9$kJ}K!$G$"$k!%$3$N%3(B
+$B%^%s%I$O3F!9$N%U%!%$%k$d%G%#%l%/%H%j$NL>A0$rEO$9$H!$L$2r7h$N%U%!%$%k(B
+$B$KBP$7$F%^!<%8$r:FEY;n$_$k!%(B \hgopt{resolve}{--all}$B$^$?$O(B
+\hgopt{resolve}{-a}$B%*%W%7%g%s$rEO$7$F(B\emph{$BA4$F$N(B}$BL$2r7h%U%!%$%k$KBP(B
+$B$7$F:F%^!<%8$r9T$&$3$H$b$G$-$k!%(B
+
+%Mercurial also lets us modify the resolution state of a file directly.
+%We can manually mark a file as resolved using the
+%\hgopt{resolve}{--mark} option, or as unresolved using the
+%\hgopt{resolve}{--unmark} option.  This allows us to clean up a
+%particularly messy merge by hand, and to keep track of our progress with
+%each file as we go.
+
+Mercurial$B$K$h$C$F%U%!%$%k$N2r7h>uBV$rD>@\JQ99$9$k$3$H$b2DG=$@!%(B
+\hgopt{resolve}{--mark}$B%*%W%7%g%s$r;H$&$3$H$G!$%U%!%$%k$r2r7h:Q$_$H%^!<(B
+$B%/$7$?$j!$5U$K(B\hgopt{resolve}{--unmark}$B%*%W%7%g%s$GL$2r7h$H%^!<%/$9$k(B
+$B$3$H$b$G$-$k!%$3$l$i$K$h$C$F:.Mp$7$?%^!<%8$r<jF0$G@0M}$7$F!$:n6H$rB3$1$k(B
+$B$3$H$,$G$-$k!%(B
+
 %%% Local Variables:
 %%% mode: yatex
 %%% TeX-master: "00book"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ja/examples/ch04/resolve	Sun Jun 21 09:20:47 2009 +0900
@@ -0,0 +1,38 @@
+#$ name: init
+hg init conflict
+cd conflict
+echo first > myfile.txt
+hg ci -A -m first
+cd ..
+hg clone conflict left
+hg clone conflict right
+
+#$ name: left
+cd left
+echo left >> myfile.txt
+hg ci -m left
+
+#$ name: right
+cd ../right
+echo right >> myfile.txt
+hg ci -m right
+
+#$ name: pull
+cd ../conflict
+hg pull -u ../left
+hg pull -u ../right
+
+#$ name: heads
+hg heads
+
+#$ name: export
+export HGMERGE=merge
+
+#$ name: merge
+hg merge
+
+#$ name: cifail
+hg commit -m 'Attempt to commit a failed merge'
+
+#$ name: list
+hg resolve -l
--- a/ja/mq.tex	Thu Jun 18 20:12:07 2009 +0900
+++ b/ja/mq.tex	Sun Jun 21 09:20:47 2009 +0900
@@ -1634,7 +1634,7 @@
 %Whether you are working on a patch series to submit to a free software
 %or open source project, or a series that you intend to treat as a
 %sequence of regular changesets when you're done, you can use some
-%simple techniques to keep your work well organised.
+%simple techniques to keep your work well organized.
 
 $B%U%j!<%=%U%H$d%*!<%W%s%=!<%9%W%m%8%'%/%H$KDs=P$9$k$?$a$N%Q%C%A%7%j!<%:$K(B
 $BBP$7$F:n6H$7$F$$$k$H$-$d!$:n6H$,=*$C$?$H$-$KDL>o$N%A%'%s%8%;%C%H$H$7$F<h(B
--- a/ja/tour-basic.tex	Thu Jun 18 20:12:07 2009 +0900
+++ b/ja/tour-basic.tex	Sun Jun 21 09:20:47 2009 +0900
@@ -739,7 +739,7 @@
 \subsubsection{Mercurial$B$N@_Dj%U%!%$%k$r:n@.$9$k(B}
 \label{sec:tour-basic:username}
 
-%To set a user name, use your favourite editor to create a file called
+%To set a user name, use your favorite editor to create a file called
 %\sfilename{.hgrc} in your home directory.  Mercurial will use this
 %file to look up your personalised configuration settings.  The initial
 %contents of your \sfilename{.hgrc} should look like this.