changeset 785:7dd855842de4

more tour-basic.tex
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sat, 06 Jun 2009 17:12:36 +0900
parents 386cdca52f0b
children 11bc9d788428
files ja/tour-basic.tex
diffstat 1 files changed, 442 insertions(+), 372 deletions(-) [+]
line wrap: on
line diff
--- a/ja/tour-basic.tex	Wed Jun 03 19:12:11 2009 +0900
+++ b/ja/tour-basic.tex	Sat Jun 06 17:12:36 2009 +0900
@@ -220,496 +220,566 @@
 %\subsection{What's in a repository?}
 \subsection{$B%j%]%8%H%j$K$O2?$,4^$^$l$k$+!)(B}
 
-When we take a more detailed look inside a repository, we can see that
-it contains a directory named \dirname{.hg}.  This is where Mercurial
-keeps all of its metadata for the repository.
+%When we take a more detailed look inside a repository, we can see that
+%it contains a directory named \dirname{.hg}.  This is where Mercurial
+%keeps all of its metadata for the repository.
+%\interaction{tour.ls-a}
+
+$B%j%]%8%H%j$NFbIt$r$h$j>\$7$/8+$F$_$k$H!$(B\dirname{.hg}$B$H$$$&%G%#%l%/%H%j(B
+$B$,$"$k$N$K5$$E$/!%(BMercurial$B$O$3$3$K%j%]%8%H%j$N$?$a$N%a%?%G!<%?$rJ]4I$7(B
+$B$F$$$k!%(B
 \interaction{tour.ls-a}
 
-The contents of the \dirname{.hg} directory and its subdirectories are
-private to Mercurial.  Every other file and directory in the
-repository is yours to do with as you please.
+%The contents of the \dirname{.hg} directory and its subdirectories are
+%private to Mercurial.  Every other file and directory in the
+%repository is yours to do with as you please.
+
+\dirname{.hg}$B%G%#%l%/%H%j$NCf?H$H!$$3$N%G%#%l%/%H%j$N%5%V%G%#%l%/%H%j$O(B
+Mercurial$B@lMQ$N$b$N$G$"$k!%%j%]%8%H%j$N$=$l0J30$N%U%!%$%k$H%G%#%l%/%H%j(B
+$B$O%f!<%6$KB0$9!%(B
 
-To introduce a little terminology, the \dirname{.hg} directory is the
-``real'' repository, and all of the files and directories that coexist
-with it are said to live in the \emph{working directory}.  An easy way
-to remember the distinction is that the \emph{repository} contains the
-\emph{history} of your project, while the \emph{working directory}
-contains a \emph{snapshot} of your project at a particular point in
-history.
+%To introduce a little terminology, the \dirname{.hg} directory is the
+%``real'' repository, and all of the files and directories that coexist
+%with it are said to live in the \emph{working directory}.  An easy way
+%to remember the distinction is that the \emph{repository} contains the
+%\emph{history} of your project, while the \emph{working directory}
+%contains a \emph{snapshot} of your project at a particular point in
+%history.
+
+$B$3$3$G>/!9MQ8l$rDj5A$7$h$&$H;W$&!%(B\dirname{.hg}$B%G%#%l%/%H%j$r(B``$B%j%"%k(B''$B%j(B
+$B%]%8%H%j!$$3$N%G%#%l%/%H%j$H0l=o$K07$o$l$k%U%!%$%k$d%G%#%l%/%H%j$r(B
+\emph{$B%o!<%-%s%0%G%#%l%/%H%j(B}$B$H8F$V$3$H$K$9$k!%$3$l$i$r4JC1$K6hJL$9$k$?$a(B
+$B$K!$(B\emph{$B%j%]%8%H%j(B}$B$O%W%m%8%'%/%H$N(B\emph{$BMzNr(B}$B$rJ]B8$7!$(B\emph{$B%o!<%-%s(B
+$B%0%G%#%l%/%H%j(B}$B$O%W%m%8%'%/%H$NMzNr$NCf$N$"$k;~E@$N(B\emph{$B%9%J%C%W%7%g%C(B
+$B%H(B}$B$r;}$D$H3P$($k$HNI$$!%(B
 
 %\section{A tour through history}
 \section{$BMzNr$rC)$k(B}
 
-One of the first things we might want to do with a new, unfamiliar
-repository is understand its history.  The \hgcmd{log} command gives
-us a view of history.
+%One of the first things we might want to do with a new, unfamiliar
+%repository is understand its history.  The \hgcmd{log} command gives
+%us a view of history.
+%\interaction{tour.log}
+%By default, this command prints a brief paragraph of output for each
+%change to the project that was recorded.  In Mercurial terminology, we
+%call each of these recorded events a \emph{changeset}, because it can
+%contain a record of changes to several files.
+
+$BL$CN$N%j%]%8%H%j$KBP$7$F$^$:$7$h$&$H;W$&$3$H$O!$$=$NMzNr$rCN$k$3$H$@$m$&!%(B
+$BMzNr$O(B\hgcmd{log}$B%3%^%s%I$G8+$k$3$H$,$G$-$k!%(B
 \interaction{tour.log}
-By default, this command prints a brief paragraph of output for each
-change to the project that was recorded.  In Mercurial terminology, we
-call each of these recorded events a \emph{changeset}, because it can
-contain a record of changes to several files.
+$B%G%U%)%k%H$G$O!$$3$N%3%^%s%I$O%W%m%8%'%/%H$KBP$7$F9T$o$l$?JQ99$N3F!9$K$D(B
+$B$$$F4J7i$J%Q%i%0%i%U$rI=<($9$k!%(B Mercurial$B$NMQ8l$G$O!$MzNrCf$NJQ99$N%$%Y(B
+$B%s%H$r(B\emph{$B%A%'%s%8%;%C%H(B}$B$H8F$V!%$=$NM}M3$O!$J#?t$N%U%!%$%k$KBP$9$kJQ99(B
+$B$N5-O?$r;}$AF@$k$+$i$G$"$k!%(B
 
-The fields in a record of output from \hgcmd{log} are as follows.
+%The fields in a record of output from \hgcmd{log} are as follows.
+\hgcmd{log}$B$+$i=PNO$5$l$k5-O?$N3F%U%#!<%k%I$O<!$N$h$&$K$J$C$F$$$k!%(B
 \begin{itemize}
-\item[\texttt{changeset}] This field has the format of a number,
-  followed by a colon, followed by a hexadecimal string.  These are
-  \emph{identifiers} for the changeset.  There are two identifiers
-  because the number is shorter and easier to type than the hex
-  string.
-\item[\texttt{user}] The identity of the person who created the
-  changeset.  This is a free-form field, but it most often contains a
-  person's name and email address.
-\item[\texttt{date}] The date and time on which the changeset was
-  created, and the timezone in which it was created.  (The date and
-  time are local to that timezone; they display what time and date it
-  was for the person who created the changeset.)
-\item[\texttt{summary}] The first line of the text message that the
-  creator of the changeset entered to describe the changeset.
+%\item[\texttt{changeset}] This field has the format of a number,
+%  followed by a colon, followed by a hexadecimal string.  These are
+%  \emph{identifiers} for the changeset.  There are two identifiers
+%  because the number is shorter and easier to type than the hex
+%  string.
+\item[\texttt{changeset}] $B?t;z!$$=$l$KB3$/%3%m%s$*$h$S(B16$B?JJ8;zNs!%$3$l$O(B
+	     $B%A%'%s%8%;%C%H$N(B\emph{$B<1JL;R(B}$B$G$"$k!%?t;z$OC;$/F~NO$bMF0W$G(B
+	     $B$"$k$?$aMQ0U$5$l$F$$$k!%(B
+%\item[\texttt{user}] The identity of the person who created the
+%  changeset.  This is a free-form field, but it most often contains a
+%  person's name and email address.
+ \item[\texttt{user}] $B%A%'%s%8%;%C%H:n@.<T!%$3$N%U%#!<%k%I$N=q<0$O<+M3$@(B
+	      $B$,!$KX$s$I$N>l9g;aL>$H(Bemail$B%"%I%l%9$G$"$k!%(B
+%\item[\texttt{date}] The date and time on which the changeset was
+%  created, and the timezone in which it was created.  (The date and
+%  time are local to that timezone; they display what time and date it
+%  was for the person who created the changeset.)
+ \item[\texttt{date}] $B%A%'%s%8%;%C%H$,:n@.$5$l$?F|IU$H;~9o$*$h$S%?%$%`%>!<(B
+	      $B%s!%(B $B!JF|;~$O%A%'%s%8%;%C%H$N:n@.<T$NB0$9%?%$%`%>!<%s$K%m!<(B
+	      $B%+%k$G$"$k!%!K(B
+%\item[\texttt{summary}] The first line of the text message that the
+%  creator of the changeset entered to describe the changeset.
+ \item[\texttt{summary}] $B%F%-%9%H%a%C%;!<%8$N:G=i$N9T$O%A%'%s%8%;%C%H$N@b(B
+	     $BL@$KF~NO$5$l$?%A%'%s%8%;%C%H$N:n@.<T$G$"$k!%(B
 \end{itemize}
-The default output printed by \hgcmd{log} is purely a summary; it is
-missing a lot of detail.
+%The default output printed by \hgcmd{log} is purely a summary; it is
+%missing a lot of detail.
+\hgcmd{log}$B$N%G%U%)%k%H=PNO$OMWLs$K$9$.$:!$B?$/$N>\:Y>pJs$r7g$$$F$$$k!%(B
 
-Figure~\ref{fig:tour-basic:history} provides a graphical representation of
-the history of the \dirname{hello} repository, to make it a little
-easier to see which direction history is ``flowing'' in.  We'll be
-returning to this figure several times in this chapter and the chapter
-that follows.
+%Figure~\ref{fig:tour-basic:history} provides a graphical representation of
+%the history of the \dirname{hello} repository, to make it a little
+%easier to see which direction history is ``flowing'' in.  We'll be
+%returning to this figure several times in this chapter and the chapter
+%that follows.
+
+$B?^(B~\ref{fig:tour-basic:history}$B$O(B\dirname{hello}$B%j%]%8%H%j$NMzNr$r%0%i%UI=(B
+$B<($7$?$b$N$G$"$k!%$3$NI=<($K$h$C$F$I$NJ}8~$NMzNr$,=gJ}8~$J$N$+M}2r$7$d$9(B
+$B$/$J$C$F$$$k!%:#8e!$$3$N?^$r2?EY$+;2>H$9$k!%(B
 
 \begin{figure}[ht]
   \centering
   \grafix{tour-history}
-  \caption{Graphical history of the \dirname{hello} repository}
-  \label{fig:tour-basic:history}
+%  \caption{Graphical history of the \dirname{hello} repository}
+  \caption{\dirname{hello}$B%j%]%8%H%j$NMzNr%0%i%U(B}
+ \label{fig:tour-basic:history}
 \end{figure}
 
 %\subsection{Changesets, revisions, and talking to other people}
 \subsection{$B%A%'%s%8%;%C%H(B, $B%j%S%8%g%s(B, $BB>$N%f!<%6$H$N$d$j$H$j(B}
 
-As English is a notoriously sloppy language, and computer science has
-a hallowed history of terminological confusion (why use one term when
-four will do?), revision control has a variety of words and phrases
-that mean the same thing.  If you are talking about Mercurial history
-with other people, you will find that the word ``changeset'' is often
-compressed to ``change'' or (when written) ``cset'', and sometimes a
-changeset is referred to as a ``revision'' or a ``rev''.
+%As English is a notoriously sloppy language, and computer science has
+%a hallowed history of terminological confusion (why use one term when
+%four will do?), revision control has a variety of words and phrases
+%that mean the same thing.  If you are talking about Mercurial history
+%with other people, you will find that the word ``changeset'' is often
+%compressed to ``change'' or (when written) ``cset'', and sometimes a
+%changeset is referred to as a ``revision'' or a ``rev''.
+
+$B1Q8l$O$$$$2C8:$J$3$H$G0-L>$N9b$$8@8l$G$"$j!$%3%s%T%e!<%?%5%$%(%s%9$G$O@l(B
+$BLgMQ8l$N:.Mp$,?S$@$7$$!%!J(B4$B?M$,(B1$B$D$NMQ8l$r;H$&$3$H$J$IM-$jF@$J$$!%!K%j%S(B
+$B%8%g%s%3%s%H%m!<%k$OBt;3$NF15A8l$r;}$C$F$$$k!%B>$N?M$H(BMercurial$B$NMzNr$K$D(B
+$B$$$FOC$9$H$-!$(B``$B%A%'%s%8%;%C%H(B''$B$,$7$P$7$P(B``$B%A%'%s%8(B''$B$KN,$5$l$?$j!$=q$-(B
+$B8@MU$G$O(B``cset''$B$J$I$H$5$l$?$j!$;~$K$O%A%'%s%8%;%C%H$,(B``$B%j%S%8%g%s(B''$B$d(B
+``rev''$B$HI=$5$l$?$j$9$k$3$H$K5$$E$/$@$m$&!%(B
 
-While it doesn't matter what \emph{word} you use to refer to the
-concept of ``a~changeset'', the \emph{identifier} that you use to
-refer to ``a~\emph{specific} changeset'' is of great importance.
-Recall that the \texttt{changeset} field in the output from
-\hgcmd{log} identifies a changeset using both a number and a
-hexadecimal string.
+%While it doesn't matter what \emph{word} you use to refer to the
+%concept of ``a~changeset'', the \emph{identifier} that you use to
+%refer to ``a~\emph{specific} changeset'' is of great importance.
+%Recall that the \texttt{changeset} field in the output from
+%\hgcmd{log} identifies a changeset using both a number and a
+%hexadecimal string.
+
+\emph{$BMQ8l(B}
+
+%\begin{itemize}
+%\item The revision number is \emph{only valid in that repository},
+%\item while the hex string is the \emph{permanent, unchanging
+%    identifier} that will always identify that exact changeset in
+%  \emph{every} copy of the repository.
+%\end{itemize}
 \begin{itemize}
-\item The revision number is \emph{only valid in that repository},
-\item while the hex string is the \emph{permanent, unchanging
-    identifier} that will always identify that exact changeset in
-  \emph{every} copy of the repository.
+\item $B%j%S%8%g%sHV9f$O(B\emph{$B$=$N%j%]%8%H%j$K8B$C$FM-8z$G$"$j(B}$B!$(B
+\item $B$=$l$KBP$7$F(B16$B?JJ8;zNs$O(B\emph{$B1JB3E*$+$DITJQ$N<1JL;R(B}$B$G!$%j%]%8%H(B
+      $B%j$N%3%T!<(B\emph{$BA4$F(B}$B$G>o$KFCDj$N%A%'%s%8%;%C%H$r<($9!%(B
 \end{itemize}
-This distinction is important.  If you send someone an email talking
-about ``revision~33'', there's a high likelihood that their
-revision~33 will \emph{not be the same} as yours.  The reason for this
-is that a revision number depends on the order in which changes
-arrived in a repository, and there is no guarantee that the same
-changes will happen in the same order in different repositories.
-Three changes $a,b,c$ can easily appear in one repository as $0,1,2$,
-while in another as $1,0,2$.
+
+%This distinction is important.  If you send someone an email talking
+%about ``revision~33'', there's a high likelihood that their
+%revision~33 will \emph{not be the same} as yours.  The reason for this
+%is that a revision number depends on the order in which changes
+%arrived in a repository, and there is no guarantee that the same
+%changes will happen in the same order in different repositories.
+%Three changes $a,b,c$ can easily appear in one repository as $0,1,2$,
+%while in another as $1,0,2$.
+
+$B$3$N6hJL$O=EMW$G$"$k!%(B``revision~33''
 
-Mercurial uses revision numbers purely as a convenient shorthand.  If
-you need to discuss a changeset with someone, or make a record of a
-changeset for some other reason (for example, in a bug report), use
-the hexadecimal identifier.
+
+%Mercurial uses revision numbers purely as a convenient shorthand.  If
+%you need to discuss a changeset with someone, or make a record of a
+%changeset for some other reason (for example, in a bug report), use
+%the hexadecimal identifier.
+
+Mercurial$B$O%j%S%8%g%sHV9f$rC1$KJXMx$N$?$a$NN,5-J}$H$7$FMQ$$$k!%C/$+$H%A%'(B
+$B%s%8%;%C%H$K$D$$$F5DO@$7$?$j!$!J%P%0Js9p$J$I$N$?$a$K!K%A%'%s%8%;%C%H$r5-(B
+$BO?$7$?$$>l9g$O(B16$B?J$N<1JL;R$rMxMQ$9$Y$-$G$"$k!%(B
+
+
+
 
 %\subsection{Viewing specific revisions}
 \subsection{$BFCDj$N%j%S%8%g%s$r8+$k(B}
 
-To narrow the output of \hgcmd{log} down to a single revision, use the
-\hgopt{log}{-r} (or \hgopt{log}{--rev}) option.  You can use either a
-revision number or a long-form changeset identifier, and you can
-provide as many revisions as you want.  \interaction{tour.log-r}
+%To narrow the output of \hgcmd{log} down to a single revision, use the
+%\hgopt{log}{-r} (or \hgopt{log}{--rev}) option.  You can use either a
+%revision number or a long-form changeset identifier, and you can
+%provide as many revisions as you want.  \interaction{tour.log-r}
 
-If you want to see the history of several revisions without having to
-list each one, you can use \emph{range notation}; this lets you
-express the idea ``I want all revisions between $a$ and $b$,
-inclusive''.
-\interaction{tour.log.range}
-Mercurial also honours the order in which you specify revisions, so
-\hgcmdargs{log}{-r 2:4} prints $2,3,4$ while \hgcmdargs{log}{-r 4:2}
-prints $4,3,2$.
+%If you want to see the history of several revisions without having to
+%list each one, you can use \emph{range notation}; this lets you
+%express the idea ``I want all revisions between $a$ and $b$,
+%inclusive''.
+%\interaction{tour.log.range}
+%Mercurial also honours the order in which you specify revisions, so
+%\hgcmdargs{log}{-r 2:4} prints $2,3,4$ while \hgcmdargs{log}{-r 4:2}
+%prints $4,3,2$.
 
 %\subsection{More detailed information}
 \subsection{$B$h$j>\:Y$J>pJs(B}
 
-While the summary information printed by \hgcmd{log} is useful if you
-already know what you're looking for, you may need to see a complete
-description of the change, or a list of the files changed, if you're
-trying to decide whether a changeset is the one you're looking for.
-The \hgcmd{log} command's \hggopt{-v} (or \hggopt{--verbose})
-option gives you this extra detail.
-\interaction{tour.log-v}
+%While the summary information printed by \hgcmd{log} is useful if you
+%already know what you're looking for, you may need to see a complete
+%description of the change, or a list of the files changed, if you're
+%trying to decide whether a changeset is the one you're looking for.
+%The \hgcmd{log} command's \hggopt{-v} (or \hggopt{--verbose})
+%option gives you this extra detail.
+%\interaction{tour.log-v}
 
-If you want to see both the description and content of a change, add
-the \hgopt{log}{-p} (or \hgopt{log}{--patch}) option.  This displays
-the content of a change as a \emph{unified diff} (if you've never seen
-a unified diff before, see section~\ref{sec:mq:patch} for an overview).
-\interaction{tour.log-vp}
+%If you want to see both the description and content of a change, add
+%the \hgopt{log}{-p} (or \hgopt{log}{--patch}) option.  This displays
+%the content of a change as a \emph{unified diff} (if you've never seen
+%a unified diff before, see section~\ref{sec:mq:patch} for an overview).
+%\interaction{tour.log-vp}
 
 %\section{All about command options}
 \section{$B%3%^%s%I%*%W%7%g%s$N$9$Y$F(B}
 
-Let's take a brief break from exploring Mercurial commands to discuss
-a pattern in the way that they work; you may find this useful to keep
-in mind as we continue our tour.
+%Let's take a brief break from exploring Mercurial commands to discuss
+%a pattern in the way that they work; you may find this useful to keep
+%in mind as we continue our tour.
 
-Mercurial has a consistent and straightforward approach to dealing
-with the options that you can pass to commands.  It follows the
-conventions for options that are common to modern Linux and Unix
-systems.
-\begin{itemize}
-\item Every option has a long name.  For example, as we've already
-  seen, the \hgcmd{log} command accepts a \hgopt{log}{--rev} option.
-\item Most options have short names, too.  Instead of
-  \hgopt{log}{--rev}, we can use \hgopt{log}{-r}.  (The reason that
-  some options don't have short names is that the options in question
-  are rarely used.)
-\item Long options start with two dashes (e.g.~\hgopt{log}{--rev}),
-  while short options start with one (e.g.~\hgopt{log}{-r}).
-\item Option naming and usage is consistent across commands.  For
-  example, every command that lets you specify a changeset~ID or
-  revision number accepts both \hgopt{log}{-r} and \hgopt{log}{--rev}
-  arguments.
-\end{itemize}
-In the examples throughout this book, I use short options instead of
-long.  This just reflects my own preference, so don't read anything
-significant into it.
+%Mercurial has a consistent and straightforward approach to dealing
+%with the options that you can pass to commands.  It follows the
+%conventions for options that are common to modern Linux and Unix
+%systems.
+%\begin{itemize}
+%\item Every option has a long name.  For example, as we've already
+%  seen, the \hgcmd{log} command accepts a \hgopt{log}{--rev} option.
+%\item Most options have short names, too.  Instead of
+%  \hgopt{log}{--rev}, we can use \hgopt{log}{-r}.  (The reason that
+%  some options don't have short names is that the options in question
+%  are rarely used.)
+%\item Long options start with two dashes (e.g.~\hgopt{log}{--rev}),
+%  while short options start with one (e.g.~\hgopt{log}{-r}).
+%\item Option naming and usage is consistent across commands.  For
+%  example, every command that lets you specify a changeset~ID or
+%  revision number accepts both \hgopt{log}{-r} and \hgopt{log}{--rev}
+%  arguments.
+%\end{itemize}
+%In the examples throughout this book, I use short options instead of
+%long.  This just reflects my own preference, so don't read anything
+%significant into it.
 
-Most commands that print output of some kind will print more output
-when passed a \hggopt{-v} (or \hggopt{--verbose}) option, and less
-when passed \hggopt{-q} (or \hggopt{--quiet}).
+%Most commands that print output of some kind will print more output
+%when passed a \hggopt{-v} (or \hggopt{--verbose}) option, and less
+%when passed \hggopt{-q} (or \hggopt{--quiet}).
 
 %\section{Making and reviewing changes}
 \section{$BJQ99$N;EJ}!$JQ99$N%l%S%e!<(B}
 
-Now that we have a grasp of viewing history in Mercurial, let's take a
-look at making some changes and examining them.
+%Now that we have a grasp of viewing history in Mercurial, let's take a
+%look at making some changes and examining them.
 
-The first thing we'll do is isolate our experiment in a repository of
-its own.  We use the \hgcmd{clone} command, but we don't need to
-clone a copy of the remote repository.  Since we already have a copy
-of it locally, we can just clone that instead.  This is much faster
-than cloning over the network, and cloning a local repository uses
-less disk space in most cases, too.
-\interaction{tour.reclone}
-As an aside, it's often good practice to keep a ``pristine'' copy of a
-remote repository around, which you can then make temporary clones of
-to create sandboxes for each task you want to work on.  This lets you
-work on multiple tasks in parallel, each isolated from the others
-until it's complete and you're ready to integrate it back.  Because
-local clones are so cheap, there's almost no overhead to cloning and
-destroying repositories whenever you want.
+%The first thing we'll do is isolate our experiment in a repository of
+%its own.  We use the \hgcmd{clone} command, but we don't need to
+%clone a copy of the remote repository.  Since we already have a copy
+%of it locally, we can just clone that instead.  This is much faster
+%than cloning over the network, and cloning a local repository uses
+%less disk space in most cases, too.
+%\interaction{tour.reclone}
+%As an aside, it's often good practice to keep a ``pristine'' copy of a
+%remote repository around, which you can then make temporary clones of
+%to create sandboxes for each task you want to work on.  This lets you
+%work on multiple tasks in parallel, each isolated from the others
+%until it's complete and you're ready to integrate it back.  Because
+%local clones are so cheap, there's almost no overhead to cloning and
+%destroying repositories whenever you want.
 
-In our \dirname{my-hello} repository, we have a file
-\filename{hello.c} that contains the classic ``hello, world'' program.
-Let's use the ancient and venerable \command{sed} command to edit this
-file so that it prints a second line of output.  (I'm only using
-\command{sed} to do this because it's easy to write a scripted example
-this way.  Since you're not under the same constraint, you probably
-won't want to use \command{sed}; simply use your preferred text editor to
-do the same thing.)
-\interaction{tour.sed}
+%In our \dirname{my-hello} repository, we have a file
+%\filename{hello.c} that contains the classic ``hello, world'' program.
+%Let's use the ancient and venerable \command{sed} command to edit this
+%file so that it prints a second line of output.  (I'm only using
+%\command{sed} to do this because it's easy to write a scripted example
+%this way.  Since you're not under the same constraint, you probably
+%won't want to use \command{sed}; simply use your preferred text editor to
+%do the same thing.)
+%\interaction{tour.sed}
 
-Mercurial's \hgcmd{status} command will tell us what Mercurial knows
-about the files in the repository.
-\interaction{tour.status}
-The \hgcmd{status} command prints no output for some files, but a line
-starting with ``\texttt{M}'' for \filename{hello.c}.  Unless you tell
-it to, \hgcmd{status} will not print any output for files that have
-not been modified.
+%Mercurial's \hgcmd{status} command will tell us what Mercurial knows
+%about the files in the repository.
+%\interaction{tour.status}
+%The \hgcmd{status} command prints no output for some files, but a line
+%starting with ``\texttt{M}'' for \filename{hello.c}.  Unless you tell
+%it to, \hgcmd{status} will not print any output for files that have
+%not been modified.
 
-The ``\texttt{M}'' indicates that Mercurial has noticed that we
-modified \filename{hello.c}.  We didn't need to \emph{inform}
-Mercurial that we were going to modify the file before we started, or
-that we had modified the file after we were done; it was able to
-figure this out itself.
+%The ``\texttt{M}'' indicates that Mercurial has noticed that we
+%modified \filename{hello.c}.  We didn't need to \emph{inform}
+%Mercurial that we were going to modify the file before we started, or
+%that we had modified the file after we were done; it was able to
+%figure this out itself.
 
-It's a little bit helpful to know that we've modified
-\filename{hello.c}, but we might prefer to know exactly \emph{what}
-changes we've made to it.  To do this, we use the \hgcmd{diff}
-command.
-\interaction{tour.diff}
+%It's a little bit helpful to know that we've modified
+%\filename{hello.c}, but we might prefer to know exactly \emph{what}
+%changes we've made to it.  To do this, we use the \hgcmd{diff}
+%command.
+%\interaction{tour.diff}
 
 %\section{Recording changes in a new changeset}
 \section{$B?7$?$J%A%'%s%8%;%C%H$XJQ99$r5-O?$9$k(B}
 
-We can modify files, build and test our changes, and use
-\hgcmd{status} and \hgcmd{diff} to review our changes, until we're
-satisfied with what we've done and arrive at a natural stopping point
-where we want to record our work in a new changeset.
+%We can modify files, build and test our changes, and use
+%\hgcmd{status} and \hgcmd{diff} to review our changes, until we're
+%satisfied with what we've done and arrive at a natural stopping point
+%where we want to record our work in a new changeset.
 
-The \hgcmd{commit} command lets us create a new changeset; we'll
-usually refer to this as ``making a commit'' or ``committing''.
+%The \hgcmd{commit} command lets us create a new changeset; we'll
+%usually refer to this as ``making a commit'' or ``committing''.
 
 %\subsection{Setting up a username}
 \subsection{$B%f!<%6L>$r@_Dj$9$k(B}
 
-When you try to run \hgcmd{commit} for the first time, it is not
-guaranteed to succeed.  Mercurial records your name and address with
-each change that you commit, so that you and others will later be able
-to tell who made each change.  Mercurial tries to automatically figure
-out a sensible username to commit the change with.  It will attempt
-each of the following methods, in order:
-\begin{enumerate}
-\item If you specify a \hgopt{commit}{-u} option to the \hgcmd{commit}
-  command on the command line, followed by a username, this is always
-  given the highest precedence.
-\item If you have set the \envar{HGUSER} environment variable, this is
-  checked next.
-\item If you create a file in your home directory called
-  \sfilename{.hgrc}, with a \rcitem{ui}{username} entry, that will be
-  used next.  To see what the contents of this file should look like,
-  refer to section~\ref{sec:tour-basic:username} below.
-\item If you have set the \envar{EMAIL} environment variable, this
-  will be used next.
-\item Mercurial will query your system to find out your local user
-  name and host name, and construct a username from these components.
-  Since this often results in a username that is not very useful, it
-  will print a warning if it has to do this.
-\end{enumerate}
-If all of these mechanisms fail, Mercurial will fail, printing an
-error message.  In this case, it will not let you commit until you set
-up a username.
+%When you try to run \hgcmd{commit} for the first time, it is not
+%guaranteed to succeed.  Mercurial records your name and address with
+%each change that you commit, so that you and others will later be able
+%to tell who made each change.  Mercurial tries to automatically figure
+%out a sensible username to commit the change with.  It will attempt
+%each of the following methods, in order:
+%\begin{enumerate}
+%\item If you specify a \hgopt{commit}{-u} option to the \hgcmd{commit}
+%  command on the command line, followed by a username, this is always
+%  given the highest precedence.
+%\item If you have set the \envar{HGUSER} environment variable, this is
+%  checked next.
+%\item If you create a file in your home directory called
+%  \sfilename{.hgrc}, with a \rcitem{ui}{username} entry, that will be
+%  used next.  To see what the contents of this file should look like,
+%  refer to section~\ref{sec:tour-basic:username} below.
+%\item If you have set the \envar{EMAIL} environment variable, this
+%  will be used next.
+%\item Mercurial will query your system to find out your local user
+%  name and host name, and construct a username from these components.
+%  Since this often results in a username that is not very useful, it
+%  will print a warning if it has to do this.
+%\end{enumerate}
+%If all of these mechanisms fail, Mercurial will fail, printing an
+%error message.  In this case, it will not let you commit until you set
+%up a username.
 
-You should think of the \envar{HGUSER} environment variable and the
-\hgopt{commit}{-u} option to the \hgcmd{commit} command as ways to
-\emph{override} Mercurial's default selection of username.  For normal
-use, the simplest and most robust way to set a username for yourself
-is by creating a \sfilename{.hgrc} file; see below for details.
+%You should think of the \envar{HGUSER} environment variable and the
+%\hgopt{commit}{-u} option to the \hgcmd{commit} command as ways to
+%\emph{override} Mercurial's default selection of username.  For normal
+%use, the simplest and most robust way to set a username for yourself
+%is by creating a \sfilename{.hgrc} file; see below for details.
 
 %\subsubsection{Creating a Mercurial configuration file}
 \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
-\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.
-\begin{codesample2}
-  # This is a Mercurial configuration file.
-  [ui]
-  username = Firstname Lastname <email.address@domain.net>
-\end{codesample2}
-The ``\texttt{[ui]}'' line begins a \emph{section} of the config file,
-so you can read the ``\texttt{username = ...}'' line as meaning ``set
-the value of the \texttt{username} item in the \texttt{ui} section''.
-A section continues until a new section begins, or the end of the
-file.  Mercurial ignores empty lines and treats any text from
-``\texttt{\#}'' to the end of a line as a comment.
+%To set a user name, use your favourite 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.
+%\begin{codesample2}
+%  # This is a Mercurial configuration file.
+%  [ui]
+%  username = Firstname Lastname <email.address@domain.net>
+%\end{codesample2}
+%The ``\texttt{[ui]}'' line begins a \emph{section} of the config file,
+%so you can read the ``\texttt{username = ...}'' line as meaning ``set
+%the value of the \texttt{username} item in the \texttt{ui} section''.
+%A section continues until a new section begins, or the end of the
+%file.  Mercurial ignores empty lines and treats any text from
+%``\texttt{\#}'' to the end of a line as a comment.
 
 %\subsubsection{Choosing a user name}
 \subsubsection{$B%f!<%6L>$rA*$V(B}
 
-You can use any text you like as the value of the \texttt{username}
-config item, since this information is for reading by other people,
-but for interpreting by Mercurial.  The convention that most people
-follow is to use their name and email address, as in the example
-above.
+%You can use any text you like as the value of the \texttt{username}
+%config item, since this information is for reading by other people,
+%but for interpreting by Mercurial.  The convention that most people
+%follow is to use their name and email address, as in the example
+%above.
 
-\begin{note}
-  Mercurial's built-in web server obfuscates email addresses, to make
-  it more difficult for the email harvesting tools that spammers use.
-  This reduces the likelihood that you'll start receiving more junk
-  email if you publish a Mercurial repository on the web.
-\end{note}
+%\begin{note}
+%  Mercurial's built-in web server obfuscates email addresses, to make
+%  it more difficult for the email harvesting tools that spammers use.
+%  This reduces the likelihood that you'll start receiving more junk
+%  email if you publish a Mercurial repository on the web.
+%\end{note}
 
 %\subsection{Writing a commit message}
 \subsection{$B%3%_%C%H%a%C%;!<%8$r=q$/(B}
 
-When we commit a change, Mercurial drops us into a text editor, to
-enter a message that will describe the modifications we've made in
-this changeset.  This is called the \emph{commit message}.  It will be
-a record for readers of what we did and why, and it will be printed by
-\hgcmd{log} after we've finished committing.
-\interaction{tour.commit}
+%When we commit a change, Mercurial drops us into a text editor, to
+%enter a message that will describe the modifications we've made in
+%this changeset.  This is called the \emph{commit message}.  It will be
+%a record for readers of what we did and why, and it will be printed by
+%\hgcmd{log} after we've finished committing.
+%\interaction{tour.commit}
 
-The editor that the \hgcmd{commit} command drops us into will contain
-an empty line, followed by a number of lines starting with
-``\texttt{HG:}''.
-\begin{codesample2}
-  \emph{empty line}
-  HG: changed hello.c
-\end{codesample2}
-Mercurial ignores the lines that start with ``\texttt{HG:}''; it uses
-them only to tell us which files it's recording changes to.  Modifying
-or deleting these lines has no effect.
+%The editor that the \hgcmd{commit} command drops us into will contain
+%an empty line, followed by a number of lines starting with
+%``\texttt{HG:}''.
+%\begin{codesample2}
+%  \emph{empty line}
+%  HG: changed hello.c
+%\end{codesample2}
+%Mercurial ignores the lines that start with ``\texttt{HG:}''; it uses
+%them only to tell us which files it's recording changes to.  Modifying
+%or deleting these lines has no effect.
 
 %\subsection{Writing a good commit message}
 \subsection{$B$h$$%3%_%C%H%a%C%;!<%8$N=q$-J}(B}
 
-Since \hgcmd{log} only prints the first line of a commit message by
-default, it's best to write a commit message whose first line stands
-alone.  Here's a real example of a commit message that \emph{doesn't}
-follow this guideline, and hence has a summary that is not readable.
-\begin{codesample2}
-  changeset:   73:584af0e231be
-  user:        Censored Person <censored.person@example.org>
-  date:        Tue Sep 26 21:37:07 2006 -0700
-  summary:     include buildmeister/commondefs.   Add an exports and install
-\end{codesample2}
+%Since \hgcmd{log} only prints the first line of a commit message by
+%default, it's best to write a commit message whose first line stands
+%alone.  Here's a real example of a commit message that \emph{doesn't}
+%follow this guideline, and hence has a summary that is not readable.
+%\begin{codesample2}
+%  changeset:   73:584af0e231be
+%  user:        Censored Person <censored.person@example.org>
+%  date:        Tue Sep 26 21:37:07 2006 -0700
+%  summary:     include buildmeister/commondefs.   Add an exports and install
+%\end{codesample2}
 
-As far as the remainder of the contents of the commit message are
-concerned, there are no hard-and-fast rules.  Mercurial itself doesn't
-interpret or care about the contents of the commit message, though
-your project may have policies that dictate a certain kind of
-formatting.
+%As far as the remainder of the contents of the commit message are
+%concerned, there are no hard-and-fast rules.  Mercurial itself doesn't
+%interpret or care about the contents of the commit message, though
+%your project may have policies that dictate a certain kind of
+%formatting.
 
-My personal preference is for short, but informative, commit messages
-that tell me something that I can't figure out with a quick glance at
-the output of \hgcmdargs{log}{--patch}.
+%My personal preference is for short, but informative, commit messages
+%that tell me something that I can't figure out with a quick glance at
+%the output of \hgcmdargs{log}{--patch}.
 
 %\subsection{Aborting a commit}
 \subsection{$B%3%_%C%H$rCf;_$9$k(B}
 
-If you decide that you don't want to commit while in the middle of
-editing a commit message, simply exit from your editor without saving
-the file that it's editing.  This will cause nothing to happen to
-either the repository or the working directory.
+%If you decide that you don't want to commit while in the middle of
+%editing a commit message, simply exit from your editor without saving
+%the file that it's editing.  This will cause nothing to happen to
+%either the repository or the working directory.
 
-If we run the \hgcmd{commit} command without any arguments, it records
-all of the changes we've made, as reported by \hgcmd{status} and
-\hgcmd{diff}.
+%If we run the \hgcmd{commit} command without any arguments, it records
+%all of the changes we've made, as reported by \hgcmd{status} and
+%\hgcmd{diff}.
 
 %\subsection{Admiring our new handiwork}
 \subsection{$B?7$?$J:n6H$r>N;?$9$k(B}
 
-Once we've finished the commit, we can use the \hgcmd{tip} command to
-display the changeset we just created.  This command produces output
-that is identical to \hgcmd{log}, but it only displays the newest
-revision in the repository.
-\interaction{tour.tip}
-We refer to the newest revision in the repository as the tip revision,
-or simply the tip.
+%Once we've finished the commit, we can use the \hgcmd{tip} command to
+%display the changeset we just created.  This command produces output
+%that is identical to \hgcmd{log}, but it only displays the newest
+%revision in the repository.
+%\interaction{tour.tip}
+%We refer to the newest revision in the repository as the tip revision,
+%or simply the tip.
 
 %\section{Sharing changes}
 \section{$BJQ99$r6&M-$9$k(B}
 
-We mentioned earlier that repositories in Mercurial are
-self-contained.  This means that the changeset we just created exists
-only in our \dirname{my-hello} repository.  Let's look at a few ways
-that we can propagate this change into other repositories.
+%We mentioned earlier that repositories in Mercurial are
+%self-contained.  This means that the changeset we just created exists
+%only in our \dirname{my-hello} repository.  Let's look at a few ways
+%that we can propagate this change into other repositories.
 
 %\subsection{Pulling changes from another repository}
 \subsection{$BB>$N%j%]%8%H%j$+$iJQ99$r(Bpull$B$9$k(B}
 \label{sec:tour:pull}
 
-To get started, let's clone our original \dirname{hello} repository,
-which does not contain the change we just committed.  We'll call our
-temporary repository \dirname{hello-pull}.
-\interaction{tour.clone-pull}
+%To get started, let's clone our original \dirname{hello} repository,
+%which does not contain the change we just committed.  We'll call our
+%temporary repository \dirname{hello-pull}.
+%\interaction{tour.clone-pull}
 
-We'll use the \hgcmd{pull} command to bring changes from
-\dirname{my-hello} into \dirname{hello-pull}.  However, blindly
-pulling unknown changes into a repository is a somewhat scary
-prospect.  Mercurial provides the \hgcmd{incoming} command to tell us
-what changes the \hgcmd{pull} command \emph{would} pull into the
-repository, without actually pulling the changes in.
-\interaction{tour.incoming}
-(Of course, someone could cause more changesets to appear in the
-repository that we ran \hgcmd{incoming} in, before we get a chance to
-\hgcmd{pull} the changes, so that we could end up pulling changes that we
-didn't expect.)
+%We'll use the \hgcmd{pull} command to bring changes from
+%\dirname{my-hello} into \dirname{hello-pull}.  However, blindly
+%pulling unknown changes into a repository is a somewhat scary
+%prospect.  Mercurial provides the \hgcmd{incoming} command to tell us
+%what changes the \hgcmd{pull} command \emph{would} pull into the
+%repository, without actually pulling the changes in.
+%\interaction{tour.incoming}
+%(Of course, someone could cause more changesets to appear in the
+%repository that we ran \hgcmd{incoming} in, before we get a chance to
+%\hgcmd{pull} the changes, so that we could end up pulling changes that we
+%didn't expect.)
 
-Bringing changes into a repository is a simple matter of running the
-\hgcmd{pull} command, and telling it which repository to pull from.
-\interaction{tour.pull}
-As you can see from the before-and-after output of \hgcmd{tip}, we
-have successfully pulled changes into our repository.  There remains
-one step before we can see these changes in the working directory.
+%Bringing changes into a repository is a simple matter of running the
+%\hgcmd{pull} command, and telling it which repository to pull from.
+%\interaction{tour.pull}
+%As you can see from the before-and-after output of \hgcmd{tip}, we
+%have successfully pulled changes into our repository.  There remains
+%one step before we can see these changes in the working directory.
 
 %\subsection{Updating the working directory}
 \subsection{$B%o!<%-%s%0%G%#%l%/%H%j$r99?7$9$k(B}
 
-We have so far glossed over the relationship between a repository and
-its working directory.  The \hgcmd{pull} command that we ran in
-section~\ref{sec:tour:pull} brought changes into the repository, but
-if we check, there's no sign of those changes in the working
-directory.  This is because \hgcmd{pull} does not (by default) touch
-the working directory.  Instead, we use the \hgcmd{update} command to
-do this.
-\interaction{tour.update}
+%We have so far glossed over the relationship between a repository and
+%its working directory.  The \hgcmd{pull} command that we ran in
+%section~\ref{sec:tour:pull} brought changes into the repository, but
+%if we check, there's no sign of those changes in the working
+%directory.  This is because \hgcmd{pull} does not (by default) touch
+%the working directory.  Instead, we use the \hgcmd{update} command to
+%do this.
+%\interaction{tour.update}
 
-It might seem a bit strange that \hgcmd{pull} doesn't update the
-working directory automatically.  There's actually a good reason for
-this: you can use \hgcmd{update} to update the working directory to
-the state it was in at \emph{any revision} in the history of the
-repository.  If you had the working directory updated to an old
-revision---to hunt down the origin of a bug, say---and ran a
-\hgcmd{pull} which automatically updated the working directory to a
-new revision, you might not be terribly happy.
+%It might seem a bit strange that \hgcmd{pull} doesn't update the
+%working directory automatically.  There's actually a good reason for
+%this: you can use \hgcmd{update} to update the working directory to
+%the state it was in at \emph{any revision} in the history of the
+%repository.  If you had the working directory updated to an old
+%revision---to hunt down the origin of a bug, say---and ran a
+%\hgcmd{pull} which automatically updated the working directory to a
+%new revision, you might not be terribly happy.
 
-However, since pull-then-update is such a common thing to do,
-Mercurial lets you combine the two by passing the \hgopt{pull}{-u}
-option to \hgcmd{pull}.
-\begin{codesample2}
-  hg pull -u
-\end{codesample2}
-If you look back at the output of \hgcmd{pull} in
-section~\ref{sec:tour:pull} when we ran it without \hgopt{pull}{-u},
-you can see that it printed a helpful reminder that we'd have to take
-an explicit step to update the working directory:
-\begin{codesample2}
-  (run 'hg update' to get a working copy)
-\end{codesample2}
+%However, since pull-then-update is such a common thing to do,
+%Mercurial lets you combine the two by passing the \hgopt{pull}{-u}
+%option to \hgcmd{pull}.
+%\begin{codesample2}
+%  hg pull -u
+%\end{codesample2}
+%If you look back at the output of \hgcmd{pull} in
+%section~\ref{sec:tour:pull} when we ran it without \hgopt{pull}{-u},
+%you can see that it printed a helpful reminder that we'd have to take
+%an explicit step to update the working directory:
+%\begin{codesample2}
+%  (run 'hg update' to get a working copy)
+%\end{codesample2}
 
-To find out what revision the working directory is at, use the
-\hgcmd{parents} command.
-\interaction{tour.parents}
-If you look back at figure~\ref{fig:tour-basic:history}, you'll see
-arrows connecting each changeset.  The node that the arrow leads
-\emph{from} in each case is a parent, and the node that the arrow
-leads \emph{to} is its child.  The working directory has a parent in
-just the same way; this is the changeset that the working directory
-currently contains.
+%To find out what revision the working directory is at, use the
+%\hgcmd{parents} command.
+%\interaction{tour.parents}
+%If you look back at figure~\ref{fig:tour-basic:history}, you'll see
+%arrows connecting each changeset.  The node that the arrow leads
+%\emph{from} in each case is a parent, and the node that the arrow
+%leads \emph{to} is its child.  The working directory has a parent in
+%just the same way; this is the changeset that the working directory
+%currently contains.
 
-To update the working directory to a particular revision, give a
-revision number or changeset~ID to the \hgcmd{update} command.
-\interaction{tour.older}
-If you omit an explicit revision, \hgcmd{update} will update to the
-tip revision, as shown by the second call to \hgcmd{update} in the
-example above.
+%To update the working directory to a particular revision, give a
+%revision number or changeset~ID to the \hgcmd{update} command.
+%\interaction{tour.older}
+%If you omit an explicit revision, \hgcmd{update} will update to the
+%tip revision, as shown by the second call to \hgcmd{update} in the
+%example above.
 
 %\subsection{Pushing changes to another repository}
 \subsection{$BB>$N%j%]%8%H%j$KJQ99$r(Bpush$B$9$k(B}
 
-Mercurial lets us push changes to another repository, from the
-repository we're currently visiting.  As with the example of
-\hgcmd{pull} above, we'll create a temporary repository to push our
-changes into.
-\interaction{tour.clone-push}
-The \hgcmd{outgoing} command tells us what changes would be pushed
-into another repository.
-\interaction{tour.outgoing}
-And the \hgcmd{push} command does the actual push.
-\interaction{tour.push}
-As with \hgcmd{pull}, the \hgcmd{push} command does not update the
-working directory in the repository that it's pushing changes into.
-(Unlike \hgcmd{pull}, \hgcmd{push} does not provide a \texttt{-u}
-option that updates the other repository's working directory.)
+%Mercurial lets us push changes to another repository, from the
+%repository we're currently visiting.  As with the example of
+%\hgcmd{pull} above, we'll create a temporary repository to push our
+%changes into.
+%\interaction{tour.clone-push}
+%The \hgcmd{outgoing} command tells us what changes would be pushed
+%into another repository.
+%\interaction{tour.outgoing}
+%And the \hgcmd{push} command does the actual push.
+%\interaction{tour.push}
+%As with \hgcmd{pull}, the \hgcmd{push} command does not update the
+%working directory in the repository that it's pushing changes into.
+%(Unlike \hgcmd{pull}, \hgcmd{push} does not provide a \texttt{-u}
+%option that updates the other repository's working directory.)
 
-What happens if we try to pull or push changes and the receiving
-repository already has those changes?  Nothing too exciting.
-\interaction{tour.push.nothing}
+%What happens if we try to pull or push changes and the receiving
+%repository already has those changes?  Nothing too exciting.
+%\interaction{tour.push.nothing}
 
 %\subsection{Sharing changes over a network}
 \subsection{$BJQ99$r%M%C%H%o!<%/$rDL$8$F6&M-$9$k(B}
 
-The commands we have covered in the previous few sections are not
-limited to working with local repositories.  Each works in exactly the
-same fashion over a network connection; simply pass in a URL instead
-of a local path.
-\interaction{tour.outgoing.net}
-In this example, we can see what changes we could push to the remote
-repository, but the repository is understandably not set up to let
-anonymous users push to it.
-\interaction{tour.push.net}
+%The commands we have covered in the previous few sections are not
+%limited to working with local repositories.  Each works in exactly the
+%same fashion over a network connection; simply pass in a URL instead
+%of a local path.
+%\interaction{tour.outgoing.net}
+%In this example, we can see what changes we could push to the remote
+%repository, but the repository is understandably not set up to let
+%anonymous users push to it.
+%\interaction{tour.push.net}
+
+
+
 
 %%% Local Variables:
 %%% mode: yatex