Mercurial > hgbook
annotate ja/tour-basic.tex @ 786:11bc9d788428
finished tour-basic.tex
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Sun, 07 Jun 2009 20:25:51 +0900 |
parents | 7dd855842de4 |
children | 72eab2497e12 |
rev | line source |
---|---|
783 | 1 %\chapter{A tour of Mercurial: the basics} |
2 \chapter{Mercurial$B%D%"!<(B: $B4pK\(B} | |
95
47ea206351d5
Split tour into two sections.
Bryan O'Sullivan <bos@serpentine.com>
parents:
94
diff
changeset
|
3 \label{chap:tour-basic} |
84 | 4 |
783 | 5 %\section{Installing Mercurial on your system} |
6 \section{$B%7%9%F%`$X$N(BMercurial$B$N%$%s%9%H!<%k(B} | |
84 | 7 \label{sec:tour:install} |
8 | |
783 | 9 %Prebuilt binary packages of Mercurial are available for every popular |
10 %operating system. These make it easy to start using Mercurial on your | |
11 %computer immediately. | |
12 | |
13 $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 | |
14 $B%1!<%8$,Ds6!$5$l$F$$$k!%$3$l$rMQ$$$l$PFI<T$N7W;;5!$N>e$GD>$A$K(BMercurial | |
15 $B$r;H$&$3$H$,$G$-$k!%(B | |
85
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
16 |
84 | 17 \subsection{Linux} |
18 | |
783 | 19 %Because each Linux distribution has its own packaging tools, policies, |
20 %and rate of development, it's difficult to give a comprehensive set of | |
21 %instructions on how to install Mercurial binaries. The version of | |
22 %Mercurial that you will end up with can vary depending on how active | |
23 %the person is who maintains the package for your distribution. | |
24 | |
25 Linux$B$N3F%G%#%9%H%j%S%e!<%7%g%s$O$=$l$>$lFH<+$N%Q%C%1!<%8%D!<%k!$%]%j(B | |
26 $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 | |
27 $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 | |
28 $BMQ2DG=$J(BMercurial$B$N%P!<%8%g%s$O!$%Q%C%1!<%8%a%s%F%J$N3hF0$K0MB8$9$k!%(B | |
84 | 29 |
783 | 30 %To keep things simple, I will focus on installing Mercurial from the |
31 %command line under the most popular Linux distributions. Most of | |
32 %these distributions provide graphical package managers that will let | |
33 %you install Mercurial with a single click; the package name to look | |
34 %for is \texttt{mercurial}. | |
35 | |
36 $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 | |
37 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 | |
38 $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 | |
39 $B$h$&$J%0%i%U%#%+%k$J%Q%C%1!<%8%^%M!<%8%c$rMQ0U$7$F$$$k!%(B | |
84 | 40 |
85
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
41 \begin{itemize} |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
42 \item[Debian] |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
43 \begin{codesample4} |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
44 apt-get install mercurial |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
45 \end{codesample4} |
84 | 46 |
85
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
47 \item[Fedora Core] |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
48 \begin{codesample4} |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
49 yum install mercurial |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
50 \end{codesample4} |
84 | 51 |
85
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
52 \item[Gentoo] |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
53 \begin{codesample4} |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
54 emerge mercurial |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
55 \end{codesample4} |
84 | 56 |
85
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
57 \item[OpenSUSE] |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
58 \begin{codesample4} |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
59 yum install mercurial |
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
60 \end{codesample4} |
84 | 61 |
783 | 62 %\item[Ubuntu] Ubuntu's Mercurial package is based on Debian's. To |
63 % install it, run the following command. | |
64 \item[Ubuntu] Ubuntu$B$N(BMercurial package$B$O(BDebian$B$N$b$N$r85$K$7$F$$$k!%$3(B | |
65 $B$l$r%$%s%9%H!<%k$9$k$?$a$K$O<!$N%3%^%s%I$r<B9T$9$k!%(B | |
262
6a847f7902a7
Update description of Ubuntu package.
Bryan O'Sullivan <bos@serpentine.com>
parents:
174
diff
changeset
|
66 \begin{codesample4} |
6a847f7902a7
Update description of Ubuntu package.
Bryan O'Sullivan <bos@serpentine.com>
parents:
174
diff
changeset
|
67 apt-get install mercurial |
6a847f7902a7
Update description of Ubuntu package.
Bryan O'Sullivan <bos@serpentine.com>
parents:
174
diff
changeset
|
68 \end{codesample4} |
783 | 69 % The Ubuntu package for Mercurial tends to lag behind the Debian |
70 % version by a considerable time margin (at the time of writing, seven | |
71 % months), which in some cases will mean that on Ubuntu, you may run | |
72 % into problems that have since been fixed in the Debian package. | |
73 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 | |
74 $B$,$"$k!J$3$l$r=q$$$F$$$k;~E@$G$O(B7$B%+7n!K!%$3$N$?$a!$(BUbuntu$B$G(B | |
75 $B$O(BDebian$B$G$O$9$G$K2r7h$5$l$?LdBj$KD>LL$9$k$+$b$7$l$J$$!%(B | |
85
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
76 \end{itemize} |
84 | 77 |
264 | 78 \subsection{Solaris} |
79 | |
80 XXX. | |
81 | |
84 | 82 \subsection{Mac OS X} |
83 | |
783 | 84 %Lee Cantey publishes an installer of Mercurial for Mac OS~X at |
85 %\url{http://mercurial.berkwood.com}. This package works on both | |
86 %Intel-~and Power-based Macs. Before you can use it, you must install | |
87 %a compatible version of Universal MacPython~\cite{web:macpython}. This | |
88 %is easy to do; simply follow the instructions on Lee's site. | |
89 | |
90 Lee Cantey$B$O(BMac OS~X$B8~$1$N(BMercurial$B%$%s%9%H!<%i$r(B | |
91 \url{http://mercurial.berkwood.com}$B$GG[I[$7$F$$$k!%$3$N%Q%C%1!<%8$O(B | |
92 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 | |
93 $B%8%g%s$N(BUniversal MacPython~\cite{web:macpython}$B$r%$%s%9%H!<%k$9$kI,MW$,(B | |
94 $B$"$k!%%$%s%9%H!<%k$O4JC1$G!$(BLee$B$N%5%$%H$K$"$k<j=g$K=>$&$@$1$G$"$k!%(B | |
84 | 95 |
96 \subsection{Windows} | |
97 | |
783 | 98 %Lee Cantey also publishes an installer of Mercurial for Windows at |
99 %\url{http://mercurial.berkwood.com}. This package has no external | |
100 %dependencies; it ``just works''. | |
101 | |
102 Lee Cantey$B$O(BWindows$B8~$1$N(BMercurial$B%$%s%9%H!<%i$b(B | |
103 \url{http://mercurial.berkwood.com}$B$GG[I[$7$F$$$k!%$3$N%Q%C%1!<%8$O30It(B | |
104 $B$N%=%U%H%&%'%"$K0MB8$;$:!$C1FH$G<B9T2DG=$G$"$k!%(B | |
84 | 105 |
106 \begin{note} | |
783 | 107 % The Windows version of Mercurial does not automatically convert line |
108 % endings between Windows and Unix styles. If you want to share work | |
109 % with Unix users, you must do a little additional configuration | |
110 % work. XXX Flesh this out. | |
111 Windows$B%P!<%8%g%s$N(BMercurial$B$O!$(BWindows$B$H(BUnix$B$N4V$G9TKv$N2~9T%3!<%I$r<+(B | |
112 $BF0$GJQ49$7$J$$!%(BUnix$B%f!<%6$H:n6H$r9T$$$?$$>l9g$O!$DI2C$N@_Dj$r9T$&I,MW(B | |
113 $B$,$"$k!%(BXXX Flesh this out. | |
84 | 114 \end{note} |
115 | |
783 | 116 %\section{Getting started} |
117 \section{Mercurial$B$r;H$&(B} | |
87 | 118 |
783 | 119 %To begin, we'll use the \hgcmd{version} command to find out whether |
120 %Mercurial is actually installed properly. The actual version | |
121 %information that it prints isn't so important; it's whether it prints | |
122 %anything at all that we care about. | |
123 %\interaction{tour.version} | |
124 | |
125 $B$^$:(B\hgcmd{version}$B%3%^%s%I$G(BMercurial$B$,<B:]$K@5$7$/%$%s%9%H!<%k$5$l$?$+(B | |
126 $B$r3NG'$7$F$_$h$&!%I=<($5$l$k$+$I$&$+$,LdBj$G$"$C$F!$I=<($5$l$k%P!<%8%g%s(B | |
127 $B>pJs$OFC$K=EMW$G$O$J$$!%(B | |
87 | 128 \interaction{tour.version} |
129 | |
783 | 130 %\subsection{Built-in help} |
131 \subsection{$BAH$_9~$_%X%k%W(B} | |
87 | 132 |
783 | 133 %Mercurial provides a built-in help system. This is invaluable for those |
134 %times when you find yourself stuck trying to remember how to run a | |
135 %command. If you are completely stuck, simply run \hgcmd{help}; it | |
136 %will print a brief list of commands, along with a description of what | |
137 %each does. If you ask for help on a specific command (as below), it | |
138 %prints more detailed information. | |
139 %\interaction{tour.help} | |
140 %For a more impressive level of detail (which you won't usually need) | |
141 %run \hgcmdargs{help}{\hggopt{-v}}. The \hggopt{-v} option is short | |
142 %for \hggopt{--verbose}, and tells Mercurial to print more information | |
143 %than it usually would. | |
144 | |
145 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 | |
146 $B5M$^$C$?;~$KLr$KN)$D!%2?$r<B9T$7$?$iNI$$$N$+A4$/J,$+$i$J$$>l9g$OC1$K(B | |
147 \hgcmd{help}$B$r<B9T$9$k!%$3$l$O%3%^%s%I$N0lIt$r@bL@$H6&$K%j%9%HI=<($9$k!%(B | |
148 $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 | |
149 $B>pJs$,F@$i$l$k!%(B | |
87 | 150 \interaction{tour.help} |
783 | 151 $BDL>oI,MW$H$7$J$$$h$&$J6K$a$F>\$7$$@bL@$,I,MW$J>l9g$O(B |
152 \hgcmdargs{help}{\hggopt{-v}}$B$r<B9T$9$k!%(B\hggopt{-v}$B$O(B\hggopt{--verbose} | |
153 $B%*%W%7%g%s$NC;=L7A$G!$$h$j>\:Y$J>pJs$rI=<($9$k%*%W%7%g%s$G$"$k!%(B | |
87 | 154 |
783 | 155 %\section{Working with a repository} |
156 \section{$B%j%]%8%H%j$r;H$C$?:n6H(B} | |
87 | 157 |
783 | 158 %In Mercurial, everything happens inside a \emph{repository}. The |
159 %repository for a project contains all of the files that ``belong to'' | |
160 %that project, along with a historical record of the project's files. | |
87 | 161 |
783 | 162 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 |
163 $B$O=jB0$9$kA4$F$N%U%!%$%k$H$=$l$i$NMzNr>pJs$r;}$D!%(B | |
87 | 164 |
783 | 165 %There's nothing particularly magical about a repository; it is simply |
166 %a directory tree in your filesystem that Mercurial treats as special. | |
167 %You can rename or delete a repository any time you like, using either the | |
168 %command line or your file browser. | |
169 | |
170 $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 | |
171 $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 | |
172 $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 | |
173 $B5n$9$k$3$H$,$G$-$k!%(B | |
174 | |
175 %\subsection{Making a local copy of a repository} | |
176 \subsection{$B%j%]%8%H%j$N%m!<%+%k%3%T!<$r:n$k(B} | |
87 | 177 |
783 | 178 %\emph{Copying} a repository is just a little bit special. While you |
179 %could use a normal file copying command to make a copy of a | |
180 %repository, it's best to use a built-in command that Mercurial | |
181 %provides. This command is called \hgcmd{clone}, because it creates an | |
182 %identical copy of an existing repository. | |
183 %\interaction{tour.clone} | |
184 %If our clone succeeded, we should now have a local directory called | |
185 %\dirname{hello}. This directory will contain some files. | |
186 %\interaction{tour.ls} | |
187 %These files have the same contents and history in our repository as | |
188 %they do in the repository we cloned. | |
87 | 189 |
784
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
190 $B%j%]%8%H%j$N(B\emph{$B%3%T!<(B}$B$O$d$dFC<l$G$"$k!%DL>o$N%U%!%$%k%3%T!<%3%^%s%I$r(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
191 $B;H$C$F%j%]%8%H%j$N%3%T!<$r:n@.$9$k$3$H$b$G$-$k$,!$(BMercurial$B$NAH$_9~$_%3%^(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
192 $B%s%I$r;H$C$F%3%T!<$9$k$N$,0lHVNI$$!%$3$N%3%^%s%I$O(B\hgcmd{clone}$B$H8F$P$l!$(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
193 $B4{B8$N%j%]%8%H%j$N40A4$J%3%T!<$r:n@.$9$k!%(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
194 \interaction{tour.clone} |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
195 $B%/%m!<%s$,@.8y$9$k$H(B\dirname{hello}$B$H$$$&%m!<%+%k%G%#%l%/%H%j$,$G$-$k!%(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
196 $B$3$N%G%#%l%/%H%j$K$O%*%j%8%J%k$HF10l$N%U%!%$%k$,4^$^$l$k!%(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
197 \interaction{tour.ls} |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
198 $B$3$l$i$N%U%!%$%k$O%/%m!<%s$7$?%j%]%8%H%jFb$HA4$/F1$8FbMF$HMzNr$r;}$C$F$$(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
199 $B$k!%(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
200 |
783 | 201 %Every Mercurial repository is complete, self-contained, and |
202 %independent. It contains its own private copy of a project's files | |
203 %and history. A cloned repository remembers the location of the | |
204 %repository it was cloned from, but it does not communicate with that | |
205 %repository, or any other, unless you tell it to. | |
87 | 206 |
784
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
207 $BA4$F$N(BMercurial$B%j%]%8%H%j$O40A4$+$D<+8J=<B-E*$GFHN)$G$"$k!%%j%]%8%H%j$O%W(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
208 $B%m%8%'%/%H$KB0$9%U%!%$%k$N%W%i%$%Y!<%H%3%T!<$HMzNr$r;}$D!%%/%m!<%s$5$l$?(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
209 $B%j%]%8%H%j$O%/%m!<%s85$N%j%]%8%H%j$N>l=j$r5-21$7$F$$$k$,!$%f!<%6$,;X<($7(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
210 $B$J$$8B$j!$$=$N%j%]%8%H%j$dB>$N%j%]%8%H%j$HDL?.$r9T$&$3$H$O$J$$!%(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
211 |
783 | 212 %What this means for now is that we're free to experiment with our |
213 %repository, safe in the knowledge that it's a private ``sandbox'' that | |
214 %won't affect anyone else. | |
85
b7c69a68b0cc
A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents:
84
diff
changeset
|
215 |
784
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
216 $B:#$NCJ3,$G$O%m!<%+%k$J%j%]%8%H%j$H$O30It$X2?$N1F6A$b5Z$\$5$J$$%W%i%$%Y!<(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
217 $B%H$J(B``$B%5%s%I%\%C%/%9(B''$B$G!$$3$NCf$G$I$s$J$3$H$G$b;n$9$3$H$,$G$-$k$H2r<a$7(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
218 $B$F$*$1$P==J,$G$"$k!%(B |
386cdca52f0b
a bit more tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
783
diff
changeset
|
219 |
783 | 220 %\subsection{What's in a repository?} |
221 \subsection{$B%j%]%8%H%j$K$O2?$,4^$^$l$k$+!)(B} | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
222 |
785 | 223 %When we take a more detailed look inside a repository, we can see that |
224 %it contains a directory named \dirname{.hg}. This is where Mercurial | |
225 %keeps all of its metadata for the repository. | |
226 %\interaction{tour.ls-a} | |
227 | |
228 $B%j%]%8%H%j$NFbIt$r$h$j>\$7$/8+$F$_$k$H!$(B\dirname{.hg}$B$H$$$&%G%#%l%/%H%j(B | |
229 $B$,$"$k$N$K5$$E$/!%(BMercurial$B$O$3$3$K%j%]%8%H%j$N$?$a$N%a%?%G!<%?$rJ]4I$7(B | |
230 $B$F$$$k!%(B | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
231 \interaction{tour.ls-a} |
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
232 |
785 | 233 %The contents of the \dirname{.hg} directory and its subdirectories are |
234 %private to Mercurial. Every other file and directory in the | |
235 %repository is yours to do with as you please. | |
236 | |
237 \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 | |
238 Mercurial$B@lMQ$N$b$N$G$"$k!%%j%]%8%H%j$N$=$l0J30$N%U%!%$%k$H%G%#%l%/%H%j(B | |
239 $B$O%f!<%6$KB0$9!%(B | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
240 |
785 | 241 %To introduce a little terminology, the \dirname{.hg} directory is the |
242 %``real'' repository, and all of the files and directories that coexist | |
243 %with it are said to live in the \emph{working directory}. An easy way | |
244 %to remember the distinction is that the \emph{repository} contains the | |
245 %\emph{history} of your project, while the \emph{working directory} | |
246 %contains a \emph{snapshot} of your project at a particular point in | |
247 %history. | |
248 | |
249 $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 | |
250 $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 | |
251 \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 | |
252 $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 | |
253 $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 | |
254 $B%H(B}$B$r;}$D$H3P$($k$HNI$$!%(B | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
255 |
783 | 256 %\section{A tour through history} |
257 \section{$BMzNr$rC)$k(B} | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
258 |
785 | 259 %One of the first things we might want to do with a new, unfamiliar |
260 %repository is understand its history. The \hgcmd{log} command gives | |
261 %us a view of history. | |
262 %\interaction{tour.log} | |
263 %By default, this command prints a brief paragraph of output for each | |
264 %change to the project that was recorded. In Mercurial terminology, we | |
265 %call each of these recorded events a \emph{changeset}, because it can | |
266 %contain a record of changes to several files. | |
267 | |
268 $BL$CN$N%j%]%8%H%j$KBP$7$F$^$:$7$h$&$H;W$&$3$H$O!$$=$NMzNr$rCN$k$3$H$@$m$&!%(B | |
269 $BMzNr$O(B\hgcmd{log}$B%3%^%s%I$G8+$k$3$H$,$G$-$k!%(B | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
270 \interaction{tour.log} |
785 | 271 $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 |
272 $B$$$F4J7i$J%Q%i%0%i%U$rI=<($9$k!%(B Mercurial$B$NMQ8l$G$O!$MzNrCf$NJQ99$N%$%Y(B | |
273 $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 | |
274 $B$N5-O?$r;}$AF@$k$+$i$G$"$k!%(B | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
275 |
785 | 276 %The fields in a record of output from \hgcmd{log} are as follows. |
277 \hgcmd{log}$B$+$i=PNO$5$l$k5-O?$N3F%U%#!<%k%I$O<!$N$h$&$K$J$C$F$$$k!%(B | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
278 \begin{itemize} |
785 | 279 %\item[\texttt{changeset}] This field has the format of a number, |
280 % followed by a colon, followed by a hexadecimal string. These are | |
281 % \emph{identifiers} for the changeset. There are two identifiers | |
282 % because the number is shorter and easier to type than the hex | |
283 % string. | |
284 \item[\texttt{changeset}] $B?t;z!$$=$l$KB3$/%3%m%s$*$h$S(B16$B?JJ8;zNs!%$3$l$O(B | |
285 $B%A%'%s%8%;%C%H$N(B\emph{$B<1JL;R(B}$B$G$"$k!%?t;z$OC;$/F~NO$bMF0W$G(B | |
286 $B$"$k$?$aMQ0U$5$l$F$$$k!%(B | |
287 %\item[\texttt{user}] The identity of the person who created the | |
288 % changeset. This is a free-form field, but it most often contains a | |
289 % person's name and email address. | |
290 \item[\texttt{user}] $B%A%'%s%8%;%C%H:n@.<T!%$3$N%U%#!<%k%I$N=q<0$O<+M3$@(B | |
291 $B$,!$KX$s$I$N>l9g;aL>$H(Bemail$B%"%I%l%9$G$"$k!%(B | |
292 %\item[\texttt{date}] The date and time on which the changeset was | |
293 % created, and the timezone in which it was created. (The date and | |
294 % time are local to that timezone; they display what time and date it | |
295 % was for the person who created the changeset.) | |
296 \item[\texttt{date}] $B%A%'%s%8%;%C%H$,:n@.$5$l$?F|IU$H;~9o$*$h$S%?%$%`%>!<(B | |
297 $B%s!%(B $B!JF|;~$O%A%'%s%8%;%C%H$N:n@.<T$NB0$9%?%$%`%>!<%s$K%m!<(B | |
298 $B%+%k$G$"$k!%!K(B | |
299 %\item[\texttt{summary}] The first line of the text message that the | |
300 % creator of the changeset entered to describe the changeset. | |
301 \item[\texttt{summary}] $B%F%-%9%H%a%C%;!<%8$N:G=i$N9T$O%A%'%s%8%;%C%H$N@b(B | |
302 $BL@$KF~NO$5$l$?%A%'%s%8%;%C%H$N:n@.<T$G$"$k!%(B | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
303 \end{itemize} |
785 | 304 %The default output printed by \hgcmd{log} is purely a summary; it is |
305 %missing a lot of detail. | |
306 \hgcmd{log}$B$N%G%U%)%k%H=PNO$OMWLs$K$9$.$:!$B?$/$N>\:Y>pJs$r7g$$$F$$$k!%(B | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
307 |
785 | 308 %Figure~\ref{fig:tour-basic:history} provides a graphical representation of |
309 %the history of the \dirname{hello} repository, to make it a little | |
310 %easier to see which direction history is ``flowing'' in. We'll be | |
311 %returning to this figure several times in this chapter and the chapter | |
312 %that follows. | |
313 | |
314 $B?^(B~\ref{fig:tour-basic:history}$B$O(B\dirname{hello}$B%j%]%8%H%j$NMzNr$r%0%i%UI=(B | |
315 $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 | |
316 $B$/$J$C$F$$$k!%:#8e!$$3$N?^$r2?EY$+;2>H$9$k!%(B | |
97 | 317 |
96
7d7ddc3a57af
Split tour into two chapters.
Bryan O'Sullivan <bos@serpentine.com>
parents:
95
diff
changeset
|
318 \begin{figure}[ht] |
7d7ddc3a57af
Split tour into two chapters.
Bryan O'Sullivan <bos@serpentine.com>
parents:
95
diff
changeset
|
319 \centering |
7d7ddc3a57af
Split tour into two chapters.
Bryan O'Sullivan <bos@serpentine.com>
parents:
95
diff
changeset
|
320 \grafix{tour-history} |
785 | 321 % \caption{Graphical history of the \dirname{hello} repository} |
322 \caption{\dirname{hello}$B%j%]%8%H%j$NMzNr%0%i%U(B} | |
323 \label{fig:tour-basic:history} | |
96
7d7ddc3a57af
Split tour into two chapters.
Bryan O'Sullivan <bos@serpentine.com>
parents:
95
diff
changeset
|
324 \end{figure} |
7d7ddc3a57af
Split tour into two chapters.
Bryan O'Sullivan <bos@serpentine.com>
parents:
95
diff
changeset
|
325 |
783 | 326 %\subsection{Changesets, revisions, and talking to other people} |
327 \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} | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
328 |
785 | 329 %As English is a notoriously sloppy language, and computer science has |
330 %a hallowed history of terminological confusion (why use one term when | |
331 %four will do?), revision control has a variety of words and phrases | |
332 %that mean the same thing. If you are talking about Mercurial history | |
333 %with other people, you will find that the word ``changeset'' is often | |
334 %compressed to ``change'' or (when written) ``cset'', and sometimes a | |
335 %changeset is referred to as a ``revision'' or a ``rev''. | |
336 | |
337 $B1Q8l$O$$$$2C8:$J$3$H$G0-L>$N9b$$8@8l$G$"$j!$%3%s%T%e!<%?%5%$%(%s%9$G$O@l(B | |
338 $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 | |
339 $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 | |
340 $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 | |
341 $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 | |
342 ``rev''$B$HI=$5$l$?$j$9$k$3$H$K5$$E$/$@$m$&!%(B | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
343 |
785 | 344 %While it doesn't matter what \emph{word} you use to refer to the |
345 %concept of ``a~changeset'', the \emph{identifier} that you use to | |
346 %refer to ``a~\emph{specific} changeset'' is of great importance. | |
347 %Recall that the \texttt{changeset} field in the output from | |
348 %\hgcmd{log} identifies a changeset using both a number and a | |
349 %hexadecimal string. | |
350 | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
351 ``a~changeset''$B$H$$$&%A%'%s%8%;%C%H$N(B\emph{$B8F$SL>(B}$B$O<+M3$@$,!$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
352 ``a~\emph{specific} changeset''$B$r;2>H$9$k(B\emph{$B<1JL;R(B}$B$OHs>o$K=EMW$G$"$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
353 \hgcmd{log}$B%3%^%s%I$N=PNO$K4^$^$l$k(B\texttt{changeset}$B%U%#!<%k%I$O!$$"$k%A%'(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
354 $B%s%8%;%C%H$rHV9f$H(B16$B?JJ8;zNs$GI=$7$F$$$?$3$H$r;W$$=P$7$FM_$7$$!%(B |
785 | 355 |
356 %\begin{itemize} | |
357 %\item The revision number is \emph{only valid in that repository}, | |
358 %\item while the hex string is the \emph{permanent, unchanging | |
359 % identifier} that will always identify that exact changeset in | |
360 % \emph{every} copy of the repository. | |
361 %\end{itemize} | |
97 | 362 \begin{itemize} |
785 | 363 \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 |
364 \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 | |
365 $B%j$N%3%T!<(B\emph{$BA4$F(B}$B$G>o$KFCDj$N%A%'%s%8%;%C%H$r<($9!%(B | |
97 | 366 \end{itemize} |
785 | 367 |
368 %This distinction is important. If you send someone an email talking | |
369 %about ``revision~33'', there's a high likelihood that their | |
370 %revision~33 will \emph{not be the same} as yours. The reason for this | |
371 %is that a revision number depends on the order in which changes | |
372 %arrived in a repository, and there is no guarantee that the same | |
373 %changes will happen in the same order in different repositories. | |
374 %Three changes $a,b,c$ can easily appear in one repository as $0,1,2$, | |
375 %while in another as $1,0,2$. | |
376 | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
377 $B$3$N6hJL$O=EMW$G$"$k!%C/$+$K(B``revision~33''$B$H8@$C$?;~!$$=$N%j%S%8%g%s(B33$B$,(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
378 $B<+J,$N%j%]%8%H%j$N%j%]%8%H%j$N$b$N$H$O(B\emph{$B0c$&$b$N$G$"$k(B}$B2DG=@-$O9b$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
379 $B$=$NM}M3$O!$%j%S%8%g%sHV9f$O%j%]%8%H%j$KJQ99$,8=$l$?=g=x$K$h$C$F7h$^(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
380 $B$j!$(BMercurial$B$G$OJL$N%j%]%8%H%j$GF1$8JQ99$,F1$8=g=x$G5/$3$kJ]>Z$O$J$$$?$a(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
381 $B$G$"$k!%(B 3$B$D$NJQ99(B$a,b,c$$B$O!$$"$k%j%]%8%H%j$G(B$0,1,2$$B$N=g$G5/$3$j!$JL$N%j(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
382 $B%]%8%H%j$G$O(B$1,0,2$$B$N=g=x$G5/$3$jF@$k!%(B |
785 | 383 |
384 %Mercurial uses revision numbers purely as a convenient shorthand. If | |
385 %you need to discuss a changeset with someone, or make a record of a | |
386 %changeset for some other reason (for example, in a bug report), use | |
387 %the hexadecimal identifier. | |
388 | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
389 Mercurial$B$O%j%S%8%g%sHV9f$rC1$KJXMx$N$?$a$NN,5-K!$H$7$FMQ$$$k!%C/$+$H%A%'(B |
785 | 390 $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 |
391 $BO?$7$?$$>l9g$O(B16$B?J$N<1JL;R$rMxMQ$9$Y$-$G$"$k!%(B | |
392 | |
783 | 393 %\subsection{Viewing specific revisions} |
394 \subsection{$BFCDj$N%j%S%8%g%s$r8+$k(B} | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
395 |
785 | 396 %To narrow the output of \hgcmd{log} down to a single revision, use the |
397 %\hgopt{log}{-r} (or \hgopt{log}{--rev}) option. You can use either a | |
398 %revision number or a long-form changeset identifier, and you can | |
399 %provide as many revisions as you want. \interaction{tour.log-r} | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
400 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
401 \hgcmd{log}$B$N=PNO$r$"$k(B1$B$D$N%j%S%8%g%s$K@)8B$9$k$?$a$K$O!$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
402 \hgopt{log}{-r}$B!J$^$?$O(B \hgopt{log}{--rev}$B!K%*%W%7%g%s$rMQ$$$k!%%j%S%8%g(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
403 $B%sHV9f$bD97A<0$N%A%'%s%8%;%C%H<1JL;R$bMxMQ2DG=$G$"$j!$;XDj$G$-$k%j%S%8%g(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
404 $B%s$N?t$K@)8B$O$J$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
405 \interaction{tour.log-r} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
406 |
785 | 407 %If you want to see the history of several revisions without having to |
408 %list each one, you can use \emph{range notation}; this lets you | |
409 %express the idea ``I want all revisions between $a$ and $b$, | |
410 %inclusive''. | |
411 %\interaction{tour.log.range} | |
412 %Mercurial also honours the order in which you specify revisions, so | |
413 %\hgcmdargs{log}{-r 2:4} prints $2,3,4$ while \hgcmdargs{log}{-r 4:2} | |
414 %prints $4,3,2$. | |
88
d351032c189c
Progress with log coverage.
Bryan O'Sullivan <bos@serpentine.com>
parents:
87
diff
changeset
|
415 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
416 $B$$$/$D$+$N%j%S%8%g%s$NMzNr$r!$$$$A$$$A%j%S%8%g%s$r;XDj$9$k$3$H$J$/8+$?$$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
417 $B;~$O!$(B\emph{$BHO0O5-K!(B}$B$,;H$($k!%$3$l$K$h$j(B``$a$$B$+$i(B$b$$B$^$G$K4^$^$l$kA4$F$N(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
418 $B%j%S%8%g%s(B''$B$r;XDj$9$k$3$H$,$G$-$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
419 \interaction{tour.log.range} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
420 Mercurial$B$O%j%S%8%g%s$,;XDj$5$l$?=g=x$r9MN8$9$k!%(B\hgcmdargs{log}{-r 2:4} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
421 $B$O(B$2,3,4$$B$N=g$KI=<($7!$(B\hgcmdargs{log}{-r 4:2}$B$O(B$4,3,2$$B$N=g$KI=<($r9T$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
422 |
783 | 423 %\subsection{More detailed information} |
424 \subsection{$B$h$j>\:Y$J>pJs(B} | |
91 | 425 |
785 | 426 %While the summary information printed by \hgcmd{log} is useful if you |
427 %already know what you're looking for, you may need to see a complete | |
428 %description of the change, or a list of the files changed, if you're | |
429 %trying to decide whether a changeset is the one you're looking for. | |
430 %The \hgcmd{log} command's \hggopt{-v} (or \hggopt{--verbose}) | |
431 %option gives you this extra detail. | |
432 %\interaction{tour.log-v} | |
91 | 433 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
434 $BC5$7$F$$$k$b$N$,$O$C$-$j$7$F$$$k>l9g$O(B\hgcmd{log}$B%3%^%s%I$K$h$k%5%^%j!<>p(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
435 $BJs$OM-MQ$@$,!$$I$N%A%'%s%8%;%C%H$,8+$D$1$h$&$H$9$k%A%'%s%8%;%C%H$J$N$+7h(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
436 $B$a$k;~$K$OJQ99$N40A4$J5-=R$dJQ99$5$l$?%U%!%$%k$N%j%9%H$,I,MW$K$J$k$+$b$7(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
437 $B$l$J$$!%(B\hgcmd{log}$B%3%^%s%I$N(B\hggopt{-v}$B!J$^$?$O(B\hggopt{--verbose}$B!K%*%W(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
438 $B%7%g%s$G$h$j>\:Y$J>pJs$r8+$k$3$H$,$G$-$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
439 \interaction{tour.log-v} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
440 |
785 | 441 %If you want to see both the description and content of a change, add |
442 %the \hgopt{log}{-p} (or \hgopt{log}{--patch}) option. This displays | |
443 %the content of a change as a \emph{unified diff} (if you've never seen | |
444 %a unified diff before, see section~\ref{sec:mq:patch} for an overview). | |
445 %\interaction{tour.log-vp} | |
91 | 446 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
447 $B@bL@$HJQ99$NFbMF$NN>J}$r8+$?$$>l9g$O(B\hgopt{log}{-p}$B!J$^$?$O(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
448 \hgopt{log}{--patch}$B!K%*%W%7%g%s$rDI2C$9$k!%$3$N%*%W%7%g%s$OJQ99$NFbMF$r(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
449 \emph{unified diff}$B7A<0$GI=<($9$k!%!J(Bunified diff$B7A<0$r8+$?$3$H$,$J$1$l(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
450 $B$P35N,$r(B\ref{sec:mq:patch}$B@a$G8+$k$3$H$,$G$-$k!%!K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
451 \interaction{tour.log-vp} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
452 |
783 | 453 %\section{All about command options} |
454 \section{$B%3%^%s%I%*%W%7%g%s$N$9$Y$F(B} | |
91 | 455 |
785 | 456 %Let's take a brief break from exploring Mercurial commands to discuss |
457 %a pattern in the way that they work; you may find this useful to keep | |
458 %in mind as we continue our tour. | |
91 | 459 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
460 Mercurial$B%3%^%s%I$r;n$9$N$r0l5Y$_$7$F!$%3%^%s%I$NF0:n%Q%?!<%s$K$D$$$F5D(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
461 $BO@$7$F$_$h$&!%$3$l$O$3$N%D%"!<$rB3$1$k>e$GLr$KN)$D$@$m$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
462 |
785 | 463 %Mercurial has a consistent and straightforward approach to dealing |
464 %with the options that you can pass to commands. It follows the | |
465 %conventions for options that are common to modern Linux and Unix | |
466 %systems. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
467 Mercurial$B$O%3%^%s%I$K%*%W%7%g%s$rEO$9:]$K0l4S@-$N$"$kD>@\E*$J%"%W%m!<%A$r(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
468 $B<h$C$F$$$k!%$3$l$O8=Be$N(BLinux$B$*$h$S(BUnix$B$K6&DL$N%*%W%7%g%s$K4X$9$k=,47$K4p(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
469 $B$E$$$F$$$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
470 \begin{itemize} |
785 | 471 %\item Every option has a long name. For example, as we've already |
472 % seen, the \hgcmd{log} command accepts a \hgopt{log}{--rev} option. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
473 \item $BA4$F$N%*%W%7%g%s$OD97A<0$N%*%W%7%g%s$r;}$D!%Nc$($P!$$9$G$K8+$F$$$k(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
474 $B$h$&$K(B\hgcmd{log}$B%3%^%s%I$O(B\hgopt{log}{--rev}$B%*%W%7%g%s$r<u$1IU$1(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
475 $B$k!%(B |
785 | 476 %\item Most options have short names, too. Instead of |
477 % \hgopt{log}{--rev}, we can use \hgopt{log}{-r}. (The reason that | |
478 % some options don't have short names is that the options in question | |
479 % are rarely used.) | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
480 \item $B$[$H$s$I$N%*%W%7%g%s$OC;=LL>$r;}$D!%(B\hgopt{log}{--rev}$B%*%W%7%g%s$N(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
481 $BBe$o$j$K(B\hgopt{log}{-r}$B$,;H$($k!%!J$$$/$D$+$N%*%W%7%g%s$GC;=LL>$,(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
482 $B;H$($J$$M}M3$O!$$=$N%*%W%7%g%s$,$[$H$s$I;HMQ$5$l$J$$$?$a$G$"$k!%!K(B |
785 | 483 %\item Long options start with two dashes (e.g.~\hgopt{log}{--rev}), |
484 % while short options start with one (e.g.~\hgopt{log}{-r}). | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
485 \item $BD97A<0$N%*%W%7%g%s$O(B2$B$D$N%@%C%7%e$G;O$^$k!JNc(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
486 ~\hgopt{log}{--rev}$B!K!%0lJ}C;7A<0$N%*%W%7%g%s$O(B1$B$D$N%@%C%7%e$G;O$^(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
487 $B$k!JNc(B ~\hgopt{log}{-r}$B!K!%(B |
785 | 488 %\item Option naming and usage is consistent across commands. For |
489 % example, every command that lets you specify a changeset~ID or | |
490 % revision number accepts both \hgopt{log}{-r} and \hgopt{log}{--rev} | |
491 % arguments. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
492 \item $B%*%W%7%g%s$NL?L>$H;HMQK!$O%3%^%s%I4V$G0l4S$7$F$$$k!%Nc$r5s$2$k$H!$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
493 $B%A%'%s%8%;%C%H(BID$B$^$?$O%j%S%8%g%sHV9f$r;XDj$5$;$k%3%^%s%I$NA4$F$G(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
494 \hgopt{log}{-r}$B$H(B\hgopt{log}{--rev}$B$NN>J}$r<u$1IU$1$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
495 \end{itemize} |
785 | 496 %In the examples throughout this book, I use short options instead of |
497 %long. This just reflects my own preference, so don't read anything | |
498 %significant into it. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
499 $B$3$NK\$NNc$NA4$F$GC;7A<0$N%*%W%7%g%s$rMQ$$$k!%$3$l$OC1$KI.<T$N9%$_$N$?$a(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
500 $B$G!$?<$$0UL#$O$J$$!%(B |
91 | 501 |
785 | 502 %Most commands that print output of some kind will print more output |
503 %when passed a \hggopt{-v} (or \hggopt{--verbose}) option, and less | |
504 %when passed \hggopt{-q} (or \hggopt{--quiet}). | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
505 $BI=<(=PNO$r9T$&$[$H$s$I$N%3%^%s%I$G(B\hggopt{-v}$B!J$^$?$O(B\hggopt{--verbose}$B!K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
506 $B%*%W%7%g%s$rIU$1$k$H$h$j>\:Y$J=PNO$r9T$$!$(B\hggopt{-q}$B!J$^$?$O(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
507 \hggopt{--quiet}$B!K%*%W%7%g%s$rIU$1$k$H$h$j4J7i$J=PNO$H$J$k!%(B |
91 | 508 |
783 | 509 %\section{Making and reviewing changes} |
510 \section{$BJQ99$N;EJ}!$JQ99$N%l%S%e!<(B} | |
91 | 511 |
785 | 512 %Now that we have a grasp of viewing history in Mercurial, let's take a |
513 %look at making some changes and examining them. | |
91 | 514 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
515 Mercurial$B$GMzNr$r8+$kJ}K!$K$D$$$F$OM}2r$7$?!%$3$3$G$O2?$+JQ99$r9T$C$F!$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
516 $B$3$l$r8+$F$_$h$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
517 |
785 | 518 %The first thing we'll do is isolate our experiment in a repository of |
519 %its own. We use the \hgcmd{clone} command, but we don't need to | |
520 %clone a copy of the remote repository. Since we already have a copy | |
521 %of it locally, we can just clone that instead. This is much faster | |
522 %than cloning over the network, and cloning a local repository uses | |
523 %less disk space in most cases, too. | |
524 %\interaction{tour.reclone} | |
525 %As an aside, it's often good practice to keep a ``pristine'' copy of a | |
526 %remote repository around, which you can then make temporary clones of | |
527 %to create sandboxes for each task you want to work on. This lets you | |
528 %work on multiple tasks in parallel, each isolated from the others | |
529 %until it's complete and you're ready to integrate it back. Because | |
530 %local clones are so cheap, there's almost no overhead to cloning and | |
531 %destroying repositories whenever you want. | |
91 | 532 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
533 $B$^$::G=i$K$3$N<B83$rK\Mh$N%j%]%8%H%j$+$i3VN%$9$k$?$a$K(B\hgcmd{clone}$B$r9T(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
534 $B$&!%$9$G$K%m!<%+%k$J%j%]%8%H%j$r;}$C$F$$$k$N$G!$$3$l$r%/%m!<%s$9$k$@$1$G(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
535 $B$h$/!$%j%b!<%H$N%j%]%8%H%j$r%3%T!<$9$kI,MW$O$J$$!%%m!<%+%k$J%/%m!<%s$O%M%C(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
536 $B%H%o!<%/1[$7$K9T$&%/%m!<%s$h$j$b$:$C$HB.$/!$B?$/$N>l9g;HMQ$9$k%G%#%9%/MF(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
537 $BNL$b>/$J$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
538 \interaction{tour.reclone} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
539 $B$^$?!$2?$+:n6H$r$7$?$$;~$K%5%s%I%\%C%/%9$H$9$k$?$a$K0l;~E*$J%/%m!<%s$r:n(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
540 $B@.$7!$%j%b!<%H%j%]%8%H%j$N%3%T!<$r(B``$B@67i(B''$B$KJ]$D$3$H$O$7$P$7$PLr$KN)$D!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
541 $B$3$l$K$h$jJ#?t$N:n6H$rJB9T$7$F9T$&$3$H$,$G$-!$$+$D!$:n6H$,40N;$7!$:F$SE}(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
542 $B9g$9$k$^$GB>$N:n6H$+$i3VN%$5$l$?$^$^$K$7$F$*$/$3$H$,$G$-$k!%%j%]%8%H%j$N(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
543 $B%m!<%+%k%/%m!<%s$O$H$F$b<j7Z$G!$%/%m!<%s$HGQ4~$K$[$H$s$I%*!<%P%X%C%I$,$J(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
544 $B$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
545 |
785 | 546 %In our \dirname{my-hello} repository, we have a file |
547 %\filename{hello.c} that contains the classic ``hello, world'' program. | |
548 %Let's use the ancient and venerable \command{sed} command to edit this | |
549 %file so that it prints a second line of output. (I'm only using | |
550 %\command{sed} to do this because it's easy to write a scripted example | |
551 %this way. Since you're not under the same constraint, you probably | |
552 %won't want to use \command{sed}; simply use your preferred text editor to | |
553 %do the same thing.) | |
554 %\interaction{tour.sed} | |
91 | 555 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
556 \dirname{my-hello}$B%j%]%8%H%jFb$K$O%/%i%7%C%/$J(B``hello, world''$B%W%m%0%i%`(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
557 $B$G$"$k(B\filename{hello.c}$B$,$"$k!%8E$/$5$/?987$J(B\command{sed}$B$rMQ$$$F(B2$B9TL\(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
558 $B$N=PNO$r9T$&$h$&$KJQ99$9$k!%!J(B\command{sed}$B$r;H$&$N$O%9%/%j%W%H$K$h$kNc$r(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
559 $B:n$k$N$,4JC1$@$+$i$K2a$.$J$$!%FI<T$^$G(B\command{sed}$B$r;H$&I,MW$O$J$/!$9%$-(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
560 $B$J%F%-%9%H%(%G%#%?$GJT=8$7$F$h$$!%!K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
561 \interaction{tour.sed} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
562 |
785 | 563 %Mercurial's \hgcmd{status} command will tell us what Mercurial knows |
564 %about the files in the repository. | |
565 %\interaction{tour.status} | |
566 %The \hgcmd{status} command prints no output for some files, but a line | |
567 %starting with ``\texttt{M}'' for \filename{hello.c}. Unless you tell | |
568 %it to, \hgcmd{status} will not print any output for files that have | |
569 %not been modified. | |
91 | 570 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
571 $B%j%]%8%H%jFb$N%U%!%$%k$KBP$7$F(BMercurial$B$,GD0.$7$F$$$kFbMF$r(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
572 \hgcmd{status}$B%3%^%s%I$G8+$k$3$H$,$G$-$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
573 \interaction{tour.status} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
574 \hgcmd{status}$B%3%^%s%I$O$$$/$D$+$N%U%!%$%k$KBP$7$F$O=PNO$r9T$o$J$$$,!$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
575 \filename{hello.c}$B$KBP$7$F(B``\texttt{M}''$B$rI=<($9$k!%FC$K;X<($r$7$J$$>l(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
576 $B9g!$(B\hgcmd{status}$B%3%^%s%I$OJQ99$5$l$F$$$J$$%U%!%$%k$KBP$7$F$O2?$b=PNO$7(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
577 $B$J$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
578 |
785 | 579 %The ``\texttt{M}'' indicates that Mercurial has noticed that we |
580 %modified \filename{hello.c}. We didn't need to \emph{inform} | |
581 %Mercurial that we were going to modify the file before we started, or | |
582 %that we had modified the file after we were done; it was able to | |
583 %figure this out itself. | |
91 | 584 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
585 ``\texttt{M}''$B$N0UL#$O!$(B\filename{hello.c}$B$KBP$7$F9T$o$l$?JQ99$r(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
586 Mercurial$B$,GD0.$7$?$H$$$&$3$H$G$"$k!%%U%!%$%k$NJQ99A0$K(BMercurial$B$K$3$l$+(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
587 $B$iJQ99$9$k%U%!%$%k$rEPO?$9$kI,MW$O$J$$$7!$JQ998e$K9T$&I,MW$b$J$$!%JQ99$5(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
588 $B$l$?%U%!%$%k$NH/8+$O<+F0E*$K9T$o$l$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
589 |
785 | 590 %It's a little bit helpful to know that we've modified |
591 %\filename{hello.c}, but we might prefer to know exactly \emph{what} | |
592 %changes we've made to it. To do this, we use the \hgcmd{diff} | |
593 %command. | |
594 %\interaction{tour.diff} | |
91 | 595 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
596 \filename{hello.c}$B$rJT=8$7$?$3$H$,J,$+$k$N$OB?>/Lr$KN)$D$,!$CN$j$?$$$N$O(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
597 $B$`$7$m(B\emph{$B2?$r(B}$BJQ99$7$?$N$+$G$"$k!%(B\hgcmd{diff}$B%3%^%s%I$r;H$($P$3$l$rCN(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
598 $B$k$3$H$,$G$-$k!%(B \interaction{tour.diff} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
599 |
783 | 600 %\section{Recording changes in a new changeset} |
601 \section{$B?7$?$J%A%'%s%8%;%C%H$XJQ99$r5-O?$9$k(B} | |
91 | 602 |
785 | 603 %We can modify files, build and test our changes, and use |
604 %\hgcmd{status} and \hgcmd{diff} to review our changes, until we're | |
605 %satisfied with what we've done and arrive at a natural stopping point | |
606 %where we want to record our work in a new changeset. | |
91 | 607 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
608 $B%U%!%$%k$rJQ99$7!$%S%k%I$H%F%9%H$r9T$$!$(B\hgcmd{status}$B$H(B\hgcmd{diff}$B$r;H$C(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
609 $B$FJQ99$N%l%S%e!<$r9T$$!$5$$N:Q$`$H$3$m$^$G$3$l$r7+JV$7!$;E;v$N7k2L$r?7$?(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
610 $B$J%A%'%s%8%;%C%H$K5-O?$9$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
611 |
785 | 612 %The \hgcmd{commit} command lets us create a new changeset; we'll |
613 %usually refer to this as ``making a commit'' or ``committing''. | |
91 | 614 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
615 $B?7$?$J%A%'%s%8%;%C%H$r:n@.$9$k$K$O(B\hgcmd{commit}$B%3%^%s%I$r;H$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
616 $B$3$NA`:n$r$h$/(B``$B%3%_%C%H$9$k(B''$B$H$+(B``$B%3%_%C%H(B''$B$H8F$V!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
617 |
783 | 618 %\subsection{Setting up a username} |
619 \subsection{$B%f!<%6L>$r@_Dj$9$k(B} | |
102 | 620 |
785 | 621 %When you try to run \hgcmd{commit} for the first time, it is not |
622 %guaranteed to succeed. Mercurial records your name and address with | |
623 %each change that you commit, so that you and others will later be able | |
624 %to tell who made each change. Mercurial tries to automatically figure | |
625 %out a sensible username to commit the change with. It will attempt | |
626 %each of the following methods, in order: | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
627 |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
628 $B:G=i$K(B\hgcmd{commit}$B$r<B9T$9$k>l9g!$<B9T$,@.8y$9$k$+$I$&$+$OJ]>Z$5$l$F$$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
629 $B$J$$!%$9$Y$F$N%3%_%C%H$G(BMercurial$B$O%f!<%6$NL>A0$H%"%I%l%9$r5-O?$7!$8e$GC/(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
630 $B$,$=$NJQ99$r9T$C$?$N$+J,$+$k$h$&$K$7$F$$$k!%(B Mercurial$B$OJQ99$r%3%_%C%H$9(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
631 $B$k:]$K<+F0E*$KBEEv$J%f!<%6L>$rIU$1$h$&$H$9$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
632 $B%f!<%6L>$N?dB,$O0J2<$N$h$&$J=g=x$G9T$o$l$k!'(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
633 \begin{enumerate} |
785 | 634 %\item If you specify a \hgopt{commit}{-u} option to the \hgcmd{commit} |
635 % command on the command line, followed by a username, this is always | |
636 % given the highest precedence. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
637 \item \hgcmd{commit}$B%3%^%s%I$K(B\hgopt{commit}{-u}$B%*%W%7%g%s$H%f!<%6L>$rIU(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
638 $B$1$?>l9g!$$3$l$,:G$bM%@h$5$l$k!%(B |
785 | 639 %\item If you have set the \envar{HGUSER} environment variable, this is |
640 % checked next. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
641 \item $B4D6-JQ?t(B\envar{HGUSER}$B$r@_Dj$7$F$$$k>l9g$O<!$K$3$l$,;2>H$5$l$k!%(B |
785 | 642 %\item If you create a file in your home directory called |
643 % \sfilename{.hgrc}, with a \rcitem{ui}{username} entry, that will be | |
644 % used next. To see what the contents of this file should look like, | |
645 % refer to section~\ref{sec:tour-basic:username} below. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
646 \item $B%[!<%`%G%#%l%/%H%j$K(B\sfilename{.hgrc}$B%U%!%$%k$r:n$C$F$$$k>l(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
647 $B9g!$(B\rcitem{ui}{username}$B%(%s%H%j$,<!$K;2>H$5$l$k!%$3$N%U%!%$%k$N(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
648 $BFbMF$O(B\ref{sec:tour-basic:username}$B@a$G@bL@$7$F$$$k!%(B |
785 | 649 %\item If you have set the \envar{EMAIL} environment variable, this |
650 % will be used next. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
651 \item $B4D6-JQ?t(B\envar{EMAIL}$B$r@_Dj$7$F$$$k$J$i<!$K$3$l$,;2>H$5$l$k!%(B |
785 | 652 %\item Mercurial will query your system to find out your local user |
653 % name and host name, and construct a username from these components. | |
654 % Since this often results in a username that is not very useful, it | |
655 % will print a warning if it has to do this. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
656 \item Mercurial$B$O%7%9%F%`$K%m!<%+%k%f!<%6L>$H%[%9%HL>$rLd$$9g$o$;!$$3$l(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
657 $B$i$+$i%3%_%C%H%f!<%6L>$r9=@.$9$k!%$3$N%f!<%6L>$OLr$KN)$?$J$$$3$H$,(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
658 $BB?$$$?$a!$$3$NJ}K!$r;H$C$?>l9g$O7Y9p%a%C%;!<%8$,I=<($5$l$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
659 \end{enumerate} |
785 | 660 %If all of these mechanisms fail, Mercurial will fail, printing an |
661 %error message. In this case, it will not let you commit until you set | |
662 %up a username. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
663 $B$3$l$i$N%a%+%K%:%`$N$9$Y$F$,<:GT$7$?>l9g!$(BMercurial$B$O%(%i!<%a%C%;!<%8$r(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
664 $BI=<($7$F<B9T$rCGG0$9$k!%$3$N>l9g!$%f!<%6L>$r@_Dj$9$k$^$G%3%_%C%H$9$k$3$H(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
665 $B$O$G$-$J$$!%(B |
102 | 666 |
785 | 667 %You should think of the \envar{HGUSER} environment variable and the |
668 %\hgopt{commit}{-u} option to the \hgcmd{commit} command as ways to | |
669 %\emph{override} Mercurial's default selection of username. For normal | |
670 %use, the simplest and most robust way to set a username for yourself | |
671 %is by creating a \sfilename{.hgrc} file; see below for details. | |
102 | 672 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
673 $B4D6-JQ?t(B\envar{HGUSER}$B$H(B\hgcmd{commit}$B%3%^%s%I$N(B\hgopt{commit}{-u}$B%*%W%7%g(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
674 $B%s$O!$(BMercurial$B$,%G%U%)%k%H$G@_Dj$9$k%f!<%6L>$r(B\emph{$B%*!<%P%i%$%I(B}$B$9$kJ}(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
675 $BK!$@$H9M$($k$H$h$$!%DL>o$NMxMQK!$G%f!<%6L>$r@_Dj$9$k:G$b4JC1$G:G$b4h6/$J(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
676 $BJ}K!$O(B\sfilename{.hgrc}$B%U%!%$%k$r:n@.$9$k$3$H$G$"$k!%$3$N$d$jJ}$K$D$$$F<!(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
677 $B$K=R$Y$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
678 |
783 | 679 %\subsubsection{Creating a Mercurial configuration file} |
680 \subsubsection{Mercurial$B$N@_Dj%U%!%$%k$r:n@.$9$k(B} | |
174
ef6a1427d0af
Update tour info more usefully.
Bryan O'Sullivan <bos@serpentine.com>
parents:
158
diff
changeset
|
681 \label{sec:tour-basic:username} |
102 | 682 |
785 | 683 %To set a user name, use your favourite editor to create a file called |
684 %\sfilename{.hgrc} in your home directory. Mercurial will use this | |
685 %file to look up your personalised configuration settings. The initial | |
686 %contents of your \sfilename{.hgrc} should look like this. | |
687 %\begin{codesample2} | |
688 % # This is a Mercurial configuration file. | |
689 % [ui] | |
690 % username = Firstname Lastname <email.address@domain.net> | |
691 %\end{codesample2} | |
692 %The ``\texttt{[ui]}'' line begins a \emph{section} of the config file, | |
693 %so you can read the ``\texttt{username = ...}'' line as meaning ``set | |
694 %the value of the \texttt{username} item in the \texttt{ui} section''. | |
695 %A section continues until a new section begins, or the end of the | |
696 %file. Mercurial ignores empty lines and treats any text from | |
697 %``\texttt{\#}'' to the end of a line as a comment. | |
102 | 698 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
699 $B%f!<%6L>$r@_Dj$9$k$K$O9%$_$N%(%G%#%?$G%[!<%`%G%#%l%/%H%j$K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
700 \sfilename{.hgrc}$B$H$$$&%U%!%$%k$r:n@.$9$k!%(B Mercurial$B$O$3$N%U%!%$%k$+$i8D(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
701 $B?M@_Dj$r<hF@$7!$;HMQ$9$k!%(B\sfilename{.hgrc}$B%U%!%$%k$N:G=i$NFbMF$O0J2<$N$h(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
702 $B$&$J=q<0$K$9$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
703 \begin{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
704 # This is a Mercurial configuration file. |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
705 [ui] |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
706 username = Firstname Lastname <email.address@domain.net> |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
707 \end{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
708 ``\texttt{[ui]}''$B$N9T$G@_Dj%U%!%$%k$N(B\emph{$B%;%/%7%g%s(B}$B$,;O$^$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
709 ``\texttt{username = ...}''$B$N9T$O(B``\texttt{ui}$B%;%/%7%g%s$N(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
710 \texttt{username}$B9`L\$NCM$r@_Dj$9$k(B''$B$HFI$`$3$H$,$G$-$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
711 $B%;%/%7%g%s$O?7$?$JJL$N%;%/%7%g%s$,;O$^$k$+!$%U%!%$%k$,=*N;$9$k$^$GB3(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
712 $B$/!%(BMercurial$B$O6u9T$rL5;k$7!$(B``\texttt{\#}''$B$+$i9TKv$^$G$r%3%a%s%H$H$7$F(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
713 $B07$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
714 |
783 | 715 %\subsubsection{Choosing a user name} |
716 \subsubsection{$B%f!<%6L>$rA*$V(B} | |
102 | 717 |
785 | 718 %You can use any text you like as the value of the \texttt{username} |
719 %config item, since this information is for reading by other people, | |
720 %but for interpreting by Mercurial. The convention that most people | |
721 %follow is to use their name and email address, as in the example | |
722 %above. | |
102 | 723 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
724 \texttt{username}$B$N@_Dj$K;HMQ$9$kJ8;zNs$O!$$3$l$,(BMercurial$B$K$h$C$F=hM}$5(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
725 $B$l$k$H$$$&E@$r=|$1$P!$C1$KB>$N%f!<%6$,FI$`$H$$$&$@$1$N>pJs$G$"$k$3$H$+(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
726 $B$i!$$I$N$h$&$JJ8;zNs$G$b9=$o$J$$!%B?$/$N%f!<%6$,=>$&=,47$O!$>e$NNc$N$h$&(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
727 $B$KL>A0$H(Bemail$B%"%I%l%9$r;H$&$b$N$G$"$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
728 |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
729 \begin{note} |
785 | 730 % Mercurial's built-in web server obfuscates email addresses, to make |
731 % it more difficult for the email harvesting tools that spammers use. | |
732 % This reduces the likelihood that you'll start receiving more junk | |
733 % email if you publish a Mercurial repository on the web. | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
734 Mercurial$B$NAH$_9~$_%&%'%V%5!<%P$O(Bemail$B%"%I%l%9$r%9%Q%^!<$,;H$&(Bemail$B<}=&%D!<(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
735 $B%k$K=&$o$lFq$/$9$k$h$&$K2~JQ$7!$(BMercurial$B%j%]%8%H%j$r%&%'%V$G8x3+$7$F$b%9(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
736 $B%Q%`$r<u$1<h$jFq$/$7$F$$$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
737 \end{note} |
102 | 738 |
783 | 739 %\subsection{Writing a commit message} |
740 \subsection{$B%3%_%C%H%a%C%;!<%8$r=q$/(B} | |
91 | 741 |
785 | 742 %When we commit a change, Mercurial drops us into a text editor, to |
743 %enter a message that will describe the modifications we've made in | |
744 %this changeset. This is called the \emph{commit message}. It will be | |
745 %a record for readers of what we did and why, and it will be printed by | |
746 %\hgcmd{log} after we've finished committing. | |
747 %\interaction{tour.commit} | |
91 | 748 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
749 $BJQ99$r%3%_%C%H$9$k;~!$(BMercurial$B$O%A%'%s%8%;%C%H$G9T$C$?JQ99$K$D$$$F@bL@$9(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
750 $B$k%a%C%;!<%8$rF~NO$5$;$k$?$a$K%F%-%9%H%(%G%#%?$r5/F0$9$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
751 $B$3$l$O(B\emph{$B%3%_%C%H%a%C%;!<%8(B}$B$H8F$P$l$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
752 $B$3$l$O2?$r$J$<JQ99$7$?$N$+FI$_<j$KEA$($k$b$N$G!$%3%_%C%H40N;8e$K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
753 \hgcmd{log}$B$GI=<($9$k$3$H$,$G$-$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
754 \interaction{tour.commit} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
755 |
785 | 756 %The editor that the \hgcmd{commit} command drops us into will contain |
757 %an empty line, followed by a number of lines starting with | |
758 %``\texttt{HG:}''. | |
759 %\begin{codesample2} | |
760 % \emph{empty line} | |
761 % HG: changed hello.c | |
762 %\end{codesample2} | |
763 %Mercurial ignores the lines that start with ``\texttt{HG:}''; it uses | |
764 %them only to tell us which files it's recording changes to. Modifying | |
765 %or deleting these lines has no effect. | |
91 | 766 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
767 \hgcmd{commit}$B%3%^%s%I$,5/F0$9$k%(%G%#%?$O!$6u9T$H(B``\texttt{HG:}''$B$G;O$^(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
768 $B$k?t9T$r$9$G$K4^$s$G$$$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
769 \begin{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
770 \emph{empty line} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
771 HG: changed hello.c |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
772 \end{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
773 Mercurial$B$O(B``\texttt{HG:}''$B$G;O$^$k9T$rL5;k$9$k!%$3$l$i$N9T$O$I$N%U%!%$%k(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
774 $B$X$NJQ99$J$N$+$r%f!<%6$KEA$($k$@$1$NL\E*$GB8:_$9$k!%$3$l$i$N9T$rJQ99$7$?(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
775 $B$j>C5n$7$?$j$7$F$b2?$N1F6A$bM?$($J$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
776 |
783 | 777 %\subsection{Writing a good commit message} |
778 \subsection{$B$h$$%3%_%C%H%a%C%;!<%8$N=q$-J}(B} | |
91 | 779 |
785 | 780 %Since \hgcmd{log} only prints the first line of a commit message by |
781 %default, it's best to write a commit message whose first line stands | |
782 %alone. Here's a real example of a commit message that \emph{doesn't} | |
783 %follow this guideline, and hence has a summary that is not readable. | |
784 %\begin{codesample2} | |
785 % changeset: 73:584af0e231be | |
786 % user: Censored Person <censored.person@example.org> | |
787 % date: Tue Sep 26 21:37:07 2006 -0700 | |
788 % summary: include buildmeister/commondefs. Add an exports and install | |
789 %\end{codesample2} | |
91 | 790 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
791 $B%G%U%)%k%H$G$O(B\hgcmd{log}$B$O%3%_%C%H%a%C%;!<%8$N:G=i$N9T$7$+I=<($7$J$$$?$a(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
792 $B%3%_%C%H%a%C%;!<%8$N:G=i$N9T$O(B1$B9T$G407k$9$k$h$&$K=q$/$H$h$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
793 $B%,%$%I%i%$%s$K(B\emph{$B=>$o$J$$(B}$B$?$aFI$a$J$$%3%_%C%H%a%C%;!<%8$NNc$r<($9!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
794 \begin{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
795 changeset: 73:584af0e231be |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
796 user: Censored Person <censored.person@example.org> |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
797 date: Tue Sep 26 21:37:07 2006 -0700 |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
798 summary: include buildmeister/commondefs. Add an exports and install |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
799 \end{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
800 |
785 | 801 %As far as the remainder of the contents of the commit message are |
802 %concerned, there are no hard-and-fast rules. Mercurial itself doesn't | |
803 %interpret or care about the contents of the commit message, though | |
804 %your project may have policies that dictate a certain kind of | |
805 %formatting. | |
91 | 806 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
807 $B%3%_%C%H%a%C%;!<%8$N;D$j$NItJ,$K$O873J$J%k!<%k$O$J$$!%%W%m%8%'%/%H$G%U%)!<(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
808 $B%^%C%H$K4X$7$FMW5a$9$k%]%j%7!<$,$"$C$?$H$7$F$b!$(BMercurial$B$O%3%_%C%H%a%C%;!<(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
809 $B%8$rCfCG$7$?$j!$FCJL$NG[N8$r$9$k$3$H$O$J$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
810 |
785 | 811 %My personal preference is for short, but informative, commit messages |
812 %that tell me something that I can't figure out with a quick glance at | |
813 %the output of \hgcmdargs{log}{--patch}. | |
91 | 814 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
815 $B8D?ME*$K$O!$4J7i$+$D>pJs$,$"$j!$(B \hgcmdargs{log}{--patch}$B$r0l8+$7$?$@$1$G(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
816 $B$O$o$+$i$J$$ItJ,$K$D$$$F@bL@$7$?%3%_%C%H%a%C%;!<%8$,9%$_$G$"$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
817 |
783 | 818 %\subsection{Aborting a commit} |
819 \subsection{$B%3%_%C%H$rCf;_$9$k(B} | |
91 | 820 |
785 | 821 %If you decide that you don't want to commit while in the middle of |
822 %editing a commit message, simply exit from your editor without saving | |
823 %the file that it's editing. This will cause nothing to happen to | |
824 %either the repository or the working directory. | |
91 | 825 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
826 $B%3%_%C%H%a%C%;!<%8$rJT=8Cf$K%3%_%C%H$r<h$j;_$a$?$/$J$C$?;~$O!$JT=8Cf$N%U%!(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
827 $B%$%k$r%;!<%V$;$:$K%(%G%#%?$r=*N;$9$l$P$h$$!%$3$&$9$k$H%j%]%8%H%j$K$b%o!<(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
828 $B%-%s%0%G%#%l%/%H%j$K$b2?$b5/$-$J$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
829 |
785 | 830 %If we run the \hgcmd{commit} command without any arguments, it records |
831 %all of the changes we've made, as reported by \hgcmd{status} and | |
832 %\hgcmd{diff}. | |
91 | 833 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
834 \hgcmd{commit}$B%3%^%s%I$r0z?t$J$7$G<B9T$7$F$$$k>l9g!$(B\hgcmd{status}$B%3%^%s(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
835 $B%I$d(B\hgcmd{diff}$B%3%^%s%I$K8=$l$k$=$l$^$G$K9T$C$?JQ99$OJ]B8$5$l$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
836 |
783 | 837 %\subsection{Admiring our new handiwork} |
838 \subsection{$B?7$?$J:n6H$r>N;?$9$k(B} | |
91 | 839 |
785 | 840 %Once we've finished the commit, we can use the \hgcmd{tip} command to |
841 %display the changeset we just created. This command produces output | |
842 %that is identical to \hgcmd{log}, but it only displays the newest | |
843 %revision in the repository. | |
844 %\interaction{tour.tip} | |
845 %We refer to the newest revision in the repository as the tip revision, | |
846 %or simply the tip. | |
91 | 847 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
848 $B%3%_%C%H$N40N;8e!$(B\hgcmd{tip}$B%3%^%s%I$G:#:n@.$7$?%A%'%s%8%;%C%H$rCN$k$3$H(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
849 $B$,$G$-$k!%$3$N%3%^%s%I$N=PNO$O%j%]%8%H%j$N:G?7%j%S%8%g%s$N$_$rI=<($9$k$H(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
850 $B$$$&E@$r=|$1$P(B\hgcmd{log}$B$HA4$/F1$8$G$"$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
851 \interaction{tour.tip} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
852 $B%j%]%8%H%j$N:G?7%j%S%8%g%s$O(Btip$B%j%S%8%g%s$^$?$OC1$K(Btip$B$H8F$P$l$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
853 |
783 | 854 %\section{Sharing changes} |
855 \section{$BJQ99$r6&M-$9$k(B} | |
91 | 856 |
785 | 857 %We mentioned earlier that repositories in Mercurial are |
858 %self-contained. This means that the changeset we just created exists | |
859 %only in our \dirname{my-hello} repository. Let's look at a few ways | |
860 %that we can propagate this change into other repositories. | |
91 | 861 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
862 Mercurial$B$N%j%]%8%H%j$O<+8J=<B-E*$G$"$k$H$9$G$K=R$Y$?!%$D$^$j!$:#:n@.$7$?(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
863 $B%A%'%s%8%;%C%H$O(B\dirname{my-hello}$B%j%]%8%H%j$K$N$_B8:_$7$F$$$k!%$3$NJQ99(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
864 $B$rB>$N%j%]%8%H%j$KGH5Z$5$;$k$$$/$D$+$NJ}K!$r8+$F$_$h$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
865 |
783 | 866 %\subsection{Pulling changes from another repository} |
867 \subsection{$BB>$N%j%]%8%H%j$+$iJQ99$r(Bpull$B$9$k(B} | |
91 | 868 \label{sec:tour:pull} |
869 | |
785 | 870 %To get started, let's clone our original \dirname{hello} repository, |
871 %which does not contain the change we just committed. We'll call our | |
872 %temporary repository \dirname{hello-pull}. | |
873 %\interaction{tour.clone-pull} | |
91 | 874 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
875 $B;O$a$k$KEv$?$C$F!$:#%3%_%C%H$7$?JQ99$r4^$^$J$$%*%j%8%J%k$N(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
876 \dirname{hello}$B%j%]%8%H%j$r%/%m!<%s$9$k!%$3$N0l;~E*$J%j%]%8%H%j$r(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
877 \dirname{hello-pull}$B$H8F$V$3$H$K$9$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
878 \interaction{tour.clone-pull} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
879 |
785 | 880 %We'll use the \hgcmd{pull} command to bring changes from |
881 %\dirname{my-hello} into \dirname{hello-pull}. However, blindly | |
882 %pulling unknown changes into a repository is a somewhat scary | |
883 %prospect. Mercurial provides the \hgcmd{incoming} command to tell us | |
884 %what changes the \hgcmd{pull} command \emph{would} pull into the | |
885 %repository, without actually pulling the changes in. | |
886 %\interaction{tour.incoming} | |
887 %(Of course, someone could cause more changesets to appear in the | |
888 %repository that we ran \hgcmd{incoming} in, before we get a chance to | |
889 %\hgcmd{pull} the changes, so that we could end up pulling changes that we | |
890 %didn't expect.) | |
91 | 891 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
892 \hgcmd{pull}$B%3%^%s%I$GJQ99$r(B\dirname{my-hello}$B$+$i(B\dirname{hello-pull}$B$K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
893 $B<h$j9~$`!%L$CN$NJQ99$rLUL\E*$K%j%]%8%H%j$K(Bpull$B$9$k$3$H$O>/!962$m$7(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
894 $B$$!%(BMercurial$B$K$O(B\hgcmd{pull}$B%3%^%s%I$G$I$N$h$&$JJQ99$,%j%]%8%H%j$K<h$j9~(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
895 $B$^$l$k$N$+$r<B:]$K$O(Bpull$B$9$k$3$H$J$/I=<($9$k(B\hgcmd{incoming}$B%3%^%s%I$,$"(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
896 $B$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
897 \interaction{tour.incoming} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
898 $B!J$b$A$m$s(B\hgcmd{incoming}$B$r<B9T$7$F$+$i<B:]$K(B\hgcmd{pull}$B$9$k$^$G$N4V$K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
899 $BC/$+$,?7$?$J%A%'%s%8%;%C%H$rDI2C$7!$$=$N7k2L!$M=4|$7$J$$%A%'%s%8%;%C%H$r(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
900 pull$B$7$F$7$^$&2DG=@-$O$"$k!%!K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
901 |
785 | 902 %Bringing changes into a repository is a simple matter of running the |
903 %\hgcmd{pull} command, and telling it which repository to pull from. | |
904 %\interaction{tour.pull} | |
905 %As you can see from the before-and-after output of \hgcmd{tip}, we | |
906 %have successfully pulled changes into our repository. There remains | |
907 %one step before we can see these changes in the working directory. | |
91 | 908 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
909 $BJQ99$r%j%]%8%H%j$K<h$j9~$`$N$O!$<h$j9~$_85$N%j%]%8%H%j$r;XDj$7$F(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
910 \hgcmd{pull}$B%3%^%s%I$r<B9T$9$k$@$1$N%7%s%W%k$JA`:n$G$"$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
911 \interaction{tour.pull} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
912 pull$B$NA08e$N(B\hgcmd{tip}$B=PNO$G%j%]%8%H%j$X$NJQ99$N<h$j9~$_$K@.8y$7$?$+$I$&(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
913 $B$+$,$o$+$k!%%o!<%-%s%0%G%#%l%/%H%j$KJQ99$rH?1G$5$;$k$K$O$b$&(B1$B%9%F%C%W$,I,(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
914 $BMW$G$"$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
915 |
783 | 916 %\subsection{Updating the working directory} |
917 \subsection{$B%o!<%-%s%0%G%#%l%/%H%j$r99?7$9$k(B} | |
91 | 918 |
785 | 919 %We have so far glossed over the relationship between a repository and |
920 %its working directory. The \hgcmd{pull} command that we ran in | |
921 %section~\ref{sec:tour:pull} brought changes into the repository, but | |
922 %if we check, there's no sign of those changes in the working | |
923 %directory. This is because \hgcmd{pull} does not (by default) touch | |
924 %the working directory. Instead, we use the \hgcmd{update} command to | |
925 %do this. | |
926 %\interaction{tour.update} | |
91 | 927 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
928 $B$3$3$^$G$O%j%]%8%H%j$H%o!<%-%s%0%G%#%l%/%H%j$N4X78$r$"$^$jL@3N$K$;$:$KMh(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
929 $B$?!%(B \ref{sec:tour:pull}$B@a$G(B\hgcmd{pull}$B%3%^%s%I$r;H$C$FJQ99$r%j%]%8%H%j(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
930 $B$K<h$j9~$s$@$,!$Cm0U?<$/8+$k$H!$$=$l$i$NJQ99$O%o!<%-%s%0%G%#%l%/%H%j$KH?(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
931 $B1G$5$l$F$$$J$+$C$?!%$3$l$O!$(B\hgcmd{pull}$B%3%^%s%I$O!J%G%U%)%k%H$G$O!K%o!<(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
932 $B%-%s%0%G%#%l%/%H%j$K<j$rIU$1$J$$$?$a$G$"$k!%%o!<%-%s%0%G%#%l%/%H%j$rA`:n(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
933 $B$9$k$?$a$K$O(B\hgcmd{update}$B%3%^%s%I$r;H$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
934 \interaction{tour.update} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
935 |
785 | 936 %It might seem a bit strange that \hgcmd{pull} doesn't update the |
937 %working directory automatically. There's actually a good reason for | |
938 %this: you can use \hgcmd{update} to update the working directory to | |
939 %the state it was in at \emph{any revision} in the history of the | |
940 %repository. If you had the working directory updated to an old | |
941 %revision---to hunt down the origin of a bug, say---and ran a | |
942 %\hgcmd{pull} which automatically updated the working directory to a | |
943 %new revision, you might not be terribly happy. | |
91 | 944 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
945 \hgcmd{pull}$B$,%o!<%-%s%0%G%#%l%/%H%j$r<+F0E*$K99?7$7$J$$$N$O$$$5$5$+4qL/(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
946 $B$K8+$($k$+$b$7$l$J$$!%$7$+$7$3$l$K$O$A$c$s$H$7$?M}M3$,$"$k!%%o!<%-%s%0%G%#(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
947 $B%l%/%H%j$O(B\hgcmd{update}$B$G%j%]%8%H%j$N$$$+$J$k%P!<%8%g%s$K$b99?7$G$-$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
948 $B%P%0$N860x$rC5$k$?$a$K%o!<%-%s%0%G%#%l%/%H%j$r8E$$%j%S%8%g%s$K$7$F$$$k;~!$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
949 \hgcmd{pull}$B$r<B9T$7$?$?$a$K%o!<%-%s%0%G%#%l%/%H%j$,:G?7$N%j%S%8%g%s$K$J$C(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
950 $B$?$H$7$?$i!$<u$1$kHo32$O>/$J$/$J$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
951 |
785 | 952 %However, since pull-then-update is such a common thing to do, |
953 %Mercurial lets you combine the two by passing the \hgopt{pull}{-u} | |
954 %option to \hgcmd{pull}. | |
955 %\begin{codesample2} | |
956 % hg pull -u | |
957 %\end{codesample2} | |
958 %If you look back at the output of \hgcmd{pull} in | |
959 %section~\ref{sec:tour:pull} when we ran it without \hgopt{pull}{-u}, | |
960 %you can see that it printed a helpful reminder that we'd have to take | |
961 %an explicit step to update the working directory: | |
962 %\begin{codesample2} | |
963 % (run 'hg update' to get a working copy) | |
964 %\end{codesample2} | |
91 | 965 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
966 $B$7$+$7$J$,$i!$!V(Bpull$B8e$K99?7!W$H$$$&A`:n$O$H$F$b$h$/9T$o$l$k$?$a!$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
967 \hgcmd{pull}$B%3%^%s%I$K$O$3$l$i(B2$B$D$NA`:n$r0lEY$K9T$&%*%W%7%g%s!$(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
968 \hgopt{pull}{-u}$B$,$"$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
969 \begin{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
970 hg pull -u |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
971 \end{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
972 \ref{sec:tour:pull}$B@a$G(B\hgopt{pull}{-u}$B%*%W%7%g%s$J$7$G<B9T$5$l$F$$$k(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
973 \hgcmd{pull}$B%3%^%s%I$N=PNO$r2~$a$F8+$F$_$k$H!$%o!<%-%s%0%G%#%l%/%H%j$r(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
974 $BL@<(E*$K99?7$7$J$1$l$P$J$i$J$$$3$H$r<($9(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
975 \begin{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
976 (run 'hg update' to get a working copy) |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
977 \end{codesample2} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
978 $B$H$$$&Cm0U=q$-$,$"$k$N$K5$$E$/!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
979 |
785 | 980 %To find out what revision the working directory is at, use the |
981 %\hgcmd{parents} command. | |
982 %\interaction{tour.parents} | |
983 %If you look back at figure~\ref{fig:tour-basic:history}, you'll see | |
984 %arrows connecting each changeset. The node that the arrow leads | |
985 %\emph{from} in each case is a parent, and the node that the arrow | |
986 %leads \emph{to} is its child. The working directory has a parent in | |
987 %just the same way; this is the changeset that the working directory | |
988 %currently contains. | |
101
321732566ac1
A few bits of terminological clarification.
Bryan O'Sullivan <bos@serpentine.com>
parents:
99
diff
changeset
|
989 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
990 $B%o!<%-%s%0%G%#%l%/%H%j$N8=:_$N%j%S%8%g%s$rD4$Y$k$K$O(B\hgcmd{parents}$B%3%^(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
991 $B%s%I$r;H$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
992 \interaction{tour.parents} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
993 $B?^(B~\ref{fig:tour-basic:history}$B$r8+D>$9$H!$3F!9$N%A%'%s%8%;%C%H$r7k$VLp0u(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
994 $B$,$"$k!%Lp0u$N=P$F$$$k$H$3$m$,?F$G!$Lp0u$,<($7$F$$$k$H$3$m$,;R$G$"$k!%%o!<(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
995 $B%-%s%0%G%#%l%/%H%j$OF1MM$K(B1$B$D$N?F$r;}$A!$$3$l$,%o!<%-%s%0%G%#%l%/%H%j$,8=(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
996 $B:_99?7$5$l$F$$$k%A%'%s%8%;%C%H$G$"$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
997 |
785 | 998 %To update the working directory to a particular revision, give a |
999 %revision number or changeset~ID to the \hgcmd{update} command. | |
1000 %\interaction{tour.older} | |
1001 %If you omit an explicit revision, \hgcmd{update} will update to the | |
1002 %tip revision, as shown by the second call to \hgcmd{update} in the | |
1003 %example above. | |
91 | 1004 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1005 $BFCDj$N%j%S%8%g%s$K%o!<%-%s%0%G%#%l%/%H%j$r99?7$9$k$?$a$K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1006 $B$O!$(B\hgcmd{update}$B%3%^%s%I$K%j%S%8%g%sHV9f$^$?$O%A%'%s%8%;%C%H(BID$B$rEO$9!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1007 \interaction{tour.older} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1008 $BL@<(E*$K%j%S%8%g%s$rEO$5$J$+$C$?>l9g!$>e$NNc$G(B2$B2sL\$N(B\hgcmd{update}$B$N<B9T(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1009 $B$N$h$&$K(B\hgcmd{update}$B%3%^%s%I$O%o!<%-%s%0%G%#%l%/%H%j$r(Btip$B%j%S%8%g%s$X99(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1010 $B?7$9$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1011 |
783 | 1012 %\subsection{Pushing changes to another repository} |
1013 \subsection{$BB>$N%j%]%8%H%j$KJQ99$r(Bpush$B$9$k(B} | |
92 | 1014 |
785 | 1015 %Mercurial lets us push changes to another repository, from the |
1016 %repository we're currently visiting. As with the example of | |
1017 %\hgcmd{pull} above, we'll create a temporary repository to push our | |
1018 %changes into. | |
1019 %\interaction{tour.clone-push} | |
1020 %The \hgcmd{outgoing} command tells us what changes would be pushed | |
1021 %into another repository. | |
1022 %\interaction{tour.outgoing} | |
1023 %And the \hgcmd{push} command does the actual push. | |
1024 %\interaction{tour.push} | |
1025 %As with \hgcmd{pull}, the \hgcmd{push} command does not update the | |
1026 %working directory in the repository that it's pushing changes into. | |
1027 %(Unlike \hgcmd{pull}, \hgcmd{push} does not provide a \texttt{-u} | |
1028 %option that updates the other repository's working directory.) | |
92 | 1029 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1030 Mercurial$B$G$O8=:_;HMQ$7$F$$$k%j%]%8%H%j$+$iB>$N%j%]%8%H%j$KJQ99$r(Bpush$B$9$k(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1031 $B$3$H$,$G$-$k!%A0=R$N(B\hgcmd{pull}$B%3%^%s%I$N$h$&$K!$0l;~E*$J%j%]%8%H%j$r:n$C(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1032 $B$F$=$3$KJQ99$r(Bpush$B$7$F$_$h$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1033 \interaction{tour.clone-push} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1034 $BB>$N%j%]%8%H%j$K(Bpush$B$5$l$kJQ99$O(B\hgcmd{outgoing}$B%3%^%s%I$GCN$k$3$H$,$G$-(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1035 $B$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1036 \interaction{tour.outgoing} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1037 \hgcmd{push}$B%3%^%s%I$G<B:]$K(Bpush$B$r9T$&!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1038 \interaction{tour.push} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1039 \hgcmd{pull}$B%3%^%s%I$HF1MM$K!$(B\hgcmd{push}$B%3%^%s%I$O(Bpush$B@h$N%j%]%8%H%j$N(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1040 $B%o!<%-%s%0%G%#%l%/%H%j$N99?7$r9T$o$J$$!%!J(B\hgcmd{pull}$B%3%^%s%I$H0c$C$F(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1041 \hgcmd{push}$B%3%^%s%I$O!$%o!<%-%s%0%G%#%l%/%H%j$N99?7$r9T$&(B\texttt{-u}$B%*%W(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1042 $B%7%g%s$r;}$?$J$$!%!K(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1043 |
785 | 1044 %What happens if we try to pull or push changes and the receiving |
1045 %repository already has those changes? Nothing too exciting. | |
1046 %\interaction{tour.push.nothing} | |
92 | 1047 |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1048 $B%j%]%8%H%j$,$"$kJQ99$r$9$G$K;}$C$F$$$k$H$-!$F1$8JQ99$r(Bpull$B$^$?$O(Bpush$B$7$h(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1049 $B$&$H$9$k$H2?$,5/$-$k$@$m$&$+!)FC$K6C$/$h$&$J$3$H$O5/$-$J$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1050 \interaction{tour.push.nothing} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1051 |
783 | 1052 %\subsection{Sharing changes over a network} |
1053 \subsection{$BJQ99$r%M%C%H%o!<%/$rDL$8$F6&M-$9$k(B} | |
93 | 1054 |
785 | 1055 %The commands we have covered in the previous few sections are not |
1056 %limited to working with local repositories. Each works in exactly the | |
1057 %same fashion over a network connection; simply pass in a URL instead | |
1058 %of a local path. | |
1059 %\interaction{tour.outgoing.net} | |
1060 %In this example, we can see what changes we could push to the remote | |
1061 %repository, but the repository is understandably not set up to let | |
1062 %anonymous users push to it. | |
1063 %\interaction{tour.push.net} | |
1064 | |
786
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1065 $B$3$l$h$jA0$N$$$/$D$+$N@a$G07$C$?%3%^%s%I$O!$%m!<%+%k%j%]%8%H%j$@$1$K8BDj(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1066 $B$5$l$J$$!%$I$N%3%^%s%I$b%M%C%H%o!<%/7PM3$G$bA4$/F1$8$KF0:n$9$k!%0c$$$O%m!<(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1067 $B%+%k%Q%9$NBe$o$j$K(BURL$B$rEO$9$@$1$G$"$k!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1068 \interaction{tour.outgoing.net} |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1069 $B$3$NNc$G$O!$%j%]!<%H%j%]%8%H%j$K(Bpush$B$7$h$&$H$9$k$,!$EvA3$N$3$H$J$,$iF?L>(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1070 $B$N%f!<%6$K(Bpush$B$r5v2D$7$J$$$h$&$K@_Dj$5$l$F$$$k$?$a!$(Bpush$B$G$-$J$$!%(B |
11bc9d788428
finished tour-basic.tex
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
785
diff
changeset
|
1071 \interaction{tour.push.net} |
93 | 1072 |
783 | 1073 %%% Local Variables: |
293
3b1291f24c0d
- replaved latex-mode to yatex-mode
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
290
diff
changeset
|
1074 %%% mode: yatex |
84 | 1075 %%% TeX-master: "00book" |
783 | 1076 %%% End: |