Mercurial > hgbook
changeset 783:b15bea650f30
started tour-basic.tex
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Wed, 03 Jun 2009 18:53:39 +0900 |
parents | 43556decb81f |
children | 386cdca52f0b |
files | ja/todo.txt ja/tour-basic.tex |
diffstat | 2 files changed, 183 insertions(+), 103 deletions(-) [+] |
line wrap: on
line diff
--- a/ja/todo.txt Wed Jun 03 15:41:08 2009 +0900 +++ b/ja/todo.txt Wed Jun 03 18:53:39 2009 +0900 @@ -16,7 +16,7 @@ preface.tex 100% srcinstall.tex 100% template.tex 100% -tour-basic.tex +tour-basic.tex 10% tour-merge.tex 100% undo.tex 100% cmdref.tex 100%
--- a/ja/tour-basic.tex Wed Jun 03 15:41:08 2009 +0900 +++ b/ja/tour-basic.tex Wed Jun 03 18:53:39 2009 +0900 @@ -1,26 +1,42 @@ -\chapter{A tour of Mercurial: the basics} +%\chapter{A tour of Mercurial: the basics} +\chapter{Mercurial$B%D%"!<(B: $B4pK\(B} \label{chap:tour-basic} -\section{Installing Mercurial on your system} +%\section{Installing Mercurial on your system} +\section{$B%7%9%F%`$X$N(BMercurial$B$N%$%s%9%H!<%k(B} \label{sec:tour:install} -Prebuilt binary packages of Mercurial are available for every popular -operating system. These make it easy to start using Mercurial on your -computer immediately. +%Prebuilt binary packages of Mercurial are available for every popular +%operating system. These make it easy to start using Mercurial on your +%computer immediately. + +$B?M5$$N9b$$%*%Z%l!<%F%#%s%0%7%9%F%`$G$O(BMercurial$B$N%S%k%I:Q$_%P%$%J%j%Q%C(B +$B%1!<%8$,Ds6!$5$l$F$$$k!%$3$l$rMQ$$$l$PFI<T$N7W;;5!$N>e$GD>$A$K(BMercurial +$B$r;H$&$3$H$,$G$-$k!%(B \subsection{Linux} -Because each Linux distribution has its own packaging tools, policies, -and rate of development, it's difficult to give a comprehensive set of -instructions on how to install Mercurial binaries. The version of -Mercurial that you will end up with can vary depending on how active -the person is who maintains the package for your distribution. +%Because each Linux distribution has its own packaging tools, policies, +%and rate of development, it's difficult to give a comprehensive set of +%instructions on how to install Mercurial binaries. The version of +%Mercurial that you will end up with can vary depending on how active +%the person is who maintains the package for your distribution. + +Linux$B$N3F%G%#%9%H%j%S%e!<%7%g%s$O$=$l$>$lFH<+$N%Q%C%1!<%8%D!<%k!$%]%j(B +$B%7!<!$3+H/%Z!<%9$r;}$C$F$$$k$?$a!$A4$F$rLVMe$7$F(BMercurial$B%P%$%J%j$N%$%s%9(B +$B%H!<%k<j=g$r=R$Y$k$3$H$O:$Fq$G$"$k!%$=$l$>$l$N%G%#%9%H%j%S%e!<%7%g%s$GMx(B +$BMQ2DG=$J(BMercurial$B$N%P!<%8%g%s$O!$%Q%C%1!<%8%a%s%F%J$N3hF0$K0MB8$9$k!%(B -To keep things simple, I will focus on installing Mercurial from the -command line under the most popular Linux distributions. Most of -these distributions provide graphical package managers that will let -you install Mercurial with a single click; the package name to look -for is \texttt{mercurial}. +%To keep things simple, I will focus on installing Mercurial from the +%command line under the most popular Linux distributions. Most of +%these distributions provide graphical package managers that will let +%you install Mercurial with a single click; the package name to look +%for is \texttt{mercurial}. + +$BC1=c2=$N$?$a$K!$BgB??t$N(BLinux$B%G%#%9%H%j%S%e!<%7%g%s$G%3%^%s%I%i%$%s$+$i(B +Mercurial$B$r%$%s%9%H!<%k$9$kJ}K!$K8BDj$7$F@bL@$9$k$3$H$K$9$k!%$3$l$i$NBgH>(B +$B$N%G%#%9%H%j%S%e!<%7%g%s$G$O!$(BMercurial$B$r%/%j%C%/(B1$B2s$G%$%s%9%H!<%k$G$-$k(B +$B$h$&$J%0%i%U%#%+%k$J%Q%C%1!<%8%^%M!<%8%c$rMQ0U$7$F$$$k!%(B \begin{itemize} \item[Debian] @@ -43,15 +59,20 @@ yum install mercurial \end{codesample4} -\item[Ubuntu] Ubuntu's Mercurial package is based on Debian's. To - install it, run the following command. +%\item[Ubuntu] Ubuntu's Mercurial package is based on Debian's. To +% install it, run the following command. +\item[Ubuntu] Ubuntu$B$N(BMercurial package$B$O(BDebian$B$N$b$N$r85$K$7$F$$$k!%$3(B + $B$l$r%$%s%9%H!<%k$9$k$?$a$K$O<!$N%3%^%s%I$r<B9T$9$k!%(B \begin{codesample4} apt-get install mercurial \end{codesample4} - The Ubuntu package for Mercurial tends to lag behind the Debian - version by a considerable time margin (at the time of writing, seven - months), which in some cases will mean that on Ubuntu, you may run - into problems that have since been fixed in the Debian package. +% The Ubuntu package for Mercurial tends to lag behind the Debian +% version by a considerable time margin (at the time of writing, seven +% months), which in some cases will mean that on Ubuntu, you may run +% into problems that have since been fixed in the Debian package. +Ubuntu$B$N(BMercurial$B%Q%C%1!<%8$O(BDebian$B$N$b$N$KHf$Y$FL5;k$G$-$J$$$[$I$NCY$l(B + $B$,$"$k!J$3$l$r=q$$$F$$$k;~E@$G$O(B7$B%+7n!K!%$3$N$?$a!$(BUbuntu$B$G(B + $B$O(BDebian$B$G$O$9$G$K2r7h$5$l$?LdBj$KD>LL$9$k$+$b$7$l$J$$!%(B \end{itemize} \subsection{Solaris} @@ -60,83 +81,124 @@ \subsection{Mac OS X} -Lee Cantey publishes an installer of Mercurial for Mac OS~X at -\url{http://mercurial.berkwood.com}. This package works on both -Intel-~and Power-based Macs. Before you can use it, you must install -a compatible version of Universal MacPython~\cite{web:macpython}. This -is easy to do; simply follow the instructions on Lee's site. +%Lee Cantey publishes an installer of Mercurial for Mac OS~X at +%\url{http://mercurial.berkwood.com}. This package works on both +%Intel-~and Power-based Macs. Before you can use it, you must install +%a compatible version of Universal MacPython~\cite{web:macpython}. This +%is easy to do; simply follow the instructions on Lee's site. + +Lee Cantey$B$O(BMac OS~X$B8~$1$N(BMercurial$B%$%s%9%H!<%i$r(B +\url{http://mercurial.berkwood.com}$B$GG[I[$7$F$$$k!%$3$N%Q%C%1!<%8$O(B +Intel-~$B$H(BPower-$B%Y!<%9$N(BMac$BN>J}$GF0:n$9$k!%$3$l$r;H$&A0$K!$8_49@-$N$"$k%P!<(B +$B%8%g%s$N(BUniversal MacPython~\cite{web:macpython}$B$r%$%s%9%H!<%k$9$kI,MW$,(B +$B$"$k!%%$%s%9%H!<%k$O4JC1$G!$(BLee$B$N%5%$%H$K$"$k<j=g$K=>$&$@$1$G$"$k!%(B \subsection{Windows} -Lee Cantey also publishes an installer of Mercurial for Windows at -\url{http://mercurial.berkwood.com}. This package has no external -dependencies; it ``just works''. +%Lee Cantey also publishes an installer of Mercurial for Windows at +%\url{http://mercurial.berkwood.com}. This package has no external +%dependencies; it ``just works''. + +Lee Cantey$B$O(BWindows$B8~$1$N(BMercurial$B%$%s%9%H!<%i$b(B +\url{http://mercurial.berkwood.com}$B$GG[I[$7$F$$$k!%$3$N%Q%C%1!<%8$O30It(B +$B$N%=%U%H%&%'%"$K0MB8$;$:!$C1FH$G<B9T2DG=$G$"$k!%(B \begin{note} - The Windows version of Mercurial does not automatically convert line - endings between Windows and Unix styles. If you want to share work - with Unix users, you must do a little additional configuration - work. XXX Flesh this out. +% The Windows version of Mercurial does not automatically convert line +% endings between Windows and Unix styles. If you want to share work +% with Unix users, you must do a little additional configuration +% work. XXX Flesh this out. + Windows$B%P!<%8%g%s$N(BMercurial$B$O!$(BWindows$B$H(BUnix$B$N4V$G9TKv$N2~9T%3!<%I$r<+(B + $BF0$GJQ49$7$J$$!%(BUnix$B%f!<%6$H:n6H$r9T$$$?$$>l9g$O!$DI2C$N@_Dj$r9T$&I,MW(B + $B$,$"$k!%(BXXX Flesh this out. \end{note} -\section{Getting started} +%\section{Getting started} +\section{Mercurial$B$r;H$&(B} -To begin, we'll use the \hgcmd{version} command to find out whether -Mercurial is actually installed properly. The actual version -information that it prints isn't so important; it's whether it prints -anything at all that we care about. +%To begin, we'll use the \hgcmd{version} command to find out whether +%Mercurial is actually installed properly. The actual version +%information that it prints isn't so important; it's whether it prints +%anything at all that we care about. +%\interaction{tour.version} + +$B$^$:(B\hgcmd{version}$B%3%^%s%I$G(BMercurial$B$,<B:]$K@5$7$/%$%s%9%H!<%k$5$l$?$+(B +$B$r3NG'$7$F$_$h$&!%I=<($5$l$k$+$I$&$+$,LdBj$G$"$C$F!$I=<($5$l$k%P!<%8%g%s(B +$B>pJs$OFC$K=EMW$G$O$J$$!%(B \interaction{tour.version} -\subsection{Built-in help} +%\subsection{Built-in help} +\subsection{$BAH$_9~$_%X%k%W(B} -Mercurial provides a built-in help system. This is invaluable for those -times when you find yourself stuck trying to remember how to run a -command. If you are completely stuck, simply run \hgcmd{help}; it -will print a brief list of commands, along with a description of what -each does. If you ask for help on a specific command (as below), it -prints more detailed information. +%Mercurial provides a built-in help system. This is invaluable for those +%times when you find yourself stuck trying to remember how to run a +%command. If you are completely stuck, simply run \hgcmd{help}; it +%will print a brief list of commands, along with a description of what +%each does. If you ask for help on a specific command (as below), it +%prints more detailed information. +%\interaction{tour.help} +%For a more impressive level of detail (which you won't usually need) +%run \hgcmdargs{help}{\hggopt{-v}}. The \hggopt{-v} option is short +%for \hggopt{--verbose}, and tells Mercurial to print more information +%than it usually would. + +Mercurial$B$OAH$_9~$_$N%X%k%W%7%9%F%`$rHw$($F$$$k!%$3$l$O%3%^%s%I$N;H$$J}$K(B +$B5M$^$C$?;~$KLr$KN)$D!%2?$r<B9T$7$?$iNI$$$N$+A4$/J,$+$i$J$$>l9g$OC1$K(B +\hgcmd{help}$B$r<B9T$9$k!%$3$l$O%3%^%s%I$N0lIt$r@bL@$H6&$K%j%9%HI=<($9$k!%(B +$BFCDj$N%3%^%s%I$K$D$$$F%X%k%W$,8+$?$$>l9g$O!$2<5-$N$h$&$K$9$k$H$h$j>\:Y$J(B +$B>pJs$,F@$i$l$k!%(B \interaction{tour.help} -For a more impressive level of detail (which you won't usually need) -run \hgcmdargs{help}{\hggopt{-v}}. The \hggopt{-v} option is short -for \hggopt{--verbose}, and tells Mercurial to print more information -than it usually would. +$BDL>oI,MW$H$7$J$$$h$&$J6K$a$F>\$7$$@bL@$,I,MW$J>l9g$O(B +\hgcmdargs{help}{\hggopt{-v}}$B$r<B9T$9$k!%(B\hggopt{-v}$B$O(B\hggopt{--verbose} +$B%*%W%7%g%s$NC;=L7A$G!$$h$j>\:Y$J>pJs$rI=<($9$k%*%W%7%g%s$G$"$k!%(B -\section{Working with a repository} +%\section{Working with a repository} +\section{$B%j%]%8%H%j$r;H$C$?:n6H(B} -In Mercurial, everything happens inside a \emph{repository}. The -repository for a project contains all of the files that ``belong to'' -that project, along with a historical record of the project's files. +%In Mercurial, everything happens inside a \emph{repository}. The +%repository for a project contains all of the files that ``belong to'' +%that project, along with a historical record of the project's files. -There's nothing particularly magical about a repository; it is simply -a directory tree in your filesystem that Mercurial treats as special. -You can rename or delete a repository any time you like, using either the -command line or your file browser. +Mercurial$B$G$O(B\emph{$B%j%]%8%H%jFb(B}$B$G0l@Z$,5/$-$k!%%W%m%8%'%/%H$N%j%]%8%H%j(B +$B$O=jB0$9$kA4$F$N%U%!%$%k$H$=$l$i$NMzNr>pJs$r;}$D!%(B -\subsection{Making a local copy of a repository} +%There's nothing particularly magical about a repository; it is simply +%a directory tree in your filesystem that Mercurial treats as special. +%You can rename or delete a repository any time you like, using either the +%command line or your file browser. + +$B%j%]%8%H%j$K$OFC$KIT;W5D$J$H$3$m$O$J$$!%%j%]%8%H%j$O(BMercurial$B$,FCJL$N07$$(B +$B$r$9$k$@$1$N%U%!%$%k%7%9%F%`>e$NC1$J$k%G%#%l%/%H%j%D%j!<$K$9$.$J$$!%(B +$B%j%]%8%H%j$O%3%^%s%I%i%$%s$d%U%!%$%k%V%i%&%6$+$i$$$D$G$bL>A0$rJQ$($?$j>C(B +$B5n$9$k$3$H$,$G$-$k!%(B + +%\subsection{Making a local copy of a repository} +\subsection{$B%j%]%8%H%j$N%m!<%+%k%3%T!<$r:n$k(B} -\emph{Copying} a repository is just a little bit special. While you -could use a normal file copying command to make a copy of a -repository, it's best to use a built-in command that Mercurial -provides. This command is called \hgcmd{clone}, because it creates an -identical copy of an existing repository. -\interaction{tour.clone} -If our clone succeeded, we should now have a local directory called -\dirname{hello}. This directory will contain some files. -\interaction{tour.ls} -These files have the same contents and history in our repository as -they do in the repository we cloned. +%\emph{Copying} a repository is just a little bit special. While you +%could use a normal file copying command to make a copy of a +%repository, it's best to use a built-in command that Mercurial +%provides. This command is called \hgcmd{clone}, because it creates an +%identical copy of an existing repository. +%\interaction{tour.clone} +%If our clone succeeded, we should now have a local directory called +%\dirname{hello}. This directory will contain some files. +%\interaction{tour.ls} +%These files have the same contents and history in our repository as +%they do in the repository we cloned. -Every Mercurial repository is complete, self-contained, and -independent. It contains its own private copy of a project's files -and history. A cloned repository remembers the location of the -repository it was cloned from, but it does not communicate with that -repository, or any other, unless you tell it to. +%Every Mercurial repository is complete, self-contained, and +%independent. It contains its own private copy of a project's files +%and history. A cloned repository remembers the location of the +%repository it was cloned from, but it does not communicate with that +%repository, or any other, unless you tell it to. -What this means for now is that we're free to experiment with our -repository, safe in the knowledge that it's a private ``sandbox'' that -won't affect anyone else. +%What this means for now is that we're free to experiment with our +%repository, safe in the knowledge that it's a private ``sandbox'' that +%won't affect anyone else. -\subsection{What's in a repository?} +%\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 @@ -155,7 +217,8 @@ contains a \emph{snapshot} of your project at a particular point in history. -\section{A tour through history} +%\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 @@ -199,8 +262,8 @@ \label{fig:tour-basic:history} \end{figure} -\subsection{Changesets, revisions, and talking to other - people} +%\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 @@ -236,7 +299,8 @@ changeset for some other reason (for example, in a bug report), use the hexadecimal identifier. -\subsection{Viewing specific revisions} +%\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 @@ -252,7 +316,8 @@ \hgcmdargs{log}{-r 2:4} prints $2,3,4$ while \hgcmdargs{log}{-r 4:2} prints $4,3,2$. -\subsection{More detailed information} +%\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 @@ -268,7 +333,8 @@ a unified diff before, see section~\ref{sec:mq:patch} for an overview). \interaction{tour.log-vp} -\section{All about command options} +%\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 @@ -300,7 +366,8 @@ when passed a \hggopt{-v} (or \hggopt{--verbose}) option, and less when passed \hggopt{-q} (or \hggopt{--quiet}). -\section{Making and reviewing changes} +%\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. @@ -336,7 +403,7 @@ 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. +not been modified. The ``\texttt{M}'' indicates that Mercurial has noticed that we modified \filename{hello.c}. We didn't need to \emph{inform} @@ -350,7 +417,8 @@ command. \interaction{tour.diff} -\section{Recording changes in a new changeset} +%\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 @@ -358,9 +426,10 @@ 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''. +usually refer to this as ``making a commit'' or ``committing''. -\subsection{Setting up a username} +%\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 @@ -395,7 +464,8 @@ 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{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 @@ -414,7 +484,8 @@ 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{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, @@ -429,7 +500,8 @@ email if you publish a Mercurial repository on the web. \end{note} -\subsection{Writing a commit message} +%\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 @@ -449,7 +521,8 @@ 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{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 @@ -472,7 +545,8 @@ 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{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 @@ -483,7 +557,8 @@ all of the changes we've made, as reported by \hgcmd{status} and \hgcmd{diff}. -\subsection{Admiring our new handiwork} +%\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 @@ -493,14 +568,16 @@ We refer to the newest revision in the repository as the tip revision, or simply the tip. -\section{Sharing changes} +%\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. -\subsection{Pulling changes from another repository} +%\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, @@ -527,7 +604,8 @@ 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{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 @@ -578,7 +656,8 @@ tip revision, as shown by the second call to \hgcmd{update} in the example above. -\subsection{Pushing changes to another repository} +%\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 @@ -599,7 +678,8 @@ repository already has those changes? Nothing too exciting. \interaction{tour.push.nothing} -\subsection{Sharing changes over a network} +%\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 @@ -611,7 +691,7 @@ anonymous users push to it. \interaction{tour.push.net} -%%% Local Variables: +%%% Local Variables: %%% mode: yatex %%% TeX-master: "00book" -%%% End: +%%% End: