hgbook
changeset 709:f9f71850ae1a
Merge with foozy
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Fri Aug 14 12:10:47 2009 -0700 (2009-08-14) |
parents | f3a4e6040421 d6ca1334a19d |
children | eca3a16c0114 |
files | .hgignore |
line diff
1.1 --- a/.hgignore Thu Aug 13 13:22:09 2009 -0700 1.2 +++ b/.hgignore Fri Aug 14 12:10:47 2009 -0700 1.3 @@ -8,6 +8,7 @@ 1.4 *.mo 1.5 *.orig 1.6 *.out 1.7 +*.bb 1.8 *.png 1.9 *.pyc 1.10 *.rej
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/ja/00book.tex Fri Aug 14 12:10:47 2009 -0700 2.3 @@ -0,0 +1,58 @@ 2.4 +\title{Mercurial $B$K$h$kJ,;69=@.4IM}(B} 2.5 +\author{Bryan O'Sullivan} 2.6 +\date{Copyright \copyright\ 2006, 2007 Bryan O'Sullivan.\\ 2.7 + This material may be distributed only subject to the terms and 2.8 + conditions set forth in version 1.0 of the Open Publication License. 2.9 + $B%i%$%;%s%9>r9`$K4X$9$k>\:Y$O!"IUO?(B~\ref{cha:opl}$B$r;2>H$7$F$/$@$5$$!#(B\\ 2.10 + $BK\=q$O%j%S%8%g%s(B 2.11 + \href{http://hg.serpentine.com/mercurial/book/}{a24b370a16ee} 2.12 + $B$N@.2LJ*$r85$KK]Lu$7$?$b$N$G$9!#(B} 2.13 + 2.14 +\makeindex 2.15 + 2.16 +\begin{document} 2.17 + 2.18 +\maketitle 2.19 + 2.20 +\addcontentsline{toc}{chapter}{Contents} 2.21 +\pagenumbering{roman} 2.22 +\tableofcontents 2.23 +\listoffigures 2.24 +%\listoftables 2.25 + 2.26 +\pagenumbering{arabic} 2.27 + 2.28 +\include{preface} 2.29 +\include{intro} 2.30 +\include{tour-basic} 2.31 +\include{tour-merge} 2.32 +\include{concepts} 2.33 +\include{daily} 2.34 +\include{collab} 2.35 +\include{filenames} 2.36 +\include{branch} 2.37 +\include{undo} 2.38 +\include{hook} 2.39 +\include{template} 2.40 +\include{mq} 2.41 +\include{mq-collab} 2.42 +\include{hgext} 2.43 + 2.44 +\appendix 2.45 +%\include{cmdref} 2.46 +%\include{mq-ref} 2.47 +\include{srcinstall} 2.48 +\include{license} 2.49 +\addcontentsline{toc}{chapter}{Bibliography} 2.50 +\bibliographystyle{alpha} 2.51 +\bibliography{99book} 2.52 + 2.53 +\addcontentsline{toc}{chapter}{Index} 2.54 +\printindex 2.55 + 2.56 +\end{document} 2.57 + 2.58 +%%% Local Variables: 2.59 +%%% mode: latex 2.60 +%%% TeX-master: "00book_pdf" 2.61 +%%% End:
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/ja/00book_html.tex Fri Aug 14 12:10:47 2009 -0700 3.3 @@ -0,0 +1,78 @@ 3.4 +% The use of oneside here is a temporary hack; \marginpar entries 3.5 +% don't show up on odd pages of PDF output without it. Sigh. 3.6 +%\documentclass[oneside]{jbook} 3.7 +\documentclass[oneside]{book} 3.8 + 3.9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3.10 + 3.11 +%%%% 3.12 +%%%% output format independent part: 3.13 +%%%% 3.14 + 3.15 +%\usepackage{enumerate} 3.16 +\usepackage{fullpage} 3.17 +\usepackage{makeidx} 3.18 +\usepackage{fancyvrb} 3.19 +\usepackage{custom} 3.20 + 3.21 +%%%% 3.22 +%%%% output format specific part: 3.23 +%%%% 3.24 + 3.25 +\usepackage{graphicx} 3.26 + 3.27 +% leave hyperref until last 3.28 +\usepackage[ 3.29 + tex4ht, 3.30 + colorlinks=true, 3.31 + bookmarks=true, 3.32 + bookmarksnumbered=true, 3.33 + bookmarkstype=toc 3.34 + ]{hyperref} 3.35 + 3.36 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3.37 + 3.38 +%%%% 3.39 +%%%% output format independent part: 3.40 +%%%% 3.41 + 3.42 +\include{99defs} 3.43 + 3.44 +%%%% 3.45 +%%%% output format specific part: 3.46 +%%%% 3.47 + 3.48 +%\newcommand{\grafix}[1]{\includegraphics{#1}} 3.49 +%\newcommand{\grafix}[1]{#1} 3.50 +\newcommand{\grafix}[2][]{\Picture{#2}} % ignore #1 3.51 +\newcommand{\grafixL}[1]{\Picture{#1}} 3.52 + 3.53 +% Note: blah blah. 3.54 +\newsavebox{\notebox} 3.55 +\newenvironment{note}{ 3.56 + \begin{lrbox}{\notebox} 3.57 + \begin{minipage}{0.7\textwidth} 3.58 + \textbf{$BHw9M(B:}\space% 3.59 +}{ 3.60 + \end{minipage} 3.61 + \end{lrbox} 3.62 + \fbox{\usebox{\notebox}} 3.63 +} 3.64 +\newenvironment{caution}{ 3.65 + \begin{lrbox}{\notebox} 3.66 + \begin{minipage}{0.7\textwidth} 3.67 + \textbf{$BCm0U(B:}\space% 3.68 +}{ 3.69 + \end{minipage} 3.70 + \end{lrbox} 3.71 + \fbox{\usebox{\notebox}} 3.72 +} 3.73 + 3.74 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3.75 + 3.76 +\input{00book} 3.77 + 3.78 +%%% Local Variables: 3.79 +%%% mode: latex 3.80 +%%% TeX-master: t 3.81 +%%% End:
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/ja/00book_pdf.tex Fri Aug 14 12:10:47 2009 -0700 4.3 @@ -0,0 +1,91 @@ 4.4 +% The use of oneside here is a temporary hack; \marginpar entries 4.5 +% don't show up on odd pages of PDF output without it. Sigh. 4.6 +\documentclass[oneside]{jbook} 4.7 + 4.8 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4.9 + 4.10 +%%%% 4.11 +%%%% output format independent part: 4.12 +%%%% 4.13 + 4.14 +%\usepackage{enumerate} 4.15 +\usepackage{fullpage} 4.16 +\usepackage{makeidx} 4.17 +\usepackage{fancyvrb} 4.18 +\usepackage{custom} 4.19 + 4.20 +%%%% 4.21 +%%%% output format specific part: 4.22 +%%%% 4.23 + 4.24 +\usepackage[dvipdfm]{color} % prevents COLOR.STY from using DVIPS.DEF driver 4.25 +\usepackage[dvipdfm]{graphicx} 4.26 +\usepackage{pslatex} 4.27 + 4.28 +\input{atbegxxx} 4.29 + 4.30 +% leave hyperref until last 4.31 +\usepackage[ 4.32 + dvipdfm, 4.33 + colorlinks=true, 4.34 + bookmarks=true, 4.35 + bookmarksnumbered=true, 4.36 + bookmarkstype=toc, 4.37 + pdftitle={Mercurial $B$K$h$kJ,;69=@.4IM}(B}, 4.38 + pdfsubject={$B9=@.4IM}(B}, 4.39 + pdfkeywords={Mercurial, $B9=@.4IM}(B, $BJ,;69=@.4IM}(B}, 4.40 + pdfauthor={Bryan O'Sullivan} 4.41 + ]{hyperref} 4.42 + 4.43 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4.44 + 4.45 +%%%% 4.46 +%%%% output format independent part: 4.47 +%%%% 4.48 + 4.49 +\include{99defs} 4.50 + 4.51 +%%%% 4.52 +%%%% output format specific part: 4.53 +%%%% 4.54 + 4.55 +\newcommand{\grafix}[2][]{\includegraphics[#1]{#2}} 4.56 +\newcommand{\grafixL}[1]{\includegraphics[angle=90,height=\textwidth]{#1}} 4.57 + 4.58 +% Note: blah blah. 4.59 +\newsavebox{\notebox} 4.60 +\newenvironment{note}{ 4.61 + \vspace{1.5\kanjicharheight} 4.62 + \begin{center} 4.63 + \begin{lrbox}{\notebox} 4.64 + \begin{minipage}{0.8\textwidth} 4.65 + \textbf{$BHw9M(B:}\space 4.66 +}{ 4.67 + \end{minipage} 4.68 + \end{lrbox} 4.69 + \fbox{\usebox{\notebox}} 4.70 + \end{center} 4.71 + \vspace{1.5\kanjicharheight} 4.72 +} 4.73 +\newenvironment{caution}{ 4.74 + \vspace{1.5\kanjicharheight} 4.75 + \begin{center} 4.76 + \begin{lrbox}{\notebox} 4.77 + \begin{minipage}{0.8\textwidth} 4.78 + \textbf{$BCm0U(B:}\space% 4.79 +}{ 4.80 + \end{minipage} 4.81 + \end{lrbox} 4.82 + \fbox{\usebox{\notebox}} 4.83 + \begin{center} 4.84 + \vspace{1.5\kanjicharheight} 4.85 +} 4.86 + 4.87 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4.88 + 4.89 +\input{00book} 4.90 + 4.91 +%%% Local Variables: 4.92 +%%% mode: latex 4.93 +%%% TeX-master: t 4.94 +%%% End:
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/ja/99book.bib Fri Aug 14 12:10:47 2009 -0700 5.3 @@ -0,0 +1,76 @@ 5.4 +@Unpublished{gruenbacher:2005, 5.5 + author = {Andreas Gruenbacher}, 5.6 + title = {How To Survive With Many Patches (Introduction to \texttt{quilt})}, 5.7 + year = {2005}, 5.8 + month = {June}, 5.9 + note = {\url{http://www.suse.de/~agruen/quilt.pdf}}, 5.10 +} 5.11 + 5.12 +@InProceedings{web:europython, 5.13 + author = {Bryan O'Sullivan}, 5.14 + title = {Achieving High Performance in Mercurial}, 5.15 + booktitle = {EuroPython Conference}, 5.16 + year = {2006}, 5.17 + month = {July}, 5.18 + note = {\url{XXX}}, 5.19 +} 5.20 + 5.21 +@Misc{web:diffstat, 5.22 + author = {Thomas Dickey}, 5.23 + title = {\texttt{diffstat}--make a histogram of \texttt{diff} output}, 5.24 + note = {\url{http://dickey.his.com/diffstat/diffstat.html}}, 5.25 +} 5.26 + 5.27 +@Misc{web:quilt, 5.28 + author = {Andreas Gruenbacher, Martin Quinson, Jean Delvare}, 5.29 + title = {Patchwork Quilt}, 5.30 + note = {\url{http://savannah.nongnu.org/projects/quilt}}, 5.31 +} 5.32 + 5.33 +@Misc{web:patchutils, 5.34 + author = {Tim Waugh}, 5.35 + title = {\texttt{patchutils}--programs that operate on patch files}, 5.36 + note = {\url{http://cyberelk.net/tim/patchutils/}}, 5.37 +} 5.38 + 5.39 +@Misc{web:mpatch, 5.40 + author = {Chris Mason}, 5.41 + title = {\texttt{mpatch}--help solve patch rejects}, 5.42 + note = {\url{http://oss.oracle.com/~mason/mpatch/}}, 5.43 +} 5.44 + 5.45 +@Misc{web:wiggle, 5.46 + author = {Neil Brown}, 5.47 + title = {\texttt{wiggle}--apply conflicting patches}, 5.48 + note = {\url{http://cgi.cse.unsw.edu.au/~neilb/source/wiggle/}}, 5.49 +} 5.50 + 5.51 +@Misc{web:mysql-python, 5.52 + author = {Andy Dustman}, 5.53 + title = {MySQL for Python}, 5.54 + note = {\url{http://sourceforge.net/projects/mysql-python}}, 5.55 +} 5.56 + 5.57 +@Misc{web:changelog, 5.58 + author = {Richard Stallman, GNU Project volunteers}, 5.59 + title = {GNU Coding Standards---Change Logs}, 5.60 + note = {\url{http://www.gnu.org/prep/standards/html_node/Change-Logs.html}}, 5.61 +} 5.62 + 5.63 +@Misc{web:macpython, 5.64 + author = {Bob Ippolito, Ronald Oussoren}, 5.65 + title = {Universal MacPython}, 5.66 + note = {\url{http://bob.pythonmac.org/archives/2006/04/10/python-and-universal-binaries-on-mac-os-x/}}, 5.67 +} 5.68 + 5.69 +@Misc{web:putty, 5.70 + author = {Simon Tatham}, 5.71 + title = {PuTTY---open source ssh client for Windows}, 5.72 + note = {\url{http://www.chiark.greenend.org.uk/~sgtatham/putty/}}, 5.73 +} 5.74 + 5.75 +@Misc{web:configparser, 5.76 + author = {Python.org}, 5.77 + title = {\texttt{ConfigParser}---Configuration file parser}, 5.78 + note = {\url{http://docs.python.org/lib/module-ConfigParser.html}}, 5.79 +}
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/ja/99defs.tex Fri Aug 14 12:10:47 2009 -0700 6.3 @@ -0,0 +1,183 @@ 6.4 +% Bug ID. 6.5 +\newcommand{\bug}[1]{\index{Mercurial 6.6 + $B%P%0%G!<%?%Y!<%9(B! 6.7 + \href{http://www.selenic.com/mercurial/bts/issue#1}{$B%P%0(B~#1} 6.8 + }\href{http://www.selenic.com/mercurial/bts/issue#1}{Mercurial 6.9 + $B%P%0HV9f(B~#1}} 6.10 + 6.11 +% File name in the user's home directory. 6.12 +\newcommand{\tildefile}[1]{\texttt{\~{}/#1}} 6.13 + 6.14 +% File name. 6.15 +\newcommand{\filename}[1]{\texttt{#1}} 6.16 + 6.17 +% Directory name. 6.18 +\newcommand{\dirname}[1]{\texttt{#1}} 6.19 + 6.20 +% File name, with index entry. 6.21 +% The ``s'' prefix comes from ``special''. 6.22 +\newcommand{\sfilename}[1]{\index{\texttt{#1} $B%U%!%$%k(B}\texttt{#1}} 6.23 + 6.24 +% Directory name, with index entry. 6.25 +\newcommand{\sdirname}[1]{\index{\texttt{#1} $B%G%#%l%/%H%j(B}\texttt{#1}} 6.26 + 6.27 +% Mercurial extension. 6.28 +\newcommand{\hgext}[1]{\index{\texttt{#1} $B%$%/%9%F%s%7%g%s(B}\texttt{#1}} 6.29 + 6.30 +% Command provided by a Mercurial extension. 6.31 +\newcommand{\hgxcmd}[2]{\index{\texttt{#2} $B%3%^%s%I(B (\texttt{#1} 6.32 + $B%$%/%9%F%s%7%g%s(B) 6.33 + }\index{\texttt{#1} $B%$%/%9%F%s%7%g%s(B!\texttt{#2} $B%3%^%s%I(B 6.34 + }``\texttt{hg #2}''} 6.35 + 6.36 +% Mercurial command. 6.37 +\newcommand{\hgcmd}[1]{\index{\texttt{#1} $B%3%^%s%I(B}``\texttt{hg #1}''} 6.38 + 6.39 +% Mercurial command, with arguments. 6.40 +\newcommand{\hgcmdargs}[2]{\index{\texttt{#1} $B%3%^%s%I(B}``\texttt{hg #1 #2}''} 6.41 + 6.42 +\newcommand{\tplkword}[1]{\index{\texttt{#1} $B%F%s%W%l!<%H%-!<%o!<%I(B 6.43 + }\index{$B%F%s%W%l!<%H%-!<%o!<%I(B!\texttt{#1}}\texttt{#1}} 6.44 + 6.45 +\newcommand{\tplkwfilt}[2]{ 6.46 + \index{\texttt{#1} $B%F%s%W%l!<%H%-!<%o!<%I(B!\texttt{#2} $B%U%#%k%?(B 6.47 + }\index{$B%F%s%W%l!<%H%U%#%k%?(B! 6.48 + \texttt{#2}}\index{\texttt{#2} $B%F%s%W%l!<%H%U%#%k%?(B}\texttt{#2}} 6.49 + 6.50 +\newcommand{\tplfilter}[1]{\index{$B%F%s%W%l!<%H%U%#%k%?(B!\texttt{#1} 6.51 + }\index{\texttt{#1} $B%F%s%W%l!<%H%U%#%k%?(B}\texttt{#1}} 6.52 + 6.53 +% Shell/system command. 6.54 +\newcommand{\command}[1]{\index{\texttt{#1} $B%7%9%F%`%3%^%s%I(B}\texttt{#1}} 6.55 + 6.56 +% Shell/system command, with arguments. 6.57 +\newcommand{\cmdargs}[2]{\index{\texttt{#1} $B%3%^%s%I(B}``\texttt{#1 #2}''} 6.58 + 6.59 +% Mercurial command option. 6.60 +\newcommand{\hgopt}[2]{\index{\texttt{#1} $B%3%^%s%I(B!\texttt{#2} $B%*%W%7%g%s(B 6.61 + }\texttt{#2}} 6.62 + 6.63 +% Mercurial command option, provided by an extension command. 6.64 +\newcommand{\hgxopt}[3]{ 6.65 + \index{\texttt{#2} $B%3%^%s%I(B(\texttt{#1} $B%$%/%9%F%s%7%g%s(B)! 6.66 + \texttt{#3} $B%*%W%7%g%s(B 6.67 + }\index{\texttt{#1} $B%$%/%9%F%s%7%g%s(B!\texttt{#2} $B%3%^%s%I(B! 6.68 + \texttt{#3} $B%*%W%7%g%s(B}\texttt{#3}} 6.69 + 6.70 +% Mercurial global option. 6.71 +\newcommand{\hggopt}[1]{\index{$B%0%m!<%P%k%*%W%7%g%s(B!\texttt{#1} $B%*%W%7%g%s(B 6.72 + }\texttt{#1}} 6.73 + 6.74 +% Shell/system command option. 6.75 +\newcommand{\cmdopt}[2]{\index{\texttt{#1} $B%3%^%s%I(B!\texttt{#2} $B%*%W%7%g%s(B 6.76 + }\texttt{#2}} 6.77 + 6.78 +% Command option. 6.79 +\newcommand{\option}[1]{\texttt{#1}} 6.80 + 6.81 +% Software package. 6.82 +\newcommand{\package}[1]{\index{\texttt{#1} $B%Q%C%1!<%8(B}\texttt{#1}} 6.83 + 6.84 +% Section name from a hgrc file. 6.85 +\newcommand{\rcsection}[1]{\index{\texttt{hgrc} $B%U%!%$%k(B!\texttt{#1} $B%;%/%7%g%s(B 6.86 + }\texttt{[#1]}} 6.87 + 6.88 +% Named item in a hgrc file section. 6.89 +\newcommand{\rcitem}[2]{\index{\texttt{hgrc} $B%U%!%$%k(B! 6.90 + \texttt{#1} $B%;%/%7%g%s(B!\texttt{#2} $B9`L\(B}\texttt{#2}} 6.91 + 6.92 +% hgrc file. 6.93 +\newcommand{\hgrc}{\index{$B@_Dj%U%!%$%k(B!\texttt{hgrc}(Linux/Unix) 6.94 + }\index{\texttt{hgrc} $B@_Dj%U%!%$%k(B}\texttt{hgrc}} 6.95 + 6.96 +% Mercurial.ini file. 6.97 +\newcommand{\hgini}{\index{$B@_Dj%U%!%$%k(B!\texttt{Mercurial.ini}(Windows) 6.98 + }\index{\texttt{Mercurial.ini} $B@_Dj%U%!%$%k(B 6.99 + }\texttt{Mercurial.ini}} 6.100 + 6.101 +% Hook name. 6.102 +\newcommand{\hook}[1]{\index{\texttt{#1} $B%U%C%/(B 6.103 + }\index{$B%U%C%/(B!\texttt{#1}}\texttt{#1}} 6.104 + 6.105 +% Environment variable. 6.106 +\newcommand{\envar}[1]{\index{\texttt{#1} $B4D6-JQ?t(B 6.107 + }\index{$B4D6-JQ?t(B!\texttt{#1}}\texttt{#1}} 6.108 + 6.109 +% Python module. 6.110 +\newcommand{\pymod}[1]{\index{\texttt{#1} $B%b%8%e!<%k(B}\texttt{#1}} 6.111 + 6.112 +% Python class in a module. 6.113 +\newcommand{\pymodclass}[2]{\index{\texttt{#1} $B%b%8%e!<%k(B!\texttt{#2} $B%/%i%9(B 6.114 + }\texttt{#1.#2}} 6.115 + 6.116 +% Python function in a module. 6.117 +\newcommand{\pymodfunc}[2]{\index{\texttt{#1} $B%b%8%e!<%k(B!\texttt{#2} $B4X?t(B 6.118 + }\texttt{#1.#2}} 6.119 + 6.120 +% Code sample, eating 4 characters of leading space. 6.121 +\DefineVerbatimEnvironment{codesample4}{Verbatim}{ 6.122 + frame=single, 6.123 + gobble=4, 6.124 + xleftmargin=0.1\textwidth, 6.125 + xrightmargin=0.1\textwidth, 6.126 + baselinestretch=0.8, 6.127 + numbers=left, 6.128 + commandchars=\\\{\} 6.129 +} 6.130 + 6.131 +% Code sample, eating 2 characters of leading space. 6.132 +\DefineVerbatimEnvironment{codesample2}{Verbatim}{ 6.133 + frame=single, 6.134 + gobble=2, 6.135 + xleftmargin=0.1\textwidth, 6.136 + xrightmargin=0.1\textwidth, 6.137 + baselinestretch=0.8, 6.138 + numbers=left, 6.139 + commandchars=\\\{\} 6.140 +} 6.141 + 6.142 +% Interaction from the examples directory. 6.143 +\newcommand{\interaction}[1]{ 6.144 + \vspace{1.5\kanjicharheight} 6.145 + \VerbatimInput[ 6.146 + frame=single, 6.147 + xleftmargin=0.1\textwidth, 6.148 + xrightmargin=0.1\textwidth, 6.149 + baselinestretch=0.8, 6.150 + numbers=left, 6.151 + commandchars=\\\{\} 6.152 + ]{% 6.153 +% examples/#1.out 6.154 + examples/#1.lxo 6.155 + } 6.156 + \vspace{1.5\kanjicharheight} 6.157 +} 6.158 +% Example code from the examples directory. 6.159 +\newcommand{\excode}[1]{ 6.160 + \vspace{1.5\kanjicharheight} 6.161 + \VerbatimInput[ 6.162 + frame=single, 6.163 + xleftmargin=0.1\textwidth, 6.164 + xrightmargin=0.1\textwidth, 6.165 + baselinestretch=0.8, 6.166 + numbers=left, 6.167 + commandchars=\\\{\} 6.168 + ]{../examples/#1} 6.169 + \vspace{1.5\kanjicharheight} 6.170 +} 6.171 + 6.172 +% Reference entry for a command. 6.173 +\newcommand{\cmdref}[2]{\section{\hgcmd{#1}---#2}\label{cmdref:#1} 6.174 + \index{\texttt{#1} $B%3%^%s%I(B}} 6.175 + 6.176 +% Reference entry for a command option with long and short forms. 6.177 +\newcommand{\optref}[3]{\subsubsection{\hgopt{#1}{--#3} $B$J$$$7(B 6.178 + \hgopt{#1}{-#2}}} 6.179 + 6.180 +% Reference entry for a command option with only long form. 6.181 +\newcommand{\loptref}[2]{\subsubsection{\hgopt{#1}{--#2} $B%*%W%7%g%s(B}} 6.182 + 6.183 +%%% Local Variables: 6.184 +%%% mode: latex 6.185 +%%% TeX-master: "00book" 6.186 +%%% End:
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/ja/CONFIRMED.ja.txt Fri Aug 14 12:10:47 2009 -0700 7.3 @@ -0,0 +1,171 @@ 7.4 +=============================================================================== 7.5 + $BF0:n3NG':Q$_4D6->pJs(B 7.6 +=============================================================================== 7.7 + 7.8 +=============================================================================== 7.9 +[Vine 4.2 2.6.16-76.40vl4] 7.10 + 7.11 +TeX tools: 7.12 + 7.13 + name version 7.14 + --------------------+---------------- 7.15 + tetex |3.0 0vl11.4 7.16 + tetex-extra |3.0 0vl11.4 7.17 + tetex-macros |3.0 0vl3 7.18 + jvf |2.0 0vl1 7.19 + dvipdfmx |20070518 0vl1 7.20 + --------------------+---------------- 7.21 + 7.22 + Vine $B$G@8@.$7$?(B PDF $B$K$O0lIt$KITL@$J%U%)%s%H$,@_Dj$5$l$k>l9g$,$"$j(B 7.23 + $B$^$9$,!"8=>u$G$O860xITL@$G$9!#(B 7.24 + 7.25 +Graphic tools: 7.26 + 7.27 + name version 7.28 + --------------------+---------------- 7.29 + ghostscript |7.07 0vl30.1 7.30 + ghostscript-fonts |5.50 1vl2 7.31 + graphviz |2.6 0vl2 7.32 + inkscape |0.44.1 0vl1 7.33 + --------------------+---------------- 7.34 + 7.35 +Other tools: 7.36 + 7.37 + name version 7.38 + --------------------+---------------- 7.39 + make |3.80 0vl4 7.40 + python |2.4.4 1.4vl4 7.41 + perl |5.8.6 0vl3.1 7.42 + --------------------+---------------- 7.43 + 7.44 +=============================================================================== 7.45 +[Debian 2.6.26-13lenny2] 7.46 + 7.47 +TeX tools: 7.48 + 7.49 + name version 7.50 + --------------------+---------------- 7.51 + ptex-bin |3.1.10+0.04b-2.1 7.52 + ptex-jisfonts |2-21 7.53 + vfdata-morisawa5 |0.0.20020122-14 7.54 + texlive-latex-base |2007.dfsg.1-5 7.55 + texlive-latex-extra |2007.dfsg.17-1~lenny01 7.56 + jbibtex-bin |3.1.10+0.04b-2.1 7.57 + mendexk |2.6e-3 7.58 + dvipdfmx |1:20080607-1 7.59 + cmap-adobe-cns1 |0+20060819-3 7.60 + cmap-adobe-gb1 |0+20051207-3 7.61 + cmap-adobe-japan1 |0+20071201-4 7.62 + cmap-adobe-japan2 |0+20020208-4 7.63 + --------------------+---------------- 7.64 + 7.65 + $B>e5-$N(B dvipdfmx $B$K$O!"J8;z%3!<%IJQ49MQ$N%^%C%W%U%!%$%k$,F1:-$5$l$J(B 7.66 + $B$$LdBj$,$"$j$^$9!#(B 7.67 + 7.68 + http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/52108.html 7.69 + http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/52944.html 7.70 + 7.71 + $BHG$K$h$C$FE:IU!?:o=|$r7+$jJV$7$F$$LOMM$@$,!">e5-$NHG$G$OE:IU$5$l$F(B 7.72 + $B$$$J$$>uBV$N$?$a!"0J2<$N<j=g$GBP=h$,I,MW$G$9(B: 7.73 + 7.74 + 1. EUC-UCS2 $B%U%!%$%k$rF~<j(B 7.75 + 7.76 + a. $B%=!<%9%"!<%+%$%V$rF~<j$7$F(B data/EUC-UCS2 $B$r<h$j=P$9(B 7.77 + 7.78 + http://project.ktug.or.kr/dvipdfmx/ 7.79 + 7.80 + b. $B$"$k$$$O(B CVS $B%V%i%&%8%s%0%5!<%S%97PM3$GF~<j(B 7.81 + 7.82 + http://cvs.ktug.or.kr/viewcvs/dvipdfmx/ 7.83 + 7.84 + 2. $BF~<j$7$?(B EUC-UCS2 $B%U%!%$%k$NG[CV(B 7.85 + 7.86 + /etc/texmf/texmf.cnf $B%U%!%$%kCf$N(B dvipdfmx $B$K4X$9$k(BCMAPINPUTS 7.87 + $B@_Dj%Q%9$K1~$8$F(B EUC-UCS2 $B%U%!%$%k$rG[CV$9$k!#(B 7.88 + 7.89 + $B"((B $B;d$N4D6-$G$O(B /usr/share/fonts/cmap/ $BG[2<$G$7$?(B 7.90 + 7.91 +Graphic tools: 7.92 + 7.93 + name version 7.94 + --------------------+---------------- 7.95 + gs |8.62.dfsg.1-3.2lenny1 7.96 + gs-esp |8.62.dfsg.1-3.2lenny1 7.97 + gs-cjk-resource |1.20080107-4 7.98 + graphviz |2.20.2-3 7.99 + inkscape |0.46-2.lenny2 7.100 + --------------------+---------------- 7.101 + 7.102 +Other tools: 7.103 + 7.104 + name version 7.105 + --------------------+---------------- 7.106 + make |3.81-5 7.107 + python |2.5.2-3 7.108 + perl |5.10.0-19 7.109 + --------------------+---------------- 7.110 + 7.111 +=============================================================================== 7.112 +[Win32] 7.113 + 7.114 +TeX tools: 7.115 + 7.116 + README.ja.txt $B$K5-:\$5$l$F$$$k(B URL $B$N%Z!<%8$r;29M$K!"4pK\E*$K$O!V%U(B 7.117 + $B%k%$%s%9%H!<%k!W$GF3F~$7$F$/$@$5$$!#(BWin32 $B8~$1$NG[I[J*$O!"%j%j!<%9(B 7.118 + $B;~E@$N%9%J%C%W%7%g%C%H$K87L)$J%P!<%8%g%sIU$1$,$5$l$F$$$^$;$s$N$G!"(B 7.119 + $B$3$3$G$O%P!<%8%g%sI=5-$r9T$$$^$;$s(B($BI=5-$G$-$^$;$s(B)$B!#(B 7.120 + 7.121 + $B$=$N>e$G!"F3F~$5$l$kHG$K$h$C$F$O0J2<$N%Q%C%1!<%8$rJLESF3F~$9$kI,MW(B 7.122 + $B$,$"$j$^$9!#(B 7.123 + 7.124 + name version 7.125 + --------------------+---------------- 7.126 + XeTeX for W32 |$BITL@(B 7.127 + --------------------+---------------- 7.128 + 7.129 + Win32 $B8~$1$N%$%s%9%H!<%i$G(B TeX $B%D!<%k72$rF3F~$7$?>l9g!"(Bcat cp 7.130 + mkdir $B$d(B rm $B$H$$$C$?4pK\E*$J%3%^%s%I$N%P%$%J%j$bF3F~$5$l$^$9!#(B 7.131 + 7.132 + PATH $B4D6-JQ?t$N@_Dj$G!"(BTeX $B%$%s%9%H!<%k@h$N(B bin $B$KBP$9$k8!:w=g=x$r(B 7.133 + Cygwin $B$N(B bin $B$h$j$bA0$K$7$F$7$^$&$H!"A[Dj30$NF0:n$H$J$k2DG=@-$,$"(B 7.134 + $B$j$^$9$N$GCm0U$,I,MW$G$9!#(B 7.135 + 7.136 + $B$^$?!"(BWin32 $B4D6-$G(B HTML $B$r@8@.$9$k>l9g$O!"F3F~8e$K(B tex4ht $B$N@_Dj%U%!(B 7.137 + $B%$%k$KBP$9$k=$@5$,I,MW$G$9!#(B 7.138 + 7.139 + share/texmf/tex4ht/base/win32/tex4ht.env $BCf$N0J2<$NItJ,$,!"6uGr$G;z(B 7.140 + $B2<$2$5$l$F$$$k!aL58z2=$5$l$F$$$k>uBV$J$N$G!"9TF,$N6uGrJ8;z$r=|30(B 7.141 + ("Ggswin32c" $B$G;O$^$k9T$OD9$9$.$k$N$G>JN,(B)$B$7$F$/$@$5$$!#(B 7.142 + 7.143 + ======================================== 7.144 + G.png 7.145 + Ghterasefile zz%%4.ps 7.146 + Ghterasefile %%3 7.147 + Gdvipsk -E -q -Ppdf -f %%1 -pp %%2 > zz%%4.ps 7.148 + Ggswin32c -sDEVICE=pngalpha -sOutputFile=%%3 ...... 7.149 + Ghterasefile zz%%4.ps 7.150 + ======================================== 7.151 + 7.152 +Graphic tools: 7.153 + 7.154 + name version 7.155 + --------------------+---------------- 7.156 + ghostscript |8.63 $B"((B W32TeX $B%Z!<%8$+$i%@%&%s%m!<%I(B 7.157 + graphviz |2.24 7.158 + inkscape |0.46 7.159 + --------------------+---------------- 7.160 + 7.161 + $B"((B $B$$$:$l$b(B Win32 $BMQ%P%$%J%j$r;HMQ(B 7.162 + 7.163 +Other tools: 7.164 + 7.165 + name version 7.166 + --------------------+---------------- 7.167 + make |3.81 7.168 + python |2.5.2 7.169 + perl |5.10.0 7.170 + --------------------+---------------- 7.171 + 7.172 + $B"((B $B$$$:$l$b(B Cygwin $B>e$N$b$N$r;HMQ(B 7.173 + 7.174 +===============================================================================
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/ja/Makefile Fri Aug 14 12:10:47 2009 -0700 8.3 @@ -0,0 +1,324 @@ 8.4 +# This makefile requires GNU make. 8.5 + 8.6 +sources := \ 8.7 + 00book.tex \ 8.8 + 99book.bib \ 8.9 + 99defs.tex \ 8.10 + build_id.tex \ 8.11 + branch.tex \ 8.12 + collab.tex \ 8.13 + concepts.tex \ 8.14 + custom.sty \ 8.15 + daily.tex \ 8.16 + filenames.tex \ 8.17 + hg_id.tex \ 8.18 + hgext.tex \ 8.19 + hook.tex \ 8.20 + intro.tex \ 8.21 + mq.tex \ 8.22 + mq-collab.tex \ 8.23 + preface.tex \ 8.24 + srcinstall.tex \ 8.25 + template.tex \ 8.26 + tour-basic.tex \ 8.27 + tour-merge.tex \ 8.28 + undo.tex \ 8.29 + 8.30 + 8.31 +image-sources := \ 8.32 + feature-branches.dot \ 8.33 + filelog.svg \ 8.34 + kdiff3.png \ 8.35 + metadata.svg \ 8.36 + mq-stack.svg \ 8.37 + note.png \ 8.38 + revlog.svg \ 8.39 + snapshot.svg \ 8.40 + tour-history.svg \ 8.41 + tour-merge-conflict.svg \ 8.42 + tour-merge-merge.svg \ 8.43 + tour-merge-pull.svg \ 8.44 + tour-merge-sep-repos.svg \ 8.45 + undo-manual.dot \ 8.46 + undo-manual-merge.dot \ 8.47 + undo-non-tip.dot \ 8.48 + undo-simple.dot \ 8.49 + wdir.svg \ 8.50 + wdir-after-commit.svg \ 8.51 + wdir-branch.svg \ 8.52 + wdir-merge.svg \ 8.53 + wdir-pre-branch.svg \ 8.54 + 8.55 + 8.56 +image-dot := $(filter %.dot,$(image-sources)) 8.57 +image-svg := $(filter %.svg,$(image-sources)) 8.58 +image-png := $(filter %.png,$(image-sources)) 8.59 + 8.60 +image-pdf := \ 8.61 + $(image-dot:%.dot=%.pdf) \ 8.62 + $(image-svg:%.svg=%.pdf) \ 8.63 + $(image-png) \ 8.64 + 8.65 + 8.66 +bb-pdf := \ 8.67 + $(image-dot:%.dot=%.bb) \ 8.68 + $(image-svg:%.svg=%.bb) \ 8.69 + $(image-png:%.png=%.bb) \ 8.70 + 8.71 + 8.72 +image-html := \ 8.73 + $(image-dot:%.dot=%.png) \ 8.74 + $(image-svg:%.svg=%.png) \ 8.75 + $(image-png) \ 8.76 + 8.77 + 8.78 +example-sources := \ 8.79 + backout \ 8.80 + bisect \ 8.81 + branching \ 8.82 + branch-named \ 8.83 + branch-repo \ 8.84 + cmdref \ 8.85 + daily.copy \ 8.86 + daily.files \ 8.87 + daily.rename \ 8.88 + daily.revert \ 8.89 + extdiff \ 8.90 + filenames \ 8.91 + hook.msglen \ 8.92 + hook.simple \ 8.93 + hook.ws \ 8.94 + issue29 \ 8.95 + mq.guards \ 8.96 + mq.qinit-help \ 8.97 + mq.dodiff \ 8.98 + mq.id \ 8.99 + mq.tarball \ 8.100 + mq.tools \ 8.101 + mq.tutorial \ 8.102 + rename.divergent \ 8.103 + rollback \ 8.104 + tag \ 8.105 + template.simple \ 8.106 + template.svnstyle \ 8.107 + tour \ 8.108 + tour-merge-conflict \ 8.109 + 8.110 + 8.111 +example-prereqs := \ 8.112 + /usr/bin/merge \ 8.113 + 8.114 + 8.115 +binary-staffs := \ 8.116 + kdiff3.png \ 8.117 + note.png \ 8.118 + examples/data/netplug-1.2.5.tar.bz2 \ 8.119 + examples/data/netplug-1.2.8.tar.bz2 \ 8.120 + 8.121 + 8.122 +dist-sources := \ 8.123 + ../html/hgicon.png \ 8.124 + ../html/index.html.var \ 8.125 + ../html/index.en.html \ 8.126 + 8.127 + 8.128 +latex-options = \ 8.129 + -interaction batchmode \ 8.130 + -output-directory $(dir $(1)) \ 8.131 + -jobname $(basename $(notdir $(1))) \ 8.132 + 8.133 +hg = $(shell which hg) 8.134 + 8.135 +hg-id = 8.136 + 8.137 +hg-version = unknown 8.138 + 8.139 +######################################## 8.140 + 8.141 +SVG2PNG = sh svg2png.sh 8.142 + 8.143 +SVG2EPS = sh svg2eps.sh 8.144 + 8.145 +GS = gs 8.146 + 8.147 +MAKEINDEX= mendex -J -f 8.148 + 8.149 +######################################## 8.150 + 8.151 +all: pdf html 8.152 + 8.153 +pdf: pdf/hgbook.pdf 8.154 + 8.155 +define pdf 8.156 + mkdir -p $(dir $@) 8.157 + platex $(call latex-options,$@) $(1) \ 8.158 + || (rm -f $@; exit 1) 8.159 + cp 99book.bib $(dir $@) 8.160 + cd $(dir $@) && jbibtex $(basename $(notdir $@)) 8.161 + cd $(dir $@) && $(MAKEINDEX) $(basename $(notdir $@)) 8.162 + platex $(call latex-options,$@) $(1) \ 8.163 + || (rm -f $@; exit 1) 8.164 + platex $(call latex-options,$@) $(1) \ 8.165 + || (rm -f $@; exit 1) 8.166 + export TEXINPUTS=..; cd $(dir $@) && dvipdfmx $(basename $(notdir $@)) 8.167 +# if grep 'Reference.*undefined' $(@:.pdf=.log); then exit 1; fi 8.168 +endef 8.169 + 8.170 +pdf/hgbook.pdf: $(sources) atbegxxx.tex 8.171 +pdf/hgbook.pdf: $(image-pdf) 8.172 +pdf/hgbook.pdf: $(bb-pdf) 8.173 +#pdf/hgbook.pdf: examples 8.174 +pdf/hgbook.pdf: 00book_pdf.tex 8.175 + $(call pdf,00book_pdf.tex) 8.176 + 8.177 +html: onepage split 8.178 + 8.179 +htlatex := htlatex.sh 8.180 + 8.181 +onepage: $(htlatex) 8.182 +onepage: html/onepage/hgbook.html 8.183 +onepage: html/onepage/hgbook.css 8.184 +onepage: $(image-html:%=html/onepage/%) 8.185 + 8.186 +html/onepage/%: % 8.187 + cp $< $@ 8.188 + 8.189 +split: $(htlatex) 8.190 +split: html/split/hgbook.html 8.191 +split: html/split/hgbook.css 8.192 +split: $(image-html:%=html/split/%) 8.193 + 8.194 +html/split/%: % 8.195 + cp $< $@ 8.196 + 8.197 +# This is a horrible hack to work around the fact that the htlatex 8.198 +# command in tex4ht is itself a horrible hack. I really don't want to 8.199 +# include verbatim the big wad of TeX that is repeated in that script, 8.200 +# but I've given up and run a hacked copy as htlatex.book here. 8.201 + 8.202 +define htlatex 8.203 + mkdir -p $(dir $@) 8.204 + sh ./htlatex.sh \ 8.205 + $(1) \ 8.206 + "bookhtml,html4-uni,$(2)" \ 8.207 + "$(call latex-options,$@)" \ 8.208 + || (rm -f $@; exit 1) 8.209 + cp 99book.bib $(dir $@) 8.210 + cd $(dir $@) && jbibtex $(basename $(notdir $@)) 8.211 + cd $(dir $@) \ 8.212 + && jtex '\def\filename{{hgbook}{idx}{4dx}{ind}} \input idxmake.4ht' \ 8.213 + && $(MAKEINDEX) \ 8.214 + -o $(basename $(notdir $@)).ind \ 8.215 + $(basename $(notdir $@)).4dx 8.216 + sh ./htlatex.sh \ 8.217 + $(1) \ 8.218 + "bookhtml,html4-uni,$(2)" \ 8.219 + "$(call latex-options,$@)" \ 8.220 + || (rm -f $@; exit 1) 8.221 + sh ./htlatex.sh \ 8.222 + $(1) \ 8.223 + "bookhtml,html4-uni,$(2)" \ 8.224 + "$(call latex-options,$@)" \ 8.225 + || (rm -f $@; exit 1) 8.226 + cd $(dir $@) && tex4ht -f/$(basename $(notdir $@)) -cvalidate -cunihtf 8.227 + cd $(dir $@) && t4ht -f/$(basename $(notdir $@)) 8.228 + python ./fixhtml.py $(dir $@)/*.html 8.229 + rm $(dir $@)/hgbook.css 8.230 +endef 8.231 + 8.232 +html/onepage/hgbook.html: $(sources) 8.233 +html/onepage/hgbook.html: $(image-html) 8.234 +#html/onepage/hgbook.html: examples 8.235 +html/onepage/hgbook.html: bookhtml.cfg 8.236 +html/onepage/hgbook.html: 00book_html.tex 8.237 + $(call htlatex,00book_html.tex) 8.238 + 8.239 +html/split/hgbook.html: $(sources) 8.240 +html/split/hgbook.html: $(image-html) 8.241 +#html/split/hgbook.html: examples 8.242 +html/split/hgbook.html: bookhtml.cfg 8.243 +html/split/hgbook.html: 00book_html.tex 8.244 + $(call htlatex,00book_html.tex,2) 8.245 + 8.246 +# Produce 90dpi PNGs for the web. 8.247 + 8.248 +%.png: %.svg 8.249 + $(SVG2PNG) $@ $< 8.250 + 8.251 +%.svg: %.dot 8.252 + dot -Tsvg -o $@ $< 8.253 + 8.254 +# Produce eps/pdf/bb for the pdf 8.255 + 8.256 +%.pdf: %.eps 8.257 + epstopdf $< 8.258 + 8.259 +%.eps: %.svg 8.260 + $(SVG2EPS) $@ $< 8.261 + 8.262 +%.eps: %.dot 8.263 + dot -Tps -o $@ $< 8.264 + 8.265 +%.bb: %.pdf 8.266 + $(GS) -q -sDEVICE=bbox -dAutoRotatePages=/None - -c quit - \ 8.267 + < $< > $@ 2>&1 8.268 + 8.269 +%.bb: %.png 8.270 + ebb $< 8.271 + 8.272 +examples: $(example-prereqs) $(binary-staffs) examples/.run 8.273 + 8.274 +examples/.run: $(example-sources:%=examples/%.run) 8.275 + touch examples/.run 8.276 + 8.277 +examples/%.run: examples/% examples/run-example 8.278 + cd examples && python ./run-example $(notdir $<) 8.279 + 8.280 +changelog := $(wildcard ../.hg/store/00changelog.[id]) 8.281 +ifeq ($(changelog),) 8.282 +changelog := $(wildcard ../.hg/00changelog.[id]) 8.283 +endif 8.284 + 8.285 +build_id.tex: $(changelog) 8.286 + echo -n '$(hg-id)' > build_id.tex 8.287 + 8.288 +hg_id.tex: $(hg) 8.289 + echo -n '$(hg-version)' > hg_id.tex 8.290 + 8.291 +clean: 8.292 + rm -rf dist html pdf \ 8.293 + $(image-dot:%.dot=%.pdf) \ 8.294 + $(image-dot:%.dot=%.png) \ 8.295 + $(image-dot:%.dot=%.bb) \ 8.296 + $(image-svg:%.svg=%.pdf) \ 8.297 + $(image-svg:%.svg=%.png) \ 8.298 + $(image-svg:%.svg=%.bb) \ 8.299 + $(image-png:%.png=%.bb) \ 8.300 + examples/*.{lxo,run} examples/.run build_id.tex hg_id.tex 8.301 + rm -f atbegxxx.tex 8.302 + 8.303 +install: pdf split $(dist-sources) 8.304 + rm -rf dist 8.305 + mkdir -p dist 8.306 + cp pdf/hgbook.pdf dist 8.307 + cp html/split/*.{css,html,png} dist 8.308 + cp $(dist-sources) dist 8.309 + 8.310 +rsync: install 8.311 + rsync -avz --delete dist sp.red-bean.com:public_html/hgbook 8.312 + 8.313 +##### these targets are needed because mq can not handle binary files 8.314 + 8.315 +kdiff3.png: 8.316 + cp ../en/kdiff3.png . 8.317 + 8.318 +note.png: 8.319 + cp ../en/note.png . 8.320 + 8.321 +examples/data/netplug-1.2.5.tar.bz2: 8.322 + mkdir -p examples/data 8.323 + cp ../en/examples/data/netplug-1.2.5.tar.bz2 examples/data 8.324 + 8.325 +examples/data/netplug-1.2.8.tar.bz2: 8.326 + mkdir -p examples/data 8.327 + cp ../en/examples/data/netplug-1.2.8.tar.bz2 examples/data
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 9.2 +++ b/ja/Makefile.linux Fri Aug 14 12:10:47 2009 -0700 9.3 @@ -0,0 +1,11 @@ 9.4 +# -*- makefile -*- 9.5 + 9.6 +include ./Makefile 9.7 + 9.8 +#SVG2PNG= 9.9 +#SVG2EPS= 9.10 +#GS= 9.11 +#MAKEINDEX= 9.12 + 9.13 +atbegxxx.tex: atbegdvi.tex 9.14 + cp $< $@
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/ja/Makefile.win32 Fri Aug 14 12:10:47 2009 -0700 10.3 @@ -0,0 +1,11 @@ 10.4 +# -*- makefile -*- 10.5 + 10.6 +include ./Makefile 10.7 + 10.8 +SVG2PNG= sh svg2png_w32.sh 10.9 +SVG2EPS= sh svg2eps_w32.sh 10.10 +GS= gswin32c 10.11 +MAKEINDEX= jmakeindex 10.12 + 10.13 +atbegxxx.tex: atbegshi.tex 10.14 + cp $< $@
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 11.2 +++ b/ja/README.ja.txt Fri Aug 14 12:10:47 2009 -0700 11.3 @@ -0,0 +1,182 @@ 11.4 +=============================================================================== 11.5 + HGBOOK $BK]Lu(B 11.6 +=============================================================================== 11.7 + 11.8 +$BK\%G%#%l%/%H%jG[2<$K3JG<$5$l$F$$$k@.2LJ*$O!"0J2<$N(B URL $B$G8x3+$5$l$F$$$k(B 11.9 +Bryan O'Sullivan $B;a$K$h$k(B "Mercurial: The Definitive Guide" $B$NK]LuHG$G$9!#(B 11.10 + 11.11 + http://hgbook.red-bean.com/ 11.12 + 11.13 +**** 11.14 +**** $BCm0U(B 11.15 +**** 11.16 + 11.17 +** $BFbMF$K4X$9$kCm0U(B 11.18 + 11.19 + - $BK]Lu%Y!<%9$,(B 2007-06-17 $B;~E@$NHG$J$N$G!"(B1.x $BHG0J9_$H$J$C$?8=>u$N(B 11.20 + Mercurial $B$K$=$0$o$J$$FbMF$,4^$^$l$F$$$^$9(B 11.21 + 11.22 + 11.23 +** $BK]LuFbMF$K4X$9$kCm0U(B: 11.24 + 11.25 + - $BK]Lu?e=`$r;n9T:x8m$7$F$$$k:"$@$C$?$N$G!"!V(Bcommit$B!W$r!V3NDj!W$HLu$9(B 11.26 + $B$J$I!"8=>u$N(B Mercurial $B%a%C%;!<%8K]Lu$NJ}?K$H$O0[$J$k$b$N$,4^$^$l$F(B 11.27 + $B$$$^$9(B 11.28 + 11.29 + $B"((B $B8=>u$N(B Mercurial $B%a%C%;!<%8K]LuJ}?K$N>\:Y$K4X$7$F$O!"0J2<$NF|K\(B 11.30 + $B8lK]Lu%W%m%8%'%/%H$N@.2LJ*$r;2>H$7$F$/$@$5$$(B 11.31 + 11.32 + http://bitbucket.org/foozy/mercurial-translation-ja/wiki/ 11.33 + 11.34 + - $B86Cx$N0J2<$N(B Appendix $B$OK]LuHG$K$O4^$^$l$F$$$^$;$s(B 11.35 + 11.36 + - Command reference 11.37 + - Mercurial Queues reference 11.38 + 11.39 + - $B86Cx$N0J2<$N(B Appendix $B$OL$K]Lu$G$9(B 11.40 + 11.41 + - Open Publication License 11.42 + 11.43 + - $BE,@Z$JLu$,$G$-$J$+$C$?2U=j$K$O!"(B"XXXX" $B%^!<%/$H6&$K86J8$rJ;5-$7$F$"(B 11.44 + $B$j$^$9(B 11.45 + 11.46 + 11.47 +** $BK]Lu@.2L$K4X$9$kCm0U(B: 11.48 + 11.49 + - $BK\Mh$O!"<B:]$K%3%^%s%I$r<B9T$7$?7k2L$rJ8=q$K<h$j9~$`$h$&$K$J$C$F$$(B 11.50 + $B$^$9$,(B: 11.51 + 11.52 + - $B4|BTFbMF$H$N:9$r8!=P$7$?:]$K!"<B9T7k2L@8@.$,CfCG$5$l$F$7$^$&(B 11.53 + 11.54 + - Mercurial $B$NHG$r87L)$K0lCW$5$;$J$$$H!":9J,$,8!=P$5$l$F$7$^$&(B 11.55 + 11.56 + - $B%3%^%s%I<+F0<B9T$,(B Win32 $B4D6-$G$O>e<j$/5!G=$7$J$$(B 11.57 + 11.58 + $B0J>e$N$3$H$+$i!"<B9T7k2L=PNO$OJLESDs6!$9$k$b$N$rE83+$7$F;HMQ$9$k$3(B 11.59 + $B$H$H$7$F$$$^$9(B 11.60 + 11.61 + $BJLESDs6!$7$F$$$k<B9T7k2L=PNO$O!"Hf3SE*?7$7$$(B Mercurial $B$r;HMQ$7$F@8(B 11.62 + $B@.$7$F$$$k$?$a!"86Cx<T$N4|BT$9$k$b$N$H$O0[$J$k2DG=@-$,$"$j$^$9(B 11.63 + 11.64 + - $B0J2<$NM}M3$+$i!"K]Lu7k2L%U%!%$%k$NJ8;z%3!<%I$K$O(B iso-2022-jp $B$r:NMQ(B 11.65 + $B$7$F$$$^$9(B: 11.66 + 11.67 + - TeX $B$N(B Unicode $B2=$,<BMQE*$J$N$O(B Win32 $B4D6-(B(+ MacOS ?)$B$N$_(B 11.68 + 11.69 + - Linux/Win32 $B4D6-$NF|K\8l2=$5$l$?(B TeX $B$,!"6&$KG'<12DG=$JJ8;z%3!<(B 11.70 + $B%I$O(B iso-2022-jp $B$N$_(B 11.71 + 11.72 + - PDF $B@8@.$O(B Linux/Win32 $B$NN>4D6-$G3NG':Q$_(B 11.73 + 11.74 + - HTML $B@8@.$O(B Win32 $B4D6-$G$N$_3NG':Q$_(B 11.75 + 11.76 + $B0J2<$NM}M3$+$i!"(B($B%Q%C%1!<%8%Y!<%9$G4D6-9=C[$9$k$N$G$"$l$P(B)Win32 $B4D(B 11.77 + $B6-$G$N$_(B HTML $B@8@.$r3NG':Q$_$G$9!#(B 11.78 + 11.79 + - HTML $B2=$K;HMQ$9$k(B tex4ht $B$O!"(BASCII TeX(ptex)$B$G$O$J$/!"(B 11.80 + NTT-jTeX $B$,I,MW(B($BFbIt$G$N=hM}$N0c$$$K5/0x(B) 11.81 + 11.82 + - Vine $B8~$1$N(B NTT-jTeX $B%Q%C%1!<%8$ON.DL$7$F$$$J$$(B 11.83 + 11.84 + - Debian $B8~$1$N(B NTT-jTeX $B%Q%C%1!<%8$OHG$,8E$9$.$k(B 11.85 + 11.86 + - HTML $B@8@.$O%U%!%$%kJ,3d7A<0$N$_(B 11.87 + 11.88 + $BC10l%U%!%$%k7A<0$N(B HTML $B@8@.$O!"(BLaTeX $B$,%R!<%WNN0hITB-$GHaLD$r>e$2(B 11.89 + $B$F$7$^$&$?$a!"8=;~E@$G$OL$3NG'$G$9(B 11.90 + 11.91 + 11.92 +**** 11.93 +**** $B;vA0=`Hw(B 11.94 +**** 11.95 + 11.96 + $B8=>u!"(BLaTeX $B%=!<%9$+$i$N(B PDF/HTML $B@8@.$O!"0J2<$N4D6-$G3NG'$7$F$$$^$9!#(B 11.97 + 11.98 + - Vine 4.2 2.6.16-76.40vl4 (Linux) 11.99 + - Debian 2.6.26-13lenny2 (Linux) 11.100 + - Windows XP/Vista (Win32) 11.101 + 11.102 + $B@8@.$KI,MW$J%Q%C%1!<%8$NF3F~J}K!Ey$K4X$7$F$O!"$=$l$>$l0J2<$N(B URL $B$r;2(B 11.103 + $B>H$7$F$/$@$5$$!#(B 11.104 + 11.105 + - Vine: 11.106 + http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?cmd=read&page=Linux%2Fvine 11.107 + 11.108 + - Debian: 11.109 + http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?cmd=read&page=Linux%2FDebian 11.110 + $B"((B $B>e5-%Z!<%8$G$N@bL@$O(B Sarge $B$G$N$b$N$G$9$,!"F0:n3NG':Q$_4D(B 11.111 + $B6-$O(B Lenny $B$G$9(B 11.112 + 11.113 + - Win32: 11.114 + http://www.fsci.fuk.kindai.ac.jp/kakuto/win32-ptex/web2c75.html 11.115 + http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB(Windows) 11.116 + 11.117 + $BF0:n3NG':Q$_$N4D6-$K4X$9$k>pJs$O!"(Bja/CONFIRMED.ja.txt $B$r;2>H$7$F$/$@(B 11.118 + $B$5$$(B($BF3F~8e$N<jF0@_Dj$K4X$9$k5-=R$b$"$j$^$9$N$G!"I,$:L\$rDL$7$F$/$@$5(B 11.119 + $B$$(B)$B!#(B 11.120 + 11.121 + Linux $B4D6-$G%Q%C%1!<%8F3F~$9$k>l9g$O!"<+F0E*$K0MB8%Q%C%1!<%8$NF3F~$,(B 11.122 + $B9T$o$l$^$9$,!"(BWin32 $B>e$G4D6-9=C[$9$k>l9g$O!"<jF0$GE,59F3F~$9$kI,MW$,(B 11.123 + $B$"$j$^$9!#(B 11.124 + 11.125 + $B%Q%C%1!<%84V$N0MB84X78$O!"F3F~$9$kHG$K$h$C$F>o$KJQF0$7$^$9$N$G!"%G%#(B 11.126 + $B%9%/MFNL;v>p$,5v$9$J$i!";n9T:x8m$r$9$k$h$j$bA4%Q%C%1!<%8$rF3F~(B($B!V%U%k(B 11.127 + $B%$%s%9%H!<%k!W$H8F$P$l$k>uBV(B)$B$9$k$N$,$*4+$a$G$9!#(B 11.128 + 11.129 + 11.130 + TeX/LaTeX $B$H$OJL$K!"0J2<$N%D!<%k$NF3F~$,I,MW$G$9!#(B 11.131 + 11.132 + - Inkscape: SVG $B2hA|$+$i$NJQ49=hM}$K;HMQ(B 11.133 + http://www.inkscape.org/ 11.134 + 11.135 + - Graphviz: $B%0%i%U2hA|$N@8@.$K;HMQ(B 11.136 + http://www.graphviz.org/ 11.137 + 11.138 + Debian/Vine $BEy$N(B Linux $B4D6-$G$O%Q%C%1!<%84IM}%D!<%k7PM3$GF3F~2DG=$G$9(B 11.139 + $B$,!"(BWin32 $B4D6-$X$NF3F~$O%@%&%s%m!<%I!u%$%s%9%H!<%k$r<jF0$G9T$&I,MW$,(B 11.140 + $B$"$j$^$9!#(B 11.141 + 11.142 + 11.143 + LaTeX $B$d2hA|%U%!%$%k$H$OD>@\4X78$7$^$;$s$,!"0J2<$N$b$N$bI,MW$G$9!#(B 11.144 + 11.145 + - Perl 11.146 + - Python 11.147 + - GNU make 11.148 + - GNU bash $B"((B $B$$$o$f$k(B B-shell $B$G$b2D(B 11.149 + 11.150 + 11.151 +**** 11.152 +**** PDF/HTML $B$N@8@.<j=g(B 11.153 +**** 11.154 + 11.155 + 1. lxo $B%U%!%$%k$NE83+(B 11.156 + 11.157 + $B0J2<$N(B URL $B$GI=<($5$l$k%Z!<%8$N(B "Uploaded files" $B$K$"$k(B 11.158 + "hgbook_lxo.tar.gz" $B$r%@%&%s%m!<%I$7!"!V(BHGBOOK $B$N%=!<%9%D%j!<$N%k!<(B 11.159 + $B%H0LCV!W$GE83+$7$F$/$@$5$$!#(B 11.160 + 11.161 + http://bitbucket.org/foozy/hgbook-ja/downloads/ 11.162 + 11.163 + 2. ja $B%G%#%l%/%H%j(B($B$3$N%U%!%$%k$N3JG<$5$l$F$$$k0LCV(B)$B$K0\F0(B 11.164 + 11.165 + $B"((B $B0J2<$N@bL@$O!"A4$F$3$N%G%#%l%/%H%j$r5/E@$H$7$F$$$^$9(B 11.166 + 11.167 + 3. Makefile $B$NA*Br(B 11.168 + 11.169 + Linux $B4D6-$N>l9g$O(B Makefile.linux $B$r!"(BWin32 $B4D6-$N>l9g$O(B 11.170 + Makefile.win32 $B$r;HMQ$7$^$9!#(B 11.171 + 11.172 + $B0J2<$N(B "make $B<B9T(B" $B$K4X$9$k2U=j$K$*$$$F!"$=$l$>$l(B "-f 11.173 + Makefile.linux" $B$J$$$7(B "-f Makefile.win32" $B$r;XDj$9$k$b$N$H$7(B 11.174 + $B$^$9!#(B 11.175 + 11.176 + 4. PDF $B$N@8@.$O(B "make pdf" $B$r<B9T(B 11.177 + 11.178 + pdf $B%G%#%l%/%H%jG[2<$K(B hgbook.pdf $B$,@8@.$5$l$^$9!#(B 11.179 + 11.180 + 5. HTML $B$N@8@.$O(B "make split" $B$r<B9T(B($B"((B Win32 $B4D6-$G$N$_@8@.$r3NG'(B) 11.181 + 11.182 + html/split $B%G%#%l%/%H%jG[2<$K(B HTML $B%U%!%$%k$,@8@.$5$l$^$9!#(B 11.183 + $BI,MW$J%U%!%$%k$O(B *.css *.html $B$*$h$S(B *.png $B%U%#%k$G$9!#(B 11.184 + 11.185 +===============================================================================
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/ja/atbegdvi.tex Fri Aug 14 12:10:47 2009 -0700 12.3 @@ -0,0 +1,7 @@ 12.4 +% encoding specified below depends not on one of file content 12.5 +% but on TeX processing internal one. 12.6 +\ifnum 42146=\euc"A4A2 12.7 + \AtBeginDvi{\special{pdf:tounicode EUC-UCS2}} 12.8 +\else 12.9 + \AtBeginDvi{\special{pdf:tounicode 90ms-RKSJ-UCS2}} 12.10 +\fi
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 13.2 +++ b/ja/atbegshi.tex Fri Aug 14 12:10:47 2009 -0700 13.3 @@ -0,0 +1,11 @@ 13.4 +\usepackage{atbegshi} % defnes '\AtBeginShipoutFirst' 13.5 + 13.6 +% encoding specified below depends not on one of file content 13.7 +% but on TeX processing internal one. 13.8 +\ifnum 42146=\euc"A4A2 13.9 + % \AtBeginDvi does not work correctly with current HYPERREF package 13.10 + \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}} 13.11 +\else 13.12 + % \AtBeginDvi does not work correctly with current HYPERREF package 13.13 + \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}} 13.14 +\fi
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/ja/bookhtml.cfg Fri Aug 14 12:10:47 2009 -0700 14.3 @@ -0,0 +1,18 @@ 14.4 +% -*- latex -*- 14.5 + 14.6 +\Preamble{xhtml} 14.7 + 14.8 +% Tex4ht's default definition of lists is complete crap. 14.9 +% Unfortunately, it can't distinguish between "ul" and "dl" lists. 14.10 + 14.11 +\ConfigureList{itemize}% 14.12 + {\EndP\HCode{<ul>}\let\endItem=\empty} 14.13 + {\ifvmode \IgnorePar\fi 14.14 + \EndP\HCode{</li></ul>}\ShowPar} 14.15 + {\endItem \def\endItem{\EndP\Tg</span>}\HCode{<li><span class="dt">}} 14.16 + {\HCode{</span><span class="dd">}} 14.17 +\def\textbullet{} 14.18 + 14.19 +\begin{document} 14.20 + 14.21 +\EndPreamble
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 15.2 +++ b/ja/branch.tex Fri Aug 14 12:10:47 2009 -0700 15.3 @@ -0,0 +1,528 @@ 15.4 +\chapter{Managing releases and branchy development} 15.5 +\label{chap:branch} 15.6 + 15.7 +Mercurial $B$O!"(B 15.8 +$BF1;~JB9TE*$K3+H/$r?J$a$k$h$&$J%W%m%8%'%/%H$r4IM}$G$-$k;EAH$_$r;}$C$F$$$^$9!#(B 15.9 +$B$3$l$i$N;EAH$_$rM}2r$9$k$?$a$K!"(B 15.10 +$B$^$:$O0lHLE*$J%=%U%H%&%'%"3+H/$N;EAH$_$rD/$a$F$_$^$7$g$&!#(B 15.11 + 15.12 +$BB?$/$N%=%U%H%&%'%"%W%m%8%'%/%H$G$O!"(B 15.13 +$B=EMW$J?75,5!G=$r4^$`(B``$B%a%8%c!<(B''$B%j%j!<%9$r4V7gE*$KH/9T$7$^$9!#(B 15.14 +$B$=$l$HJ?9T$7$F(B``$B%^%$%J!<(B''$B%j%j!<%9$bH/9T$9$k$3$H$,$"$j$^$9!#(B 15.15 +$BB?$/$N>l9g!"(B 15.16 +$B%^%$%J!<%j%j!<%9$O85$K$7$?%a%8%c!<%j%j!<%9$HF10l$G$9$,!"(B 15.17 +$B%P%0$N=$@5$,$J$5$l$F$$$^$9!#(B 15.18 + 15.19 +$B$3$N>O$G$O!"(B 15.20 +$B!V%j%j!<%9!W$N$h$&$J%W%m%8%'%/%H$N%^%$%k%9%H!<%s$N!"(B 15.21 +$B5-O?$rJ];}$9$kJ}K!$+$i@bL@$r;O$a$?$$$H;W$$$^$9!#(B 15.22 +$B$=$N8e$G!"(B 15.23 +$B%W%m%8%'%/%H$K$*$1$k%U%'!<%:0\9T$G$N:n6H$NN.$l$d!"(B 15.24 +$B$=$N:]$N:n6H$d@.2LJ*$r(B 15.25 +Mercurial $B$K$h$C$FJ,N%!?4IM}$9$kJ}K!$r@bL@$7$^$9!#(B 15.26 + 15.27 +\section{Giving a persistent name to a revision} 15.28 + 15.29 +$BFCDj$N%j%S%8%g%s$r(B``$B%j%j!<%9(B''$B$H8F$V$3$H$K7hDj$7$?$J$i!"(B 15.30 +$B$=$N%j%S%8%g%s$N(B ID $B$r5-O?$9$k$Y$-$G$9!#(B 15.31 +$B%j%S%8%g%s$N(B ID $B$r5-O?$9$k$3$H$G!"(B 15.32 +$B8eF|2?$i$+$NM}M3!JNc$($P%P%0$N:F8=$d!"?75,%W%i%C%H%U%)!<%`$X$N0\?"Ey!K(B 15.33 +$B$GI,MW$K$J$C$?:]$K%j%j!<%9$r:F8=$9$k$3$H$,$G$-$^$9!#(B 15.34 + 15.35 +\interaction{tag.init} 15.36 + 15.37 +\hgcmd{tag} $B%3%^%s%I$rMxMQ$9$k$3$H$G!"(B 15.38 +Mercurial $B$OG$0U$N%j%S%8%g%s$K1JB3E*$JL>A0$rIUM?$7$^$9!#(B 15.39 +$BFI<T$NM=A[DL$j!"$3$NL>A0$N$3$H$r(B``$B%?%0(B''$B$H8F$S$^$9!#(B 15.40 + 15.41 +\interaction{tag.tag} 15.42 + 15.43 +$B%j%S%8%g%s$K$H$C$F!"(B 15.44 +$B%?%0$O(B``$B>]D'E*$JL>A0(B''(symbolic name) $B0J30$N2?<T$G$b$"$j$^$;$s!#(B 15.45 +$B%?%0$O=c?h$KMxJX@-$N$?$a$KB8:_$9$k$b$N$G!"(B 15.46 +$B%j%S%8%g%s$r;2>H$9$k:]$N<j7Z$G1JB3E*$J<jCJ$H$J$j$^$9!#(B 15.47 +Mercurial $B$O!"(B 15.48 +$BMxMQ<T$NMQ$$$k%?%0L>$N0UL#$r2r<a$7$?$j$7$^$;$s!#(B 15.49 +$B[#Kf$5$,L5$/2r@O$G$-$k$3$H$rJ]>Z$9$k$?$a$KI,MW$J>/!9$N@)Ls$r=|$$$F$O!"(B 15.50 +$B%?%0L>$K2?$i$+$N@)Ls$r$D$1$?$j$9$k$3$H$b$"$j$^$;$s!#(B 15.51 +$B0J2<$N$$$:$l$NJ8;z$b%?%0L>$K$O;HMQ$G$-$^$;$s!#(B 15.52 + 15.53 +\begin{itemize} 15.54 +\item $B%3%m%s(B(ASCII 58, ``\texttt{:}'') 15.55 +\item $B9TF,0\F0(B\footnote{carriage return} (ASCII 13, ``\Verb+\r+'') 15.56 +\item $B2~9T(B (ASCII 10, ``\Verb+\n+'') 15.57 +\end{itemize} 15.58 + 15.59 +\hgcmd{tags} $B%3%^%s%I$r;HMQ$9$k$3$H$G!"(B 15.60 +$B%j%]%8%H%j$,J];}$7$F$$$k%?%0$rI=<($5$;$k$3$H$,$G$-$^$9!#(B 15.61 +\hgcmd{tags} $B%3%^%s%I$N=PNO$K$*$$$F!"(B 15.62 +$B8D!9$N%?%0IU$1$5$l$?%j%S%8%g%s$O!"(B 15.63 +$B;O$a$K%?%0L>$G!"<!$K%j%S%8%g%sHV9f$G!"(B 15.64 +$B:G8e$K0l0U$N%j%S%8%g%s%O%C%7%eCM$G<1JL$5$l$^$9!#(B 15.65 + 15.66 +\interaction{tag.tags} 15.67 + 15.68 +\texttt{tip} $B%?%0$,(B \hgcmd{tags} 15.69 +$B%3%^%s%I$N=PNO$KNs5s$5$l$F$$$k$3$H$KCm0U$7$F$/$@$5$$!#(B 15.70 +\texttt{tip} $B$O!">o$K%j%]%8%H%jCf$N:G?7$N%j%S%8%g%s$r;X$9(B 15.71 +``$BN.F0E*$J(B''$BFC<l%?%0$G$9!#(B 15.72 + 15.73 +\hgcmd{tags} $B%3%^%s%I$N=PNO$G$O!"(B 15.74 +$B%?%0$O%j%S%8%g%sHV9f$N5U=g!J9_=g!K$GNs5s$5$l$F$$$^$9!#(B 15.75 +$B$3$l$O:G?7$N%?%0$O8E$$%?%0$h$j$b@h$KNs5s$5$l$k$3$H$r0UL#$7!"(B 15.76 +$B$=$l$OF1;~$K(B \hgcmd{tags} $B$,=PNO$9$k%?%00lMw$N:G=i$K(B 15.77 +\texttt{tip} $B$,I=<($5$l$k$3$H$b0UL#$7$^$9!#(B 15.78 + 15.79 +\hgcmd{log} $B%3%^%s%I$N<B9T;~$K!"(B 15.80 +$B%?%0$H4XO"IU$1$i$l$?%j%S%8%g%s$rI=<($9$k>l9g!"(B 15.81 +\hgcmd{log} $B%3%^%s%I$O%?%0$rI=<($7$^$9!#(B 15.82 + 15.83 +\interaction{tag.log} 15.84 + 15.85 +Mercurial $B%3%^%s%I$KBP$7$F%j%S%8%g%s<1JL;R$r;XDj$9$kI,MW$,$"$k>l9g!"(B 15.86 +$B%j%S%8%g%s<1JL;R$r;XDj$9$k0LCV$G$O!"(B 15.87 +$B>o$K%?%0L>$r;HMQ$9$k$3$H$,$G$-$^$9!#(B 15.88 +Mercurial $B$NFbIt$G$O!"(B 15.89 +$B%?%0L>$rBP1~$9$k%j%S%8%g%s<1JL;R$KJQ49$7$F$+$i;HMQ$7$F$$$^$9!#(B 15.90 + 15.91 +\interaction{tag.log.v1.0} 15.92 + 15.93 +$BC10l$N%j%]%8%H%j$,J];}$G$-$k%?%0$N?t$K$b!"(B 15.94 +$BC10l$N%j%S%8%g%s$KIUM?$G$-$k%?%0$N?t$K$b@)8B$O$"$j$^$;$s!#(B 15.95 +$B8=<BE*$JLdBj$H$7$F!"(B 15.96 +$B%?%0$OC1$K%j%S%8%g%s$NFCDj$rJd=u$9$k$b$N$G$9$+$i!"(B 15.97 +``$B2a>j$K(B''$B!J6qBNE*$J?t$O%W%m%8%'%/%H$K1~$8$F0[$J$j$^$9$,!K(B 15.98 +$B%?%0$rIUM?$9$k$N$O$h$m$7$/$"$j$^$;$s!#(B 15.99 +$BB?$/$N%?%0$,$"$k$H!"%j%S%8%g%s$rFCDj$9$kMxJX@-$,Aa!9$K8:>/$7$F$7$^$$$^$9!#(B 15.100 + 15.101 +$BNc$($P!"(B 15.102 +$B$"$k%W%m%8%'%/%H$G$O?tF|Kh$NIQEY$G%^%$%k%9%H!<%s$r@_Dj$7$F$$$k$H$9$k$H!"(B 15.103 +$B$=$l$>$l$N%^%$%k%9%H!<%s$K%?%0$rIUM?$9$k$N$O6K$a$F9gM}E*$G$9!#(B 15.104 +$B$7$+$7!"A4$F$N%j%S%8%g%s$G3N<B$Ke:No$J%S%k%I$,$G$-$k7QB3E*(B 15.105 +$B!J(Bcontinuous$B!K$J%S%k%I%7%9%F%`$,$"$k>l9g$O!"(B 15.106 +$Be:No$J%S%k%IKh$K%?%0$rIUM?$9$k$H!"BgNL$N%N%$%:$r;}$A9~$`$3$H$K$J$j$^$9!#(B 15.107 +$B$=$NBe$o$j$K!"(B 15.108 +$B%S%k%I$,<:GT$9$k%j%S%8%g%s!J$3$N;vBV$,5)$@$H2>Dj$7$F$$$^$9!*!K(B 15.109 +$B$K%?%0$rIUM?$9$k$+!"(B 15.110 +$B%S%k%I$N2DH]$rDI@W$9$k%?%0$N;HMQ$r;_$a$k$N$,NI$$$G$7$g$&!#(B 15.111 + 15.112 +$BI,MW$NL5$/$J$C$?%?%0$r:o=|$7$?$$>l9g$O(B 15.113 +\hgcmdargs{tag}{--remove} $B%3%^%s%I$r;HMQ$7$^$9!#(B 15.114 + 15.115 +\interaction{tag.remove} 15.116 + 15.117 +$BG$0U$N;~E@$G%?%0$N4XO"IU$1$rJQ99$9$k$3$H$b$G$-$^$9$N$G!"(B 15.118 +$B?75,$N(B \hgcmd{tag} $B%3%^%s%I<B9T$K$h$j!"(B 15.119 +$BF10l$N%?%0$,0[$J$k%j%S%8%g%s$r<1JL$9$k$h$&$K$J$j$^$9!#(B 15.120 +\emph{$BK\Ev$K(B}$B%?%0$r99?7$7$?$$$3$H$r(B Mercurial $B$KEA$($k$?$a$K!"(B 15.121 +\hgopt{tag}{-f} $B%*%W%7%g%s$r;HMQ$7$J$1$l$P$J$j$^$;$s!#(B 15.122 + 15.123 +\interaction{tag.replace} 15.124 + 15.125 +$B%?%0$N99?78e$b!"(B 15.126 +$B%?%0$,0JA0$K<1JL$7$F$$$?%j%S%8%g%s$K4X$9$k1JB3E*$J5-O?$,;D$j$^$9$,!"(B 15.127 +Mercurial $B$,$=$l$r;HMQ$9$k$3$H$O$"$j$^$;$s!#(B 15.128 +$B$3$N$h$&$K!"(B 15.129 +$B4V0c$C$?%j%S%8%g%s$X$N%?%0$NIUM?$K$O2?$NITMx1W$b$"$j$^$;$s$N$G!"(B 15.130 +$B%?%0IU$1$r4V0c$C$?$J$i!"@5$7$$%j%S%8%g%s$K%?%0$rIUM?$7D>$;$P$h$$$N$G$9!#(B 15.131 + 15.132 +Mercurial $B$O!"(B 15.133 +$B%j%]%8%H%jCf$N%j%S%8%g%s4IM}$5$l$?DL>o%U%!%$%k$K%?%0$N>pJs$r3JG<$7$F$$$^$9!#(B 15.134 +$B2?$i$+$N%?%0$rIUM?$9$k$H!"(B 15.135 +\sfilename{.hgtags} $B%U%!%$%kCf$K$=$N%?%0$r8+$D$1$k$3$H$,$G$-$k$G$7$g$&!#(B 15.136 +\hgcmd{tag} $B%3%^%s%I$r<B9T$9$k$H!"(B 15.137 +Mercurial $B$O$3$N%U%!%$%k$rJQ99$7!"<+F0E*$KJQ99$r%3%_%C%H$7$^$9!#(B 15.138 +$B$3$N$3$H$O!"(B 15.139 +\hgcmd{tag} $B%3%^%s%I$r<B9T$7$?:]$K$O!"(B 15.140 +$B>o$KBP1~$9$k%A%'%s%8%;%C%H$r(B \hgcmd{log} $B%3%^%s%I$N=PNO$G8+$k$3$H$,$G$-$k!"(B 15.141 +$B$H$$$&$3$H$r0UL#$7$F$$$^$9!#(B 15.142 + 15.143 +\interaction{tag.tip} 15.144 + 15.145 +\subsection{Handling tag conflicts during a merge} 15.146 + 15.147 +\sfilename{.hgtags} $B%U%!%$%k$r5$$K$9$kI,MW$OKX$I$"$j$^$;$s$,!"(B 15.148 +$B;~$K$O%^!<%8$N:]$K$=$NB8:_$,0U<1$5$l$k$3$H$,$"$j$^$9!#(B 15.149 +$B$3$N%U%!%$%k$N7A<0$OC1=c$G!"O"B3$7$?9T$+$i9=@.$5$l$F$$$^$9!#(B 15.150 +$B3F9T$O%A%'%s%8%;%C%H$N%O%C%7%eCM$G;O$^$j!"6uGr$H%?%0L>$,B3$-$^$9!#(B 15.151 + 15.152 +$B%^!<%8$K$*$1$k(B 15.153 +\sfilename{.hgtags} $B%U%!%$%k$N>WFM$r2r>C$9$k:]$K$O!"(B 15.154 +\sfilename{.hgtags} $B%U%!%$%k=$@5$K$R$M$j$,I,MW$G$9!#(B 15.155 +$B%j%]%8%H%jCf$N%?%0$r2r@O$9$k>l9g!"(B 15.156 +Mercurial $B$O(B\emph{$B7h$7$F(B} 15.157 +\sfilename{.hgtags} $B%U%!%$%k$N%o!<%-%s%0%3%T!<$r;2>H$9$k$3$H$O$"$j$^$;$s!#(B 15.158 +$B$=$NBe$o$j$K!"(BMercurial 15.159 +$B$O(B\emph{$B:G$b:G6a%3%_%C%H$5$l$?(B}$B%U%!%$%k$N%j%S%8%g%s$rD4$Y$^$9!#(B 15.160 + 15.161 +$B$3$N$h$&$J@_7W$N;DG0$J7k2L$H$7$F!"(B 15.162 +$B%^!<%8$7$?(B \sfilename{.hgtags} $B%U%!%$%k$,!"(B 15.163 +$B$=$NJQ99$r%3%_%C%H$7$?(B\emph{$B8e$b(B}$B@5$7$$>uBV$G$"$k$3$H$r!"(B 15.164 +$B<B:]$K8!>Z$9$k$3$H$,$G$-$^$;$s!#(B 15.165 +$B%^!<%8$N:]$K(B \sfilename{.hgtags} $B%U%!%$%k$N>WFM$r2r>C$9$k:]$K$O!"(B 15.166 +$B%3%_%C%H8e$K(B \hgcmd{tags} $B%3%^%s%I$N<B9T$rK:$l$:$K9T$C$F$/$@$5$$!#(B 15.167 +\sfilename{.hgtags} $B%U%!%$%k$KIT@5$,$"$C$?>l9g!"(B 15.168 +\hgcmd{tags} $B%3%^%s%I$OIT@5$N>l=j$rJs9p$7$^$9$N$G!"(B 15.169 +$B$=$N2U=j$r=$@5$7$F%3%_%C%H$9$l$PNI$$$N$G$9!#(B 15.170 +$BJQ99FbMF$N@5$7$5$r3NG'$9$k$?$a$K!"(B 15.171 +$BJQ99$N8e$G!":FEY(B \hgcmd{tags} $B%3%^%s%I$r<B9T$7$F$/$@$5$$!#(B 15.172 + 15.173 +\subsection{Tags and cloning} 15.174 + 15.175 +\hgcmd{clone} $B%3%^%s%I$,(B 15.176 +$BFCDj$N%A%'%s%8%;%C%H$r;XDj$7$F87L)$JJ#@=$r:n@.$9$k$?$a$N(B 15.177 +\hgopt{clone}{-r} $B%*%W%7%g%s$r;}$C$F$$$k$3$H$K5$IU$$$F$$$k$+$b$7$l$^$;$s!#(B 15.178 +$B?7$7$$J#@=$O!"(B 15.179 +$B;XDj$7$?%j%S%8%g%s$h$j$b8e$K@8$8$?MzNr>pJs$r0l@Z;}$C$F$$$^$;$s!#(B 15.180 +$B$3$N$3$H$,%?%0$HAj8_:nMQ$7$?>l9g!"!"(B 15.181 +$BL}CG$7$F$$$k$H6C$+$5$l$k;vBV$K$J$j$^$9!#(B 15.182 + 15.183 +$B%?%0$N@8@.$,!"(B 15.184 +\sfilename{.hgtags} $B%U%!%$%k$X$N3JG<$N:]$K!"(B 15.185 +$B0l$D$N%j%S%8%g%s$H$7$F07$o$l$k$3$H$r;W$$=P$;$P!"(B 15.186 +$B%?%0$,5-O?$5$l$?%A%'%s%8%;%C%H$,!"(B 15.187 +$B%?%0$NIUM?BP>]$H$J$k!J8E$$!K%A%'%s%8%;%C%H$r;2>H$9$k$N$OEvA3$N$3$H$G$9!#(B 15.188 +$B%?%0(B \texttt{foo} $B;~E@$N%j%]%8%H%j$rJ#@=$9$k$?$a$K(B 15.189 +\hgcmdargs{clone}{-r foo} $B$r<B9T$7$?>l9g!"(B 15.190 +$BJ#@=$5$l$?%j%]%8%H%j$O!"(B 15.191 +$BJ#@=$9$k:]$K;HMQ$5$l$?(B\emph{$B%?%0$N:n@.$K4X$9$kMzNr$r;}$C$F$$$^$;$s(B}$B!#(B 15.192 +$B?7$7$$%j%]%8%H%j$K$O!"(B 15.193 +$B%W%m%8%'%/%HMzNr$N40A4$J%5%V%;%C%H$,4^$^$l$^$9$,!"(B 15.194 +$BM#0l!";XDj$KMQ$$$?%?%0$N>pJs$O(B\emph{$B4^$^$l$F$$$^$;$s(B}$B!#(B 15.195 + 15.196 +\subsection{When permanent tags are too much} 15.197 + 15.198 +Mercurial $B$N%?%0$O9=@.4IM}$5$l$F$*$j!"(B 15.199 +$B%W%m%8%'%/%H$NMzNr$H0lBN2=$7$F$$$k$?$a!"(B 15.200 +$BC/$+$,:n@.$7$?%?%0$O!"(B 15.201 +$B0l=o$K:n6H$r9T$C$F$$$kC/$b$,8+$k$3$H$,$G$-$^$9!#(B 15.202 +$B$7$+$7!"%j%S%8%g%s$KL>A0$rIU$1$k$3$H$O!"(B 15.203 +$B%j%S%8%g%s(B \texttt{4237e45506ee} $B$,<B$O(B \texttt{v2.0.2} $B$G$"$k!"(B 15.204 +$B$H$$$&$3$H$r=q$-N1$a$F$*$/0J>e$NM-MQ@-$,$"$j$^$9!#(B 15.205 +$B9*L/$J%P%0$rDI@W$9$k:]$K!"(B 15.206 +``$B%"%s$,$3$N%j%S%8%g%s$G>I>u$r8+$+$1$?(B''$B$H$$$C$?N`$NHwK:O?$H$7$F!"(B 15.207 +$B%?%0$rIUM?$7$?$$>l9g$b$"$k$G$7$g$&!#(B 15.208 + 15.209 +$B$3$N$h$&$J>l9g!"(B 15.210 +\emph{$B%m!<%+%k(B}$B$J%?%0$,:GE,$G$9!#(B 15.211 +\hgopt{tag}{-l} $B%*%W%7%g%sIU$-$G(B 15.212 +\hgcmd{tag} $B%3%^%s%I$r5/F0$9$k$3$H$G!"(B 15.213 +$B%m!<%+%k%?%0$r:n@.$9$k$3$H$,$G$-$^$9!#(B 15.214 +$B$3$N%3%^%s%I<B9T$N>l9g!"(B 15.215 +$B%?%0$O(B \sfilename{.hg/localtags} $B%U%!%$%k$K3JG<$5$l$^$9(B 15.216 +\sfilename{.hgtags} $B$H0[$J$j(B 15.217 +\sfilename{.hg/localtags} $B$O9=@.4IM}$5$l$^$;$s!#(B 15.218 +\hgopt{tag}{-l} $B$K$h$C$F:n@.$7$?%?%0$O!"(B 15.219 +$B8=:_:n6H$r$7$F$$$k%j%]%8%H%j$KN1$^$jB3$1$^$9(B 15.220 +\footnote{$BLuCm(B: \hgcmd{clone}$B!"(B\hgcmd{pull} $B$d(B 15.221 +\hgcmd{push} $B$K$h$C$FB>$N%j%]%8%H%j$K%3%T!<$5$l$k$3$H$,$"$j$^$;$s(B}$B!#(B 15.222 + 15.223 +\section{The flow of changes---big picture vs. little} 15.224 + 15.225 +$B$3$3$G!"K\>O$NKAF,$G=R$Y$?35N,$KLa$j!"(B 15.226 +$BJ#?t$NJ?9T$7$?3+H/$,F1;~$K9T$o$l$F$$$k%W%m%8%'%/%H$K$D$$$F9M$($F8+$^$7$g$&!#(B 15.227 + 15.228 +$B?7$7$$(B``$B<g(B''$B%j%j!<%9$d!"(B 15.229 +$B:G?7$N<g%j%j!<%9$KBP$9$k?7$?$J%^%$%J!<%P%0=$@5!"(B 15.230 +$B8=:_$OJ]<i>uBV$K$"$k$h$&$J8E$$%j%j!<%9$KBP$9$kM=4|$;$L(B``hot fix'' 15.231 +$B$N$?$a$N(B push $B$,$"$k$G$7$g$&!#(B 15.232 + 15.233 +$B3+H/$K$*$1$kMM!9$JJ?9T$7$?J}8~$r;2>H$9$k$?$a$N0lHLE*$JJ}K!$O!"(B 15.234 +``$B%V%i%s%A(B''$B$H8F$P$l$k$b$N$G$9!#(B 15.235 +$B$7$+$7!"(B 15.236 +Mercurial $B$,(B\emph{$BA4$F$NMzNr(B}$B$r(B 15.237 +$B!V%V%i%s%A$H%^!<%8$NO"B3!W$H$7$F07$C$F$$$k$3$H$r!"(B 15.238 +$B4{$K2?EY$b8+$F$-$^$7$?!#(B 15.239 +$B<B:]$K$O!"(B 15.240 +$BI=LLE*$K$O4X78$7$F$$$k$h$&$G!"(B 15.241 +$B$=$N<B!"$?$^$?$^F1$8L>A0$G$"$k$@$1$N#2$D$N35G0$r07$C$F$$$k$N$G$9!#(B 15.242 + 15.243 +\begin{itemize} 15.244 +\item ``$B5p;kE*$J(B''$B%V%i%s%A$O!"%W%m%8%'%/%HH/E8$N9-$,$j$rI=$7!"(B 15.245 + $BL>A0$r$D$1$?$j!"OCBj$K>e$C$?$j$7$^$9!#(B 15.246 + 15.247 +\item ``$BHy;kE*$J(B''$B%V%i%s%A$O!"F|!9$N3+H/3hF0$H!"JQ99%^!<%8$N@.2L$G$9!#(B 15.248 + $B$3$N%V%i%s%A$O!"%3!<%I$,$I$N$h$&$K3+H/$5$l$F$$$C$?$N$+$rJ*8l$j$^$9!#(B 15.249 + 15.250 +\end{itemize} 15.251 + 15.252 +\section{Managing big-picture branches in repositories} 15.253 + 15.254 +Mercurial $B$K$*$$$F(B``$B5p;kE*$J(B''$B%V%i%s%A$r3VN%$9$k:G$b4JC1$JJ}K!$O!"(B 15.255 +$B3VN%MQ$N%j%]%8%H%j$rMQ0U$9$k$3$H$G$9!#(B 15.256 +$BNc$($P!"4{$K$"$k6&M-%j%]%8%H%j(B---$B$3$l$r(B \texttt{myproject} $B$H8F>N$7$^$9(B 15.257 +---$B$,(B ``1.0'' $B$H$$$&%^%$%k%9%H!<%s$KE~C#$7$F$$$k>l9g!"(B 15.258 +1.0 $B%j%j!<%9$N$?$a$K;HMQ$7$?%j%S%8%g%s$K%?%0$rIUM?$9$k$3$H$G!"(B 15.259 +1.0 $BHG$KBP$9$kMh$k$Y$-J]<i%j%j!<%9$N=`Hw$r9T$$$^$9!#(B 15.260 + 15.261 +\interaction{branch-repo.tag} 15.262 + 15.263 +$B%?%0IU$1$7$?;~E@$HF1$8FbMF$N(B 15.264 +\texttt{myproject-1.0.1} 15.265 +$B$H$$$&L>$N?7$7$$6&M-%j%]%8%H%j$rJ#@=$7$^$9!#(B 15.266 + 15.267 +\interaction{branch-repo.clone} 15.268 + 15.269 +$B$=$N8e!"(B 15.270 +$BMh$k(B 1.0.1 $B%^%$%J!<%j%j!<%9$K4^$a$k$Y$-%P%0=$@5$N:n6H$,I,MW$K$J$C$?$J$i!"(B 15.271 +\texttt{myproject-1.0.1} $B%j%]%8%H%j$rJ#@=$7JQ99$r9T$C$F!"(B 15.272 +$B$=$N@.2L$rH?1G$7$^$9!#(B 15.273 + 15.274 +\interaction{branch-repo.bugfix} 15.275 + 15.276 +$B$=$N4V!"<!$N%a%8%c!<%j%j!<%9$X8~$1$?3+H/:n6H$O!"(B 15.277 +$B%^%$%J!<%j%j!<%9$K4X$9$k:n6H$H$O3VN%$5$l$?>uBV$G!"(B 15.278 +\texttt{myproject} $B%j%]%8%H%j$K$*$$$F3hH/$KB3$1$i$l$^$9!#(B 15.279 + 15.280 +\interaction{branch-repo.new} 15.281 + 15.282 +\section{Don't repeat yourself: merging across branches} 15.283 + 15.284 +$BJ]<iMQ%V%i%s%A$G%P%0=$@5$r9T$C$?$H$9$k$H!"(B 15.285 +$BB?$/$N>l9g!"%W%m%8%'%/%H$N%a%$%s%V%i%s%A$K(B 15.286 +$B!J$=$7$F$=$l0J30$NJ]<i%V%i%s%A$K$*$$$F$b!K(B 15.287 +$BF1$8%P%0$,B8:_$9$k2DG=@-$,$"$j$^$9!#(B 15.288 +$BF1$8%P%0$r2?EY$bD>$7$?$$$H;W$&3+H/<T$O5)$G$9$+$i!"(B 15.289 +$BF1$8:n6H$r7+$jJV$9$3$H$J$/%P%0=$@5$r4IM}$9$k$?$a$K(B 15.290 +Mercurial $B$,Ds6!$9$k4v$D$+$NJ}K!$r8+$F$_$^$7$g$&!#(B 15.291 + 15.292 +$B:G$bC1=c$JJ}K!$O!"(B 15.293 +$B:n6HBP>]%V%i%s%A$+$iJ#@=$7$?%m!<%+%k%j%]%8%H%j$X!"(B 15.294 +$BJ]<i%V%i%s%A$+$iJQ99$r(B pull $B$9$k$3$H$G$9!#(B 15.295 + 15.296 +\interaction{branch-repo.pull} 15.297 + 15.298 +$B$=$N>e$G#2$D$N%V%i%s%A$N$=$l$>$l$N%X%C%I$r%^!<%8$7!"(B 15.299 +$B$=$N@.2L$r%a%$%s%V%i%s%A$KH?1G$7$^$9!#(B 15.300 + 15.301 +\interaction{branch-repo.merge} 15.302 + 15.303 +\section{Naming branches within one repository} 15.304 + 15.305 +$BB?$/$N>l9g$O!"(B 15.306 +$B%j%]%8%H%j$NJ,N%$K$h$C$F%V%i%s%A$rJ,N%$9$k$N$,E,@Z$J8/$jJ}$G$9!#(B 15.307 +$BC1=c$G$9$+$iM}2r$b4JC1$G$9$7!"$=$l8N$K4V0c$($k$3$H$,$"$j$^$;$s!#(B 15.308 +$B:n6H$7$F$$$k%V%i%s%A$H!"%3%s%T%e!<%?>e$N!J%j%]%8%H%j!K%G%#%l%/%H%j$N4V$G!"(B 15.309 +$B#1BP#1$N4X78$,$G$-$F$$$^$9$N$G!"(B 15.310 +$B%V%i%s%A!?%j%]%8%H%jCf$N%U%!%$%k$KBP$7$F!"(B 15.311 +$B!J(BMercurial $B$r0U<1$7$J$$!KDL>o$N%D!<%k$r;HMQ$9$k$3$H$b$G$-$^$9!#(B 15.312 + 15.313 +$B$"$J$?$,!J$=$7$F6&F1:n6H<T$b!K(B 15.314 +``$B%Q%o!<%f!<%6!<(B''$B$h$j$b9b$$%l%Y%k$K$"$k$N$G$"$l$P!"(B 15.315 +$B%V%i%s%A(B(that you can consider XXXX)$B$r07$&JL$JJ}K!$,$"$j$^$9!#(B 15.316 +$BA0$N@a$G$O!"(B 15.317 +``$BHy;kE*(B''$B%V%i%s%A$H(B``$B5p;kE*(B''$B%V%i%s%A$N!"(B 15.318 +$BMxMQ<T%l%Y%k$G$N6hJL$K$D$$$F8@5Z$7$^$7$?!#(B 15.319 +$BC10l$N%j%]%8%H%jCf$G!"(B 15.320 +$B>o$KJ#?t$N(B``$BHy;kE*$J(B''$B%V%i%s%A(B 15.321 +$B!JNc$($P!"JQ99$N(B pull $B8e$K%^!<%8$7$F$$$J$$>uBV!K$r07$C$F$$$k0lJ}$G!"(B 15.322 +Mercurial $B$OJ#?t$N(B``$B5p;kE*$J(B''$B%V%i%s%A$r07$&$3$H(B\emph{$B$b(B}$B$G$-$^$9!#(B 15.323 + 15.324 +Mercurial $B$,(B``$B5p;kE*$J(B''$B%V%i%s%A$r07$&:]$NMWE@$O!"(B 15.325 +$B%V%i%s%A$K1JB3E*$J(B\emph{$BL>A0(B}$B$rIU$1$k$H$3$m$K$"$j$^$9!#(B 15.326 +$BA0=R$N$h$&$K(B \texttt{default} $B$H$$$&L>A0$N%V%i%s%A$,>o$KB8:_$7$^$9$N$G!"(B 15.327 +$B%V%i%s%A$X$NL?L>$r9T$&A0$G$"$C$F$b!"(B 15.328 +$BC5$;$P(B \texttt{default} $B%V%i%s%A$N@W$r8+$D$1$k$3$H$,$G$-$^$9!#(B 15.329 + 15.330 +$BNc$($P!"(B 15.331 +\hgcmd{commit} $B%3%^%s%I$r<B9T$9$k$H!"(B 15.332 +$B%(%G%#%?$,5/F0$5$l$F%3%_%C%H%a%C%;!<%8$rF~NO$G$-$^$9(B 15.333 +\footnote{$BLuCm(B: Emacs $B$N(B hg-mode.el $B$r;HMQ$7$F$$$k>l9g$O8+$i$l$^$;$s(B}$B$,!"(B 15.334 +$BKvHx$N(B ``\texttt{HG: branch default}'' $B$r4^$`9T$r8+$F$/$@$5$$!#(B 15.335 +$B$3$l$O!"(B\texttt{default} $B$H$$$&L>A0$N%V%i%s%A$KBP$7$F%3%_%C%H$7$F$$$k!"(B 15.336 +$B$H$$$&$3$H$rI=$7$F$$$^$9!#(B 15.337 + 15.338 +$B%V%i%s%A$KL>A0$r$D$1$k$K$O!"(B 15.339 +$B$^$:$O(B \hgcmd{branches} $B$r;HMQ$7$^$9!#(B 15.340 +$B$3$N%3%^%s%I$O!"%j%]%8%H%jCf$K4{$KB8:_$9$kL>A0IU$-%V%i%s%A$H!"(B 15.341 +$B8D!9$N%V%i%s%A$K$*$1$k@hF,!J(Btip$B!K%j%S%8%g%s$,$I$l$+$rNs5s$7$^$9!#(B 15.342 + 15.343 +\interaction{branch-named.branches} 15.344 + 15.345 +$B<B9TNc$G$O!"(B 15.346 +$BL>A0IU$-%V%i%s%A$r@8@.$9$kA0$G$9$+$i!"(B 15.347 +$BM#0lB8:_$9$k(B \texttt{default} $B$@$1$,I=<($5$l$^$9!#(B 15.348 + 15.349 +$B$I$l$,(B``$B8=:_$N(B''$B%V%i%s%A$+$rCN$k$K$O!"(B 15.350 +$B0z?tL5$7$G(B \hgcmd{branch} $B%3%^%s%I$r<B9T$7$^$9!#(B 15.351 +$B$3$N%3%^%s%I$O!"(B 15.352 +$B8=:_$N%A%'%s%8%;%C%H$N?F%A%'%s%8%;%C%H$,!"(B 15.353 +$B$I$N%V%i%s%A>e$K$"$k$b$N$+$rI=<($7$^$9!#(B 15.354 + 15.355 +\interaction{branch-named.branch} 15.356 + 15.357 +$B?7$7$$%V%i%s%A$r:n@.$9$k$K$O!"(B 15.358 +$B:FEY(B \hgcmd{branch} $B%3%^%s%I$r<B9T$7$^$9$,!"(B 15.359 +$B:#2s$O@8@.$9$k%V%i%s%AL>$r0z?t$H$7$F;XDj$7$^$9!#(B 15.360 + 15.361 +\interaction{branch-named.create} 15.362 + 15.363 +$B%V%i%s%A@8@.8e!"(B 15.364 +\hgcmd{branch} $B%3%^%s%I$K$h$j$I$N$h$&$JI{:nMQ$r@8$8$?$N$+!"(B 15.365 +$B2x$7$`$+$b$7$l$^$;$s!#(B 15.366 +\hgcmd{status} $B$d(B \hgcmd{tip} $B$N=PNO$O$I$&$J$C$F$$$k$G$7$g$&$+!)(B 15.367 + 15.368 +\interaction{branch-named.status} 15.369 + 15.370 +$B:n6HNN0h$KJQ99$O2C$($i$l$F$$$^$;$s$7!"(B 15.371 +$BMzNr$KJQ2=$b$"$j$^$;$s!#(B 15.372 +$B$3$N$3$H$,<(:6$7$F$$$k$h$&$K!"(B 15.373 +\hgcmd{branch} $B%3%^%s%I$N<B9T$O2?$i1JB3E*$J8z2L$r;}$A$^$;$s!#(B 15.374 +$B$3$N%3%^%s%I$O!"(B 15.375 +\emph{$B<!2s$N(B}$B%A%'%s%8%;%C%H$N%3%_%C%H$N:]$K!"(B 15.376 +$B2?$H$$$&%V%i%s%AL>$r;HMQ$9$k$+$r(B 15.377 +Mercurial $B$KEA$($k$@$1$G$9!#(B 15.378 + 15.379 +$BJQ99$r%3%_%C%H$9$k$H!"(B 15.380 +Mercurial $B$O%3%_%C%H$5$l$?%A%'%s%8%;%C%H$K%V%i%s%AL>$r5-O?$7$^$9!#(B 15.381 +$B0lC6(B \texttt{default} $B%V%i%s%A$+$iB>$N%V%i%s%A$K@Z$jBX$($F%3%_%C%H$7$?$J$i!"(B 15.382 +\hgcmd{log}$B!"(B\hgcmd{tip} $B$d$=$l$KN`$9$k=PNO$r;}$D%3%^%s%I$N=PNO$K!"(B 15.383 +$B?7$?$J%V%i%s%AL>$,I=<($5$l$F$$$k$3$H$G$7$g$&!#(B 15.384 + 15.385 +\interaction{branch-named.commit} 15.386 + 15.387 +\hgcmd{log} $B$KN`$9$k%3%^%s%I$O!"(B 15.388 +\texttt{default} $B%V%i%s%A0J30$KB0$9$kA4$F$N%A%'%s%8%;%C%H$KBP$7$F!"(B 15.389 +$B%V%i%s%AL>$rI=<($7$^$9!#(B 15.390 +$B$=$N$?$a!"L>A0IU$-%V%i%s%A$r;H$o$J$$8B$j!"(B 15.391 +$B%V%i%s%A$K4X$9$k>pJs$r8+$k$3$H$O$"$j$^$;$s!#(B 15.392 + 15.393 +$BL>A0IU$-%V%i%s%A$r:n@.$7!"$=$N%V%i%s%AL>$GJQ99$r%3%_%C%H$7$?$J$i$P!"(B 15.394 +$B$=$NJQ99$KO"$J$k$=$N8e$N%3%_%C%H$O!"F1$8%V%i%s%AL>$r0z$-7Q$.$^$9!#(B 15.395 +\hgcmd{branch} $B%3%^%s%I$K$h$j!"(B 15.396 +$BG$0U$N;~E@$G%V%i%s%AL>$rJQ99$9$k$3$H$,$G$-$^$9!#(B 15.397 + 15.398 +\interaction{branch-named.rebranch} 15.399 + 15.400 +$B%V%i%s%AL>$O$+$J$jD9$$<wL?$r;}$D$?$a!"(B 15.401 +$B<B:]$K$O$3$N$h$&$J%V%i%s%AL>$NJQ99$O$=$l$[$IIQHK$K<B9T$9$k$3$H$OL5$$$G$7$g$&(B 15.402 +$B!J$3$N$3$H$O5,Ls$G$O$J$/!"$"$/$^$G46A[$G$9!K!#(B 15.403 + 15.404 +\section{Dealing with multiple named branches in a repository} 15.405 + 15.406 +$B%j%]%8%H%j$KJ#?t$NL>A0IU$-%V%i%s%A$,$"$k>l9g!"(B 15.407 +\hgcmd{update} $B$d(B \hgcmdargs{pull}{-u} $B$H$$$C$?%3%^%s%I<B9T$N:]$K!"(B 15.408 +Mercurial $B$O:n6HNN0h%G%#%l%/%H%j$,B0$9$k%V%i%s%A$r3P$($F$$$F!"(B 15.409 +``$B%j%]%8%H%jA4BN(B''$B$N(B tip $B%j%S%8%g%s$G$O$J$/!"(B 15.410 +$B$=$N%V%i%s%A$N(B tip $B%j%S%8%g%s$G:n6HNN0h%G%#%l%/%H%j$r99?7$7$^$9!#(B 15.411 +$BJL$JL>A0IU$-%V%i%s%A$N%j%S%8%g%s$G99?7$7$?$$>l9g$O!"(B 15.412 +\hgcmd{update} $B%3%^%s%I$K(B 15.413 +\hgopt{update}{-C} $B%*%W%7%g%s$r;XDj$7$J$1$l$P$J$j$^$;$s!#(B 15.414 + 15.415 +$B$3$N?6$kIq$$$O>/!9HyL/$G$9$+$i!"<BNc$G8+$F$_$^$7$g$&!#(B 15.416 +$B;O$a$K!"(B 15.417 +$B$I$N%V%i%s%A>e$G:n6H$7$F$$$k$N$+$H!"(B 15.418 +$B$I$s$J%V%i%s%A$,%j%]%8%H%jCf$KM-$k$N$+$r3NG'$7$^$9!#(B 15.419 + 15.420 +\interaction{branch-named.parents} 15.421 + 15.422 +$B8=:_(B \texttt{bar} $B%V%i%s%A>e$K$$$^$9$,!"(B 15.423 +$B8E$$(B \hgcmd{foo} $B%V%i%s%A$bB8:_$7$^$9!#(B 15.424 + 15.425 +\texttt{foo} $B%V%i%s%A$*$h$S(B \texttt{bar} $B%V%i%s%A$N(B 15.426 +tip $B%j%S%8%g%s$X$N0\F0$O!"(B 15.427 +$BJQ99MzNr>e$rD>@~E*$KA08e$9$k$3$H$7$+I,MW$H$7$J$$$?$a!"(B 15.428 +\hgcmd{update} $B%3%^%s%I$K(B 15.429 +\hgopt{update}{-C} $B%*%W%7%g%s$r;XDj$9$k$3$HL5$7$K!"(B 15.430 +$B$=$l$>$l$N(B tip $B%j%S%8%g%s$X$N99?7$r9T$&$3$H$,$G$-$^$9!#(B 15.431 + 15.432 +\interaction{branch-named.update-switchy} 15.433 + 15.434 +\texttt{foo} $B%V%i%s%A$KLa$k$?$a$K(B 15.435 +\hgcmd{update} $B%3%^%s%I$r<B9T$9$k$H!"(B 15.436 +\texttt{foo} $B%V%i%s%A>e$KN1$^$C$?$^$^$G(B 15.437 +\texttt{bar} $B%V%i%s%A$N(B tip $B%j%S%8%g%s$K$O0\F0$7$^$;$s!#(B 15.438 + 15.439 +\interaction{branch-named.update-nothing} 15.440 + 15.441 +\texttt{foo} $B%V%i%s%A$G$NJQ99$N%3%_%C%H$K$h$j!"(B 15.442 +$B?7$?$J%X%C%I$,@8@.$5$l$^$9!#(B 15.443 + 15.444 +\interaction{branch-named.foo-commit} 15.445 + 15.446 +\texttt{foo} $B%V%i%s%A$+$i(B \texttt{bar} $B%V%i%s%A$X$N99?7$O!"(B 15.447 +$BMzNr$r(B``$B2#$CHt$S(B''$B$7$J$$$H$G$-$^$;$s$+$i!"(B 15.448 +Mercurial $B$O(B 15.449 +\hgcmd{update} $B%3%^%s%I$X$N(B \hgopt{update}{-C} 15.450 +$B%*%W%7%g%s$N;XDj$rI,MW$H$7$^$9!#(B 15.451 + 15.452 +\interaction{branch-named.update-bar} 15.453 + 15.454 +\section{Branch names and merging} 15.455 + 15.456 +$B$*5$$E$-$N;v$H$O;W$$$^$9$,!"(B 15.457 +Mercurial $B$K$*$1$k%^!<%8=hM}$OBP>NE*$G$O$"$j$^$;$s!#(B 15.458 +$B%j%S%8%g%sHV9f(B 17 $B$N$b$N$H(B 23 $B$N$b$N!"(B 15.459 +$B#2$D$N%X%C%I$r%j%]%8%H%j$,;}$C$F$$$k$b$N$H$7$^$7$g$&!#(B 15.460 +$B%j%S%8%g%s(B 17 $B$X$H(B \hgcmd{update} 15.461 +$B$7$F$+$i%j%S%8%g%s(B 23 $B$H(B \hgcmd{merge} $B$7$?>l9g!"(B 15.462 +Mercurial $B$O%j%S%8%g%s(B 17 $B$r%^!<%8$NBh#1?F!"(B 15.463 +$B%j%S%8%g%s(B 23 $B$rBh#2?F$H$7$F5-O?$7$^$9!#(B 15.464 +$B0lJ}$G!"(B 15.465 +$B%j%S%8%g%s(B 23 $B$X$H(B \hgcmd{update} 15.466 +$B$7$F$+$i%j%S%8%g%s(B 17 $B$H(B \hgcmd{merge} $B$7$?>l9g!"(B 15.467 +$B%j%S%8%g%s(B 23 $B$,%^!<%8$NBh#1?F!"(B 15.468 +$B%j%S%8%g%s(B 17 $B$,Bh#2?F$H$7$F5-O?$5$l$^$9!#(B 15.469 + 15.470 +$B$3$N?6$kIq$$$,!"%^!<%8$r9T$C$?:]$N(B Mercurial $B$N%V%i%s%AL>A*Br$K1F6A$7$^$9!#(B 15.471 +$B%^!<%88e$K$=$N7k2L$r%3%_%C%H$9$k$H!"(B 15.472 +Mercurial $B$OBh#1?F$N%V%i%s%AL>$r0];}$7$h$&$H$7$^$9!#(B 15.473 +$BBh#1?F$N%V%i%s%AL>$,(B \texttt{foo} $B$G!"(B 15.474 +\texttt{bar} $B%V%i%s%A$N%j%S%8%g%s$H%^!<%8$7$?>l9g!"(B 15.475 +$B%^!<%88e$N%V%i%s%AL>$O(B \texttt{foo} $B$N$^$^$H$J$j$^$9!#(B 15.476 + 15.477 +$B%j%]%8%H%jCf$KF1$8%V%i%s%AL>$NJ#?t$N%X%C%I$,B8:_$9$k$3$H$O!"(B 15.478 +$B$=$l$[$IDA$7$$$3$H$G$O$"$j$^$;$s!#(B 15.479 +$BNc$($P!";d$H$"$J$?$,(B \texttt{foo} $B%V%i%s%A$G:n6H$7$F$$$k$H$7$^$9!#(B 15.480 +$BFs?M$,$=$l$>$l0[$J$kJQ99$r%3%_%C%H$7!"(B 15.481 +$B;d$,$"$J$?$NJQ99$r(B pull $B$7$^$7$?!#(B 15.482 +$B$3$N;~E@$G;d$N%j%]%8%H%j$K$O!"(B 15.483 +\texttt{foo} $B%V%i%s%A>e$K#2$D$N%X%C%I$,B8:_$7$^$9!#(B 15.484 +$B%^!<%8$N7k2L!"(B 15.485 +\texttt{foo} $B%V%i%s%A>e$N#2$D$N%X%C%I$O4|BTDL$j#1$D$K$J$j$^$9!#(B 15.486 + 15.487 +$B$7$+$7!";d$,(B \texttt{bar} $B%V%i%s%A$G:n6H$7$F$$$F!"(B 15.488 +\texttt{foo} $B%V%i%s%A$N@.2L$r%^!<%8$7$?>l9g!"(B 15.489 +$B%^!<%8$N7k2L$O(B \texttt{bar} $B%V%i%s%A>e$KN1$^$j$^$9!#(B 15.490 + 15.491 +\interaction{branch-named.merge} 15.492 + 15.493 +$B$h$j6qBNE*$JNc$H$7$F!"(B 15.494 +\texttt{bleeding-edge} $B%V%i%s%A$G:n6H$7$F$$$F!"(B 15.495 +$B:G?7$N@.2L$r(B \texttt{stable} $B%V%i%s%A$+$i;}$A9~$_$?$$$H;W$C$?$H$7$^$9!#(B 15.496 +$B$3$N>l9g!"(B 15.497 +\texttt{stable} $B%V%i%s%A$N@.2L$r(B pull $B$7$F%^!<%8$7$?CJ3,$G!"(B 15.498 +Mercurial $B$O(B``$BE,@Z$J(B''$B%V%i%s%AL>(B(\texttt{bleeding-edge})$B$rA*Br$7$^$9!#(B 15.499 + 15.500 +\section{Branch naming is generally useful} 15.501 + 15.502 +$B<wL?$ND9$$J#?t$N%V%i%s%A$,C10l%j%]%8%H%j$G6&B8$7$F$$$k>u67$@$1$,!"(B 15.503 +$BL>A0IU$-%V%i%s%A$NMxMQ$G$-$k>u67$@$H$O9M$($J$$$G$/$@$5$$!#(B 15.504 +$B%j%]%8%H%j#1$D$K%V%i%s%A#1$D$N>u67$G$"$C$F$b!"(B 15.505 +$BL>A0IU$-%V%i%s%A$OM-MQ$G$9!#(B 15.506 + 15.507 +$BC1=c$JNc$H$7$F$O!"(B 15.508 +$B%V%i%s%A$KL>A0$rIUM?$9$k$3$H$G!"(B 15.509 +$B%A%'%s%8%;%C%H$,$I$N%V%i%s%A$KM3Mh$9$k$+$N915WE*$J5-O?$rF@$k$3$H$,$G$-$^$9!#(B 15.510 +$B$3$N5-O?$O!"(B 15.511 +$B<wL?$ND9$$%V%i%s%A$r;}$D%W%m%8%'%/%H$NMzNr$rC)$k:]$K!"(B 15.512 +$BB?$/$N>pJs$r$b$?$i$9$3$H$G$7$g$&!#(B 15.513 + 15.514 +$B%j%]%8%H%j$r6&M-$7$F:n6H$7$F$$$k>l9g!"(B 15.515 +\hook{pretxnchangegroup} $B%U%C%/$r$=$l$>$l$N%j%]%8%H%j$KBP$7$F@_Dj$9$k$3$H$G!"(B 15.516 +``$BIT@5$J(B''$B%V%i%s%AL>$r;}$DJQ99$,;}$A9~$^$l$k$N$rKI$0$3$H$,$G$-$^$9!#(B 15.517 +$B$3$N<jK!$OC1=c$G$9$,!"(B 15.518 +``$B7l$NE)$k?O(B''$B$H$G$b8@$&$Y$-!JIT0BDj$J!K%V%i%s%A$N@.2L$r!"(B 15.519 +$B8m$C$F(B``$B0BDj$7$?(B''$B%V%i%s%A$X$H;}$A9~$`$3$H$rKI$0$K$O8z2LE*$G$9!#(B 15.520 +$B$3$N$h$&$J%U%C%/$O!"(B 15.521 +$B6&M-%j%]%8%H%j$N(B \hgrc $B%U%!%$%k$K0J2<$N$h$&$K5-=R$7$^$9!#(B 15.522 + 15.523 +\begin{codesample2} 15.524 + [hooks] 15.525 + pretxnchangegroup.branch = hg heads --template '{branches} ' | grep mybranch 15.526 +\end{codesample2} 15.527 + 15.528 +%%% Local Variables: 15.529 +%%% mode: latex 15.530 +%%% TeX-master: "00book" 15.531 +%%% End:
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2 +++ b/ja/collab.tex Fri Aug 14 12:10:47 2009 -0700 16.3 @@ -0,0 +1,1524 @@ 16.4 +\chapter{Collaborating with other people} 16.5 +\label{cha:collab} 16.6 + 16.7 +Mercurial $B$O40A4$KHsCf1{=8LsE*$J%D!<%k$G$"$k$?$a!"(B 16.8 +$BMxMQ<TAj8_$NO"7H$K4X$7$F$O2?$i@)Ls$r2]$9$3$H$r$7$^$;$s!#(B 16.9 +$B$G$9$,!"(B 16.10 +$BJ,;69=@.4IM}$KFk@w$_$,L5$$$N$G$"$l$P!"(B 16.11 +$B$$$/$D$+$N%D!<%k$d;HMQNc$rCN$C$F$*$/$3$H$O!"(B 16.12 +$BBEEv$J:n6H<j=g$N%b%G%k$r9M$($k:]$KLr$KN)$A$^$9!#(B 16.13 + 16.14 +\section{Mercurial's web interface} 16.15 + 16.16 +Mercurial $B$O!"(B 16.17 +$B$$$/$D$+$NM-MQ$J5!G=$rDs6!$9$k!"(B 16.18 +$B6/NO$J%&%'%V%$%s%?%U%'!<%9$r;}$C$F$$$^$9!#(B 16.19 + 16.20 +$BBPOCE*$JMxMQ$N>l9g!"(B 16.21 +$B%&%'%V%$%s%?%U%'!<%97PM3$G#1$D$J$$$7J#?t$N%j%]%8%H%j$N1\Mw$,$G$-$^$9!#(B 16.22 +$B%j%]%8%H%jMzNr$N;2>H$d!"(B 16.23 +$B8D!9$NJQ99!J%3%_%C%H%a%C%;!<%8$d:9J,!K$N8!>Z!"(B 16.24 +$B$*$h$S3F%G%#%l%/%H%j$d%U%!%$%k$NFbMF$N;2>H!"(B 16.25 +$B$H$$$C$?$3$H$,$G$-$^$9!#(B 16.26 + 16.27 +$BDLCN$K4X$7$F$b!"(B 16.28 +$B%&%'%V%$%s%?%U%'!<%9$O!"(B 16.29 +$B%j%]%8%H%j$K$*$1$kJQ99$K4X$9$k(B RSS $BG[?.5!G=$rDs6!$7$^$9!#(B 16.30 +$B$*5$$KF~$j$N%D!<%k$r;H$C$F%j%]%8%H%j$r(B``$B9XFI(B''$B$9$k$3$H$b$G$-$^$9$7!"(B 16.31 +$B%j%]%8%H%j$K$*$1$k3hF0>u67$N<+F0DLCN$rB(:B$K9T$&$3$H$b$G$-$^$9!#(B 16.32 +$B%j%]%8%H%jDs6!<TB&$K$*$1$kDI2C@_Dj$,ITMW$G$"$k$3$H$+$i!"(B 16.33 +$BI.<T<+?H$O!"(B 16.34 +$BJQ99DLCN$N%a!<%j%s%0%j%9%H$h$j$b!"(B 16.35 +$B!V(BRSS $BG[?.$r9XFI!W$9$k%b%G%k$NJ}$,Hs>o$KJXMx$@$H;W$$$^$9!#(B 16.36 + 16.37 +$B%&%'%V%$%s%?%U%'!<%9$K$h$j!"(B 16.38 +$B1s3V%f!<%6$K$h$k%j%]%8%H%j$NJ#@=$dJQ99$N<h$j9~$_!"(B 16.39 +$B$*$h$S!J%5!<%PB&$G$=$l$r5v2D$7$F$$$k$J$i$P!K(B 16.40 +$BJQ99$N<uM}$,2DG=$K$J$j$^$9!#(B 16.41 +Mercurial $B$N(B HTTP $B%H%s%M%j%s%0%W%m%H%3%k$G$O!"(B 16.42 +$B@Q6KE*$K%G!<%?$N05=L$r9T$$$^$9$N$G!"(B 16.43 +$B69$$BS0h$N%M%C%H%o!<%/@\B37PM3$G$b8zN($h$/5!G=$7$^$9!#(B 16.44 + 16.45 +$B%&%'%V%$%s%?%U%'!<%9$r?($C$F$_$k:G$b4JC1$JJ}K!$O!"(B 16.46 +Mercurial $B$N%^%9%?%j%]%8%H%j$G$"$k(B 16.47 +\url{http://www.selenic.com/repo/hg?style=gitweb} $B$N$h$&$J!"(B 16.48 +$B4{B8$N%j%]%8%H%j$K%&%'%V%V%i%&%6$G@\B3$7$F$_$k$3$H$G$9!#(B 16.49 + 16.50 +$B<+?H$G%j%]%8%H%j$N%&%'%V%$%s%?%U%'!<%9$rDs6!$9$k$3$H$K6=L#$,$"$k>l9g!"(B 16.51 +Mercurial $B$K$O#2$D$NA*Br;h$,$"$j$^$9!#(B 16.52 +$B#1$D$O(B \hgcmd{serve} $B%3%^%s%I$r;HMQ$9$k$b$N$G!"(B 16.53 +$BC;4|4V$N(B``$B7ZNL$J(B''$B2TF0$N>l9g$K:GE,$G$9!#(B 16.54 +$B$3$N%3%^%s%I$NMxMQ$K4X$9$k>\:Y$O!"(B 16.55 +\ref{sec:collab:serve}~$B@a$r;2>H$7$F$/$@$5$$!#(B 16.56 +$BD94|E*3n$D>o;~MxMQ2DG=$J2TF0$rK>$`>l9g$O!"(B 16.57 +Mercurial $B$KAH$_9~$^$l$F$$$k(B 16.58 +CGI $B!J(BCommon Gateway Interface$B!K5!G=$,!"(B 16.59 +$B0lHLE*$JA4$F$N%&%'%V%5!<%P$GMxMQ2DG=$G$9!#(B 16.60 +CGI $B@_Dj$N>\:Y$O!"(B 16.61 +\ref{sec:collab:cgi}~$B@a$r;2>H$7$F$/$@$5$$!#(B 16.62 + 16.63 +\section{Collaboration models} 16.64 + 16.65 +$BE,@Z$J=@Fp@-$r;}$D%D!<%k$r;H$&$3$H$G!"(B 16.66 +$B:n6H<j=g$N7hDj$O!"(B 16.67 +$B5;=QE*$JLdBj$+$iAH?%9)3XE*!J(Bsocial engineering$B!K$JLdBj$X$HJQ$o$j$^$9!#(B 16.68 +Mercurial $B$O!"(B 16.69 +$B%W%m%8%'%/%H$K$*$1$k:n6H<j=g$N9=@.$K4X$7$FKX$I@)8B$r2]$5$J$$$?$a!"(B 16.70 +$B8DJL$NMWK>$K1h$C$?%b%G%k$N@_Dj$H1?MQ$OMxMQ<T<!Bh$H$J$j$^$9!#(B 16.71 + 16.72 +\subsection{Factors to keep in mind} 16.73 + 16.74 +$B$$$:$l$N%b%G%k$K$*$$$F$b?4F@$F$*$/$Y$-:G$b=EMW$JE@$O!"(B 16.75 +$B$=$l$rMxMQ$9$k?M!9$NMWK>$HG=NO$K$I$l$@$1E,9g$9$k$+!"(B 16.76 +$B$H$$$&$3$H$G$9!#(B 16.77 +$B$3$l$O<+L@$K8+$($k$+$b$7$l$^$;$s$,!"(B 16.78 +$B$[$s$N>/$7$N4V$G$b$3$N$3$H$rK:$l$F$O$$$1$^$;$s!#(B 16.79 + 16.80 +$BI.<T$O0JA0!"40`z$H;W$($k:n6H<j=g%b%G%k$r9=C[$7$?$N$G$9$,!"(B 16.81 +$B3+H/%A!<%`$K>/$J$+$i$LNL$N6C$-$HITOB$r$b$?$i$7$^$7$?!#(B 16.82 +$BJ#;($J%V%i%s%A72$,I,MW$JM}M3$H!"(B 16.83 +$B$=$l$i$N4V$K$*$1$kJQ99$N<h$j07$$$K$D$$$F@bL@$7$h$&$H;n$_$^$7$?$,!"(B 16.84 +$B%A!<%`$N%a%s%P!<$N2??M$+$,0[$r>'$($F$-$?$N$G$9!#(B 16.85 +$BH`$i$OAoL@$J?MC#$G$7$?$,!"(B 16.86 +$B:n6H$K$*$1$k@)Ls$KCm0U$rJ'$&(B\footnote{$BLuCm(B: $B!V%k!<%k$r<i$k!W$N0U$+!)(B}$B$3$H$b!"(B 16.87 +$BI.<T$,>'$($k%b%G%k$N:YIt$K$*$1$k@)Ls$N=EMW@-$K8~$-9g$*$&$H$b$7$^$;$s$G$7$?!#(B 16.88 + 16.89 +$B6a$$>-Mh$N<R2qE*!&5;=QE*$JLdBj$+$iL\$rGX$1$J$$$G$/$@$5$$!#(B 16.90 +$B$I$s$J7W2h$r<B;\$7$h$&$H$b!"(B 16.91 +$B4V0c$$$dLdBj$,H/@8$7$?>l9g$KHw$($k$Y$-$G$9!#(B 16.92 +$BM=A[2DG=$JLdBj$KBP$7$F!"(B 16.93 +$B<+F0E*$JKI8f$dB(;~I|5l$N$?$a$N;EAH$_$NDI2C$r9MN8$7$^$7$g$&!#(B 16.94 +$BNc$($P!"(B 16.95 +$B%j%j!<%98~$1$G$O$J$$JQ99$N$?$a$N%V%i%s%A$r:n@.$7$h$&$H$7$?>l9g!"(B 16.96 +$BB>$N:n6H<T$,%j%j!<%9MQ%V%i%s%A$K$&$C$+$j%^!<%8$7$F$7$^$&2DG=@-$K$D$$$F!"(B 16.97 +$BAa$$;~E@$G9MN8$7$?$[$&$,NI$$$G$7$g$&!#(B 16.98 +$BITE,@Z$J%V%i%s%A$+$i%A%'%s%8%;%C%H$r%^!<%8$5$;$J$$%U%C%/$r5-=R$9$k$3$H$G!"(B 16.99 +$B$3$NLdBj$K4X$7$F$O2sHr2DG=$G$9!#(B 16.100 + 16.101 +\subsection{Informal anarchy} 16.102 + 16.103 +$B;}B32DG=@-$NE@$+$i(B 16.104 +``$B2?$G$b%"%j(B''$B$J$d$jJ}$O$*A&$a$7$^$;$s$,!"(B 16.105 +$B4JC1$KGD0.$9$k$3$H$,$G$-$k%b%G%k$G$"$j!"(B 16.106 +$B$$$/$D$+$NFC0[$J>u67$G$OHs>o$KNI$/5!G=$7$^$9!#(B 16.107 + 16.108 +$B0l$D$NNc$H$7$F!"(B 16.109 +$BB?$/$N%W%m%8%'%/%H$,!"(B 16.110 +$BD>@\2q$&$3$H$N5)$J<e$/$^$H$^$C$?6(NO<T%0%k!<%W$r;}$F$$$k(B 16.111 +As one example, many projects have a loose-knit group of collaborators 16.112 +who rarely physically meet each other. 16.113 +$B;~@^$N(B``$BA4NO<@Av(B''$B!J(Bsprints$B!K(B\footnote{$BLuCm(B: 16.114 +$B%*%U2q$H$+$G$9$M!#(B}$B$r@_$1$k$3$H$G!"(B 16.115 +$B5wN%$K$h$C$F3V$F$i$l$?:n6H$KBG$A>!$D%0%k!<%W$b$"$j$^$9!#(B 16.116 +$BA4NO<@Av$N5!2q$G$O!"(B 16.117 +$BB?$/$N?M$,6&$KF1$8>l=j!J2q<R$N2q5D<<$d%[%F%k$N2q5D<<$NN`!K(B 16.118 +$B$K=8$^$j!"(B 16.119 +$B?tF|DxEY$rJD$8$3$b$C$F2a$4$7!"(B 16.120 +$B>/NL$N%W%m%8%'%/%H$K=8Cf$7$F%O%C%-%s%0$r9T$$$^$9!#(B 16.121 + 16.122 +$BA4NO<@Av$O!"(B 16.123 +$BBg3]$+$j$J%5!<%P%$%s%U%i$rI,MW$H$7$J$$(B 16.124 +\hgcmd{serve} $B%3%^%s%I$rMxMQ$9$k$N$K$A$g$&$INI$$5!2q$G$9!#(B 16.125 +$B0J2<$N(B\ref{sec:collab:serve}~$B@a$rFI$`$3$H$G!"(B 16.126 +$B$9$0$K$G$b(B \hgcmd{serve} $B$r;H$$;O$a$k$3$H$,$G$-$^$9!#(B 16.127 +$B$=$&$7$?$J$i!"(B 16.128 +$B<~0O$N?MC#$K%5!<%P$r<B9TCf$G$"$k$3$H$rEA$(!"(B 16.129 +$B%$%s%9%?%s%H%a%C%;%s%8%c!<Ey$r;HMQ$7$F(B URL $B$rAw$l$P!"(B 16.130 +$B6&F1:n6H$9$k>e$G$N@^$jJV$7COE@$^$GC)$jCe$-$^$7$?!#(B 16.131 +$B%V%i%&%6$K65$($i$l$?(B URL $B$rF~NO$9$l$P!"(B 16.132 +$BH`$i$O$9$0$K$G$b$"$J$?$NJQ99$r%l%S%e!<$9$k$3$H$,$G$-$^$9$7!"(B 16.133 +$B$"$J$?$+$i%P%0%U%#%C%/%9$rF~<j$7$F$=$l$r8!>Z$7$?$j!"(B 16.134 +$B?75!G=$,4^$^$l$k%V%i%s%A$rJ#@=$7$F$=$l$r;n$7$F$_$?$j$9$k$3$H$,$G$-$^$9!#(B 16.135 + 16.136 +$B$=$N>l8B$j$N$3$N$h$&$J7A<0$G;v$r?J$a$k$3$H$NMxE@$H7gE@$O!"(B 16.137 +$B$"$J$?$K$h$kJQ99$NB8:_$H!"$I$3$G%"%/%;%92DG=$+$rCN$k?M$@$1$,!"(B 16.138 +$B$=$l$r;2>H$9$k$3$H$,$G$-$k!"$H$$$&E@$K$"$j$^$9!#(B 16.139 +$B$3$N$h$&$JHs8x<0$J<jK!$O!"(B 16.140 +$BJ#?t$N0[$J$k%j%]%8%H%j$+$i$N<h$j9~$_$,3F<+$KMW5a$5$l$k$?$a!"(B 16.141 +$B?t?M0J>e$KBP$7$F$OC1=c$K5,LO$N3HBg$,$G$-$^$;$s!#(B 16.142 + 16.143 +\subsection{A single central repository} 16.144 + 16.145 +$B>.5,LO$J%W%m%8%'%/%H$K$*$$$F!"(B 16.146 +$BCf1{=8LsE*$J9=@.4IM}%D!<%k$+$i$N0\9T$9$k:G$b4JC1$JJ}K!$O!"(B 16.147 +$BC10l$N6&M-%j%]%8%H%j$r7PM3$7$FJQ99$N$d$j<h$j$r$9$k!"(B 16.148 +$B$H$$$&$b$N$G$9!#(B 16.149 +$B$3$NBN@)$O!"(B 16.150 +$B$h$jLn?4E*$J:n6H<j=gBN7O$N$?$a$N:G$b4pK\E*$J(B``$B9=@.MWAG(B''$B$G$b$"$j$^$9!#(B 16.151 + 16.152 +$B3+H/<T!J(Bcontributor$B!K$O!"(B 16.153 +$B6&M-%j%]%8%H%j$NJ#@=$r9T$&$3$H$G:n6H$r3+;O$7$^$9!#(B 16.154 +$BI,MW$J;~$K$$$D$G$bJQ99$N<h$j9~$_$r9T$($^$9$7!"(B 16.155 +$B3+H/<T$N2??M$+$O!JA40w$G$b2D!K!"(B 16.156 +$B30It$K8x3+2DG=$K$J$C$?:]$KJQ99$r6&M-%j%]%8%H%j$KH?1G$5$;$k8"8B$r;}$A$^$9!#(B 16.157 + 16.158 +$B$3$N%b%G%k$G$"$C$F$b!"(B 16.159 +$B6&M-%j%]%8%H%j$r7PM3$;$:$K$*8_$$$NJQ99$rD>@\(B \hgcmd{pull} $B$9$k$3$H$O!"(B 16.160 +$B3+H/<T$K$H$C$F$O0U5A$N$"$k$3$H$G$9!#(B 16.161 +$BNc$($P!"(B 16.162 +$B;CDjE*$J%P%0=$@5$r9T$C$?$b$N$N!"(B 16.163 +$B6&M-%j%]%8%H%j$K$=$N=$@5$r8x3+$7$?>l9g$K!"(B 16.164 +$B$=$N=$@5$r<h$j9~$s$@B>$N3+H/<T$N:n6H$K;Y>c$r$-$?$962$l$,$"$k!"(B 16.165 +$B$H$$$&>l9g$r9M$($F$_$^$7$g$&!#(B 16.166 +$B%P%0=$@5$r4^$`<+J,$N%j%]%8%H%j$+$i0l;~E*$J%j%]%8%H%j$rJ#@=$7!"(B 16.167 +$BJ#@=@h$G=$@5FbMF$r8!>Z$7$F$b$i$($k$h$&$KB>$N3+H/<T$K$*4j$$$9$k$3$H$G!"(B 16.168 +$B@x:_E*$JB;32$rDc8:$9$k$3$H$,$G$-$^$9!#(B 16.169 +$B$3$N$h$&$K$9$k$3$H$G!"(B 16.170 +$B@x:_E*$J4m81@-$r;}$DJQ99$G$"$C$F$b!"(B 16.171 +$B4JC1$J8!>Z$,:Q$`$^$G$O8x3+$5$l$J$$$h$&$K$9$k$3$H$,$G$-$^$9!#(B 16.172 + 16.173 +$B$3$N<o$N$d$j<h$j$N>l9g$O!"(B 16.174 +$B6&M-%j%]%8%H%j$X$N0BA4$JJQ99H?1G$N$?$a$K(B 16.175 +\command{ssh} $B%W%m%H%3%k$r;HMQ$9$k$N$,0lHLE*$G$9(B 16.176 +$B!J(B\ref{sec:collab:ssh}~$B@a;2>H!K!#(B 16.177 +$BFI$_=P$7@lMQ%j%]%8%H%j$r!"(B 16.178 +CGI $B$r;HMQ$7$F(B HTTP $B7PM3$G8x3+$9$k$3$H$b2DG=$G$9(B 16.179 +$B!J(B\ref{sec:collab:cgi}~$B@a;2>H!K!#(B 16.180 +$B%j%]%8%H%j$X$NJQ99H?1G$,I,MW$J$$>l9g$d!"(B 16.181 +$B%j%]%8%H%j$NMzNr$r%&%'%V%V%i%&%67PM3$G;2>H$7$?$$>l9g$K$O!"(B 16.182 +HTTP $B7PM3$G$N8x3+$G==J,%K!<%:$,K~$?$5$l$^$9!#(B 16.183 + 16.184 +\subsection{Working with multiple branches} 16.185 + 16.186 +$B0lDj0J>e$N5,LO$r;}$D%W%m%8%'%/%H$K$*$$$F$O!"(B 16.187 +$B:n6H$N?JE8$,F1;~$KJ#?t$N!VA0@~!W$G9T$o$l$k$3$H$O<+A3$J@.$j9T$-$G$9!#(B 16.188 +$B%=%U%H%&%'%"3+H/$N>l9g!"(B 16.189 +$B$I$N%W%m%8%'%/%H$G$b!"(B 16.190 +$B0lDj4|4V$4$H$K8x<0%j%j!<%9$r9T$&$N$,0lHLE*$G$9!#(B 16.191 +$B3F%j%j!<%9$O:G=i$N8x3+$N8e$K!"(B 16.192 +$B0lDj4|4V$N(B``$BJ]<i>uBV(B''$B!J(Bmaintenance mode$B!K$H$J$k$3$H$,$"$j$^$9!#(B 16.193 +$BJ]<i%j%j!<%9$G$O%P%0=$@5$N$_$r07$$!"(B 16.194 +$B?75,5!G=$K$D$$$F$O<h$j07$o$J$$$N$,DLNc$G$9!#(B 16.195 +$B$3$l$iJ]<i%j%j!<%9$HJ?9T$7$F!"(B 16.196 +$B!J>l9g$K$h$C$F$OJ#?t$N!K>-Mh$N%j%j!<%9$K8~$1$?3+H/$,?J9T$7$^$9!#(B 16.197 +$BJ}8~@-$N>/$70[$J$k!"$3$l$i?J9TCf$N8D!9$N3+H/$r;X$9$N$K!"(B 16.198 +$B0lHLE*$K(B``$B%V%i%s%A(B''$B$H$$$&I=8=$r;H$$$^$9!#(B 16.199 + 16.200 +Mercurial $B$OFC$K!"(B 16.201 +$BJ#?t$N0[$J$k%V%i%s%A$rF1;~$K4IM}$9$k$3$H$KE,$7$F$$$^$9!#(B 16.202 +$B$=$l$>$l$N(B``$B3+H/;X8~(B''$B$4$H$K!"(B 16.203 +$BJL!9$N6&M-MQ%j%]%8%H%j$rMQ0U$9$k$3$H$G!"(B 16.204 +$BI,MW$K$J$kETEY!"(B 16.205 +$B$"$k%j%]%8%H%j$+$iJL$N%j%]%8%H%j$X$N%^!<%8$r9T$($PNI$$$N$G$9!#(B 16.206 +$B3F%j%]%8%H%j$O8_$$$KFHN)$7$F$$$^$9$+$i!"(B 16.207 +$BC/$+$,L@<(E*$K%^!<%8$7$J$$8B$j$O(B 16.208 +$B3+H/%V%i%s%A$K$*$1$kIT0BDj$JJQ99$,!"(B 16.209 +$B0BDjHG$N$?$a$N%V%i%s%A$K1F6A$rM?$($k$3$H$O$"$j$^$;$s!#(B 16.210 + 16.211 +$B%V%i%s%A$4$H$K%j%]%8%H%j$rMQ0U$9$k8/$jJ}$N<B:]$NNc$r0J2<$K<($7$^$9!#(B 16.212 +$BCf1{$N%5!<%P$K(B``$B%a%$%s%V%i%s%A(B''$B$,$"$k$b$N$H$7$^$9!#(B 16.213 + 16.214 +\interaction{branching.init} 16.215 + 16.216 +$B3+H/<T$O%a%$%s%V%i%s%A$+$iJ#@=$7!"(B 16.217 +$BJQ99!"JQ99$N%F%9%H!"%3%_%C%H$N8e$K!"(B 16.218 +$BJQ99$r%a%$%s%V%i%s%A$N%j%]%8%H%j$KH?1G$7$^$9!#(B 16.219 + 16.220 +$B%a%$%s%V%i%s%A$,%j%j!<%9$N%^%$%k%9%H!<%s$KC#$7$?$J$i$P!"(B 16.221 +$B%^%$%k%9%H!<%s$H$J$k%j%S%8%g%s$K(B 16.222 +\hgcmd{tag} $B%3%^%s%I$G1JB3E*$JL>A0$rIUM?$7$^$9!#(B 16.223 + 16.224 +\interaction{branching.tag} 16.225 + 16.226 +$B%a%$%s%V%i%s%A$G$O3+H/$,7QB3$7$F$$$k$H$7$^$9!#(B 16.227 + 16.228 +\interaction{branching.main} 16.229 + 16.230 +$B%j%j!<%9%^%$%k%9%H!<%s8e$NG$0U$N;~E@$G%j%]%8%H%j$rJ#@=$7$?3+H/<T$O!"(B 16.231 +$B%j%j!<%9%^%$%k%9%H!<%s$G5-O?$5$l$?%?%0$r;H$&$3$H$G!"(B 16.232 +$B%?%0$,IUM?$5$l$?%j%S%8%g%s$,%3%_%C%H$5$l$?;~E@$H(B 16.233 +$B87L)$K0lCW$9$k:n6HNN0h%G%#%l%/%H%j$r(B 16.234 +\hgcmd{update} $B%3%^%s%I$K$h$jJ#@=$9$k$3$H$,$G$-$^$9!#(B 16.235 + 16.236 +\interaction{branching.update} 16.237 + 16.238 +$B$=$l$K2C$($F!"(B 16.239 +$B%a%$%s%V%i%s%A$G$N%?%0IU$1$N8e$G!"(B 16.240 +$B%5!<%P>e$N%a%$%s%V%i%s%A$r!"(B 16.241 +$B?7$?$J(B``$B0BDjHG(B''$B%V%i%s%A!J$N%j%]%8%H%j!K$X$HJ#@=$9$k$3$H$b$G$-$^$9(B\footnote{ 16.242 +$BLuCm(B: $B%a%$%s%V%i%s%A$H0BDjHG%V%i%s%A$N3F%j%]%8%H%j$O!"(B 16.243 +$BI,$:$7$bF10l%5!<%P$G1?MQ$5$l$kI,MW$O$"$j$^$;$s!#(B}$B!#(B 16.244 + 16.245 +\interaction{branching.clone} 16.246 + 16.247 +$B0BDjHG%V%i%s%A$KBP$7$FJQ99$9$kI,MW$,$"$k>l9g!"(B 16.248 +$B3+H/<T$O(B\emph{$B0BDjHG%V%i%s%A(B}$B$N%j%]%8%H%j$+$iJ#@=$7!"(B 16.249 +$BJQ99!"JQ99$N%F%9%H!"%3%_%C%H$N8e$K!"(B 16.250 +$BJQ99$r0BDjHG%V%i%s%A$N%j%]%8%H%j$KH?1G$7$^$9!#(B 16.251 + 16.252 +\interaction{branching.stable} 16.253 + 16.254 +Mercurial $B$N%j%]%8%H%j$O$*8_$$$K!JJ*M}E*$K!KFHN)$7$F$*$j!"(B 16.255 +$B%j%]%8%H%j4V$G$NJQ99$N<+F0E*$J$d$j<h$j$O9T$o$l$J$$$?$a!"(B 16.256 +$B0BDjHG%V%i%s%A$H$H%a%$%s%V%i%s$O$*8_$$$K(B\emph{$B3VN%(B}$B$5$l$F$$$^$9!#(B 16.257 +$B%a%$%s%V%i%s%A$K2C$($?JQ99$,0BDjHG%V%i%s%A$K(B``$BO3$l=P$9(B''$B$3$H$O$"$j$^$;$s$7!"(B 16.258 +$B$=$N5U$K4X$7$F$bF1MM$G$9!#(B 16.259 + 16.260 +$B0BDjHG%V%i%s%A$K$*$1$kA4$F$N%P%0=$@5$r!"(B 16.261 +$B%a%$%s%V%i%s%A$KH?1G$7$?$$>l9g$b$"$k$G$7$g$&!#(B 16.262 +$B%a%$%s%V%i%s%A$G%P%0=$@5$r:FEY!J<jF0$G!K9T$&Be$o$j$K!"(B 16.263 +$B0BDjHG%V%i%s%A$+$i<h$j9~$s$@JQ99$r%a%$%s%V%i%s$KBP$7$F%^!<%8$9$k$3$H$G!"(B 16.264 +$B0BDjHG%V%i%s%A$K$*$1$kJQ99$r%a%$%s%V%i%s%A$K;}$A9~$`$3$H$,$G$-$^$9!#(B 16.265 + 16.266 +\interaction{branching.merge} 16.267 + 16.268 +$B$3$N;~E@$G$N%a%$%s%V%i%s%A$O!"(B 16.269 +$B0BDjHG%V%i%s%A$K$OL5$$JQ99$rJ];}$7$F$$$^$9$,!"(B 16.270 +$B0BDjHG%V%i%s%A$K$*$1$kA4$F$N%P%0=$@5$rJ];}$7$F$$$^$9!#(B 16.271 +$B0BDjHG%V%i%s%A$O!"(B 16.272 +$B%a%$%s%V%i%s%A$K$N$_4^$^$l$kJQ99$K$O1F6A$r<u$1$J$$$^$^$G$9!#(B 16.273 + 16.274 +\subsection{Feature branches} 16.275 + 16.276 +$BBg5,LO%W%m%8%'%/%H$GM-8z$JJQ994IM}J}K!$O!"(B 16.277 +$B3+H/%A!<%`$r>.$5$J%0%k!<%W$KJ,3d$9$k$3$H$G$9!#(B 16.278 +$B%W%m%8%'%/%HA4BN$,;2>H$9$kC10l$N(B``$B%^%9%?!<(B''$B%V%i%s%A$+$iJ#@=$7$?6&M-%V%i%s%A(B 16.279 +$B!J!a(B $B%j%]%8%H%j!K$r!"(B 16.280 +$B3F%0%k!<%W$4$H$K$=$l$>$l;}$A$^$9!#(B 16.281 +$B8D!9$N%V%i%s%A>e$G:n6H$9$k3+H/%a%s%P!<$O!"(B 16.282 +$BB>$N%V%i%s%A$K$*$1$k3+H/:n6H$H$O3VN%$5$l$F$$$^$9!#(B 16.283 + 16.284 +\begin{figure}[ht] 16.285 + \centering 16.286 + \grafix[width=\textwidth]{feature-branches} 16.287 + \caption{Feature branches} 16.288 + \label{fig:collab:feature-branches} 16.289 +\end{figure} 16.290 + 16.291 +$B$H$"$k5!G=$,E,@Z$J>u67(B\footnote{$BLuCm(B: 16.292 +``$B%3%s%Q%$%k%(%i!<$,L5$/$J$C$?(B''$B>u67$J$N$+!"(B 16.293 +``$BC1BN%F%9%H$,40N;$7$?(B''$B>u67$J$N$+$O!"(B 16.294 +$B3F%W%m%8%'%/%H$N9=@.4IM}J}?K<!Bh$H$J$j$^$9!#(B}$B$KE~C#$7$?$HH=CG$5$l$?$J$i!"(B 16.295 +$BEv3:5!G=$NC4Ev%A!<%`$G$O!"(B 16.296 +$B%^%9%?!<%V%i%s%A!J$N%j%]%8%H%j!K(B 16.297 +$B$+$iH?1G$7$?JQ99$r<+%A!<%`$N%V%i%s%A!J$N%j%]%8%H%j!K$X$H%^!<%8$7$F$+$i!"(B 16.298 +$B%^%9%?!<%V%i%s%A$X$H%^!<%87k2L$rH?1G$9$l$PNI$$$N$G$9!#(B 16.299 + 16.300 +\subsection{The release train} 16.301 + 16.302 +$B%W%m%8%'%/%H$K$h$C$F$O!"(B 16.303 +``train''$B%b%G%k$G1?MQ$5$l$F$$$k>l9g$b$"$j$^$9!#(B 16.304 +``train'' $B%b%G%k$G1?MQ$5$l$F$$$k%W%m%8%'%/%H$G$O!"(B 16.305 +$B%j%j!<%9$O?t%v7n$4$H$K@_Dj$5$l$F$*$j!"(B 16.306 +``train''$B$,=PH/=`Hw40N;$7$?CJ3,(B\footnote{$BLuCm(B: 16.307 +$B!V?t%v7n$4$H$K@_Dj$5$l$?%j%j!<%9%9%1%8%e!<%k!W$r(B 16.308 +$B!V;~9oI=DL$j$NH/<V;~9o!W$KNc$($F$$$kLOMM!#(B 16.309 +}$B$GDs6!2DG=$J5!G=$@$1$,%j%j!<%9$K4^$^$l$^$9!#(B 16.310 + 16.311 +$B$3$N%b%G%k$O!"@h$K@bL@$7$?5!G=JL%V%i%s%A$K$h$k:n6H$H;w$F$$$^$9!#(B 16.312 +``train''$B%b%G%k$N>l9g!"(B 16.313 +$B5!G=JL%V%i%s%A$,Ns<V$K>h$j$=$3$J$C$?>l9g!"(B 16.314 +$BEv3:5!G=$NC4Ev%A!<%`$G$O!"(B 16.315 +$B<+%A!<%`$N5!G=%V%i%s%A!J%j%]%8%H%j!K$KBP$7$F!"(B 16.316 +$B%j%j!<%9Ns<V$K4^$^$l$kJQ99$N<h$j9~$_$*$h$S%^!<%8$r9T$$!"(B 16.317 +$B%^!<%87k2L$KBP$7$F:n6H$r7QB3$9$kI,MW$,$"$kE@$,0[$J$j$^$9!#(B 16.318 +$B$3$N%^!<%8:n6H$r9T$&$3$H$G!"(B 16.319 +$B<!2s%j%j!<%9$N:]$K!"(B 16.320 +$BEv3:5!G=$,@09g@-$rJ]$D$3$H$,$G$-$^$9!#(B 16.321 + 16.322 +\subsection{The Linux kernel model} 16.323 + 16.324 +Linux $B%+!<%M%k$N3+H/BN@)$O!"(B 16.325 +$B@u$$3,AX9=B$$H!"$=$l$r<h$j0O$`0l8+:.FY$H$7$?72=8$+$i@.$jN)$C$F$$$^$9!#(B 16.326 +$BKX$I$N(B Linux $B3+H/<T$,!"(B 16.327 +Mercurial $B$HF1Ey$N5!G=$r;}$C$?J,;69=@.4IM}%D!<%k$G$"$k(B 16.328 +\command{git} $B%3%^%s%I$r;HMQ$7$F$$$k$N$G!"(B 16.329 +Linux $B%+!<%M%k3+H/$K$*$1$k:n6H<j=g$N@bL@$O(B 16.330 +Mercurial $BMxMQ$K$H$C$F$bM-MQ@-$r;}$C$F$$$^$9!#(B 16.331 +$B5$$KF~$C$?%"%$%G%"$,$"$l$P!"(B 16.332 +$B%D!<%k$rD6$($F<jK!$rMxMQ$9$k$3$H$O2DG=$J$N$G$9$+$i!#(B 16.333 + 16.334 +$B%3%_%e%K%F%#$NCf?4$K$O!"(B 16.335 +Linux $B$rAO$j=P$7$?(B Linus Torvalds $B;a$,$$$^$9!#(B 16.336 +$BH`$OC10l$N%=!<%9%j%]%8%H%j$r8x3+$7$F$*$j!"(B 16.337 +$B3+H/%3%_%e%K%F%#A4BN$K$H$C$F$O!"(B 16.338 +$B$3$N%j%]%8%H%j$,(B``$B8"0R$"$k(B''$B8=9T%=!<%9%D%j!<$H$_$J$5$l$^$9!#(B 16.339 +$BC/$b$,(B Torvalds $B;a$N%=!<%9%D%j!<$rJ#@=$G$-$^$9$,!"(B 16.340 +$BC/$N%D%j!<$+$iJQ99$r<h$j9~$`$+$H$$$&E@$K4X$7$F!"(B 16.341 +Torvalds $B;a$OHs>o$K?5=E$JA*Br$r$7$F$$$^$9!#(B 16.342 + 16.343 +Torvalds $B;a$K$O(B``$B?.Mj$G$-$kJd:4Lr(B''$B$,2??M$+$$$^$9!#(B 16.344 +$BH`$iJd:4Lr$,8x3+$7$F$$$kJQ99$O!"(B 16.345 +$B%l%S%e!<$,9T$o$l$F$$$J$/$F$b!"(B 16.346 +$BBg35$O(B Torvalds $B;a$K$h$j<h$j9~$^$l$^$9!#(B 16.347 +$BJd:4Lr$N$&$A$N2??M$+$O!"(B 16.348 +``$BJ]<iC4Ev<T(B''$B$H$7$F>5G'$5$l$F$*$j!"(B 16.349 +$B%+!<%M%k$NFCDj$N%5%V%7%9%F%`$K4X$9$k@UG$$rIi$C$F$$$^$9(B 16.350 +$B$H$"$k%+!<%M%k%O%C%+!<$,%5%V%7%9%F%`$X$NJQ99$r9T$$!"(B 16.351 +$B$=$NJQ99$r:G=*E*$K(B Torvalds $B;a$N%D%j!<$K<h$j9~$s$GM_$7$$$H9M$($?>l9g!"(B 16.352 +$BEv3:%5%V%7%9%F%`$NJ]<iC4Ev<T$,C/$G$"$k$+$rD4$Y$F!"(B 16.353 +$B$=$NC4Ev<T$KJQ99$N:NMQ$r$*4j$$$9$kI,MW$,$"$j$^$9!#(B 16.354 +$BJ]<iC4Ev<T$,JQ99$N%l%S%e!<$N8e$K:NMQ$KF10U$7$?>l9g!"(B 16.355 +$B$=$NJQ99$O<j=g$K=>$$(B Torvalds $B;a$X$HEO$5$l$^$9!#(B 16.356 + 16.357 +$B8D!9$NJd:4Lr$O!"(B 16.358 +$BJQ99$N%l%S%e!<!&>5G'$*$h$S8x3+$K4X$9$k$=$l$>$l$N<jK!$r;}$C$F$*$j!"(B 16.359 +Torvalds $B;a$X$NJQ99AwIU;~4|$NH=CG$K4X$7$F$b!"$=$l$OEv$F$O$^$j$^$9!#(B 16.360 +$B$=$l$K2C$($F!"(B 16.361 +$B0[$J$kL\E*8~$1$NNI$/CN$i$l$?%V%i%s%A$,$$$/$D$+B8:_$7$^$9!#(B 16.362 +$BNc$($P!"(B 16.363 +$B8E$$HG$N%+!<%M%k$N(B``$B0BDjHG(B''$B%j%]%8%H%j$,!"(B 16.364 +$BI,MW$K1~$8$F?<9o$J>c32$N=$@5$rE,MQ$9$k$?$a$K!"(B 16.365 +$B>/?t$N?M!9$K$h$jJ]<i$5$l$F$$$^$9!#(B 16.366 +$B2??M$+$NJ]<iC4Ev<T$O!"(B 16.367 +$BJ#?t$N%=!<%9%D%j!<$r8x3+$7$F$$$^$9!#(B 16.368 +$B#1$D$O<B83E*$JJQ99$N$?$a$N$b$N!"(B 16.369 +$B#1$D$O>eN.%j%]%8%H%j$+$iG[I[$7$h$&$H$7$F$$$kJQ99$N$?$a$N$b$N!"(B 16.370 +$B$H$$$C$?0DG[$G$9!#(B 16.371 +$BB>$NJ]<iC4Ev<T$O!"%=!<%9%D%j!<$r#1$D$@$18x3+$7$F$$$^$9!#(B 16.372 + 16.373 +Linux $B$K$*$1$k$3$N%b%G%k$O!"(B 16.374 +$B#2$D$NCmL\$KCM$9$kFCD'$r;}$C$F$$$^$9!#(B 16.375 +$B#1$DL\$O(B``$B<h$j9~$_8BDj(B''$B!J(Bpull only$B!K$G$"$kE@$G$9!#(B 16.376 +$BJ]<iC4Ev<T0J30$,JQ99$rH?1G$G$-$k%=!<%9%D%j!<$,KX$IL5$/!"(B 16.377 +$BB>$N?M$,4IM}$7$F$$$k%=!<%9%D%j!<$KJQ99$rH?1G$9$kJ}K!$,L5$$$3$H$+$i!"(B 16.378 +$BJQ99$rH?1G$5$;$?$$%=!<%9%D%j!<$NJ]<iC4Ev<T$KBP$7$F!"(B 16.379 +$BJQ99$N:NMQ$r(B\emph{$B$*4j$$(B}$B$9$kI,MW$,$"$j$^$9!#(B 16.380 + 16.381 +$B#2$DL\$NFCD'$O!"(B 16.382 +$BCNL>EY$HI>H=$K4p$E$$$F$$$kE@$G$9!#(B 16.383 +$BL>$NCN$i$l$F$$$J$$3+H/<T$+$i$NJQ990MMj$N>l9g!"(B 16.384 +Torvalds $B;a$,0MMj%a!<%k$r<u$1<h$C$?$N$J$i!"(B 16.385 +$BJV?.$b$;$:$KL5;k$7$F$7$^$&$G$7$g$&!#(B 16.386 +$B$7$+$7!"(B 16.387 +$B%5%V%7%9%F%`$NJ]<iC4Ev<T$,0MMj%a!<%k$r<u$1<h$C$?>l9g!"(B 16.388 +$BFbMF$,%l%S%e!<$5$l$?>e$G!"(B 16.389 +$B$=$l$,J]<iC4Ev<T$N4p=`$rK~$?$7$F$$$l$P!"(B 16.390 +$B$*$=$i$/$=$NJQ99$O:NMQ$5$l$k$G$7$g$&!#(B 16.391 +$B$h$j(B``$BNI$$(B''$BJQ99$G9W8%$9$kDx!"(B 16.392 +$BJ]<iC4Ev<T$O$"$J$?$NH=CG$r?.Mj$9$k$G$7$g$&$7!"(B 16.393 +$B$"$J$?$NJQ990MMj$,<uM}EY$5$l$kEY9g$$$bA}$9$G$7$g$&!#(B 16.394 +$B$"$J$?$,M-L>$K$J$j!"(B 16.395 +Torvalds $B;a$,$^$@<uM}$7$F$$$J$$B)$ND9$$%V%i%s%A$NJ]<i$r9T$&$h$&$K$J$l$P!"(B 16.396 +$B$"$J$?$N:n6HFbMF$KDI=>$9$k$?$a$K!"(B 16.397 +$B;w$?$h$&$J6=L#$r;}$D?M!9$,$"$J$?$NJQ99$rDj4|E*$K<h$j9~$`$h$&$K$J$k$G$7$g$&!#(B 16.398 + 16.399 +$BCNL>EY$dI>H=$O!"(B 16.400 +$BI,$:$7$b%5%V%7%9%F%`$d(B``$B?ME*(B''$B6-3&$r1[$($k$o$1$G$O$"$j$^$;$s!#(B 16.401 +$B@l$i%9%H%l!<%87O$GCxL>$J%O%C%+!<$,!"(B 16.402 +$B%M%C%H%o!<%/$N%P%0=$@5$r;n$_$?>l9g!"(B 16.403 +$B%M%C%H%o!<%/%5%V%7%9%F%`$NJ]<iC4Ev<T$K$h$k4F::$O!"(B 16.404 +$BA4$/$NIt30<T$K$h$kJQ99$HF1DxEY$H$J$k$G$7$g$&!#(B 16.405 + 16.406 +$B$h$j@0A3$H$7$?%W%m%8%'%/%H=>;v$N7P83$r;}$D?M$K$H$C$F!"(B 16.407 +$BAjEv$KL5Ca=x$J(B Linux $B%+!<%M%k$N3+H/<j=g$O!"(B 16.408 +$BA4$/Hs>o<1$J$b$N$K8+$($k$3$H$G$7$g$&!#(B 16.409 +$B$3$N3+H/7ABV$O!"8D?M$N5$$^$0$l$N1F6A$r<u$1$d$9$$$N$G$9!#(B 16.410 +$B:n6H$O3F<+$NET9g$NNI$$;~$K!"6C$/$Y$-%Z!<%99T$o$l$^$9!#(B 16.411 +$B$=$l$G$b$J$*(B Linux $B$O!"(B 16.412 +$B@.8y$r<}$a$?=EMW$J%=%U%H%&%'%"$N#1$D$H$J$C$F$$$^$9!#(B 16.413 + 16.414 +\subsection{Pull-only versus shared-push collaboration} 16.415 + 16.416 +$BB>$N?M$N%j%]%8%H%j$+$i$OJQ99$NH?1G$N$_$7$+$7$J$$%b%G%k$H!"(B 16.417 +$BJ#?t$N?M!9$,6&M-%j%]%8%H%j$X$NJQ99H?1G$r9T$&$3$H$,$G$-$k3+H/%b%G%k$N!"(B 16.418 +$B$I$A$i$,(B``$B$h$jNI$$(B''$B%b%G%k$G$"$k$+$O!"(B 16.419 +$B%*!<%W%s%=!<%9%3%_%e%K%F%#$K$*$$$F7QB3E*$J5DO@$NE*$K$J$C$F$$$^$9!#(B 16.420 +$B$G$9!#(B 16.421 + 16.422 +$B6&M-%j%]%8%H%j!\H?1G%b%G%k$N;Y;}<T$O!"(B 16.423 +$B$=$N<jK!$r@Q6KE*$K;HMQ$9$k%D!<%k$r;HMQ$9$k798~$K$"$j$^$9!#(B 16.424 +Subversion $B$N$h$&$JCf1{=8LsE*$J9=@.4IM}%D!<%k$r;HMQ$7$F$$$k>l9g!"(B 16.425 +$B:NMQ$9$k%b%G%k$NA*Br;h$O$"$j$^$;$s!#(B 16.426 +$B6&M-%j%]%8%H%j!\H?1G%b%G%k$,%D!<%k$K$h$C$F6/@)$5$l$k$?$a!"(B 16.427 +$BB>$N%b%G%k$r;HMQ$9$k$K$O!"(B 16.428 +$B$=$N%D!<%k>e$GFH<+$N<jK!!JNc$($P!"<jF0$G(B \command{patch} 16.429 +$B$r08$F$k!"$J$I!K$r6n;H$9$kI,MW$,$"$j$^$9!#(B 16.430 + 16.431 +Mercurial $B$N$h$&$JE,@Z$JJ,;69=@.4IM}%D!<%k$G$"$l$P!"(B 16.432 +$BN>J}$N%b%G%k$rA*Br2DG=$G$9!#(B 16.433 +$BMxMQ<T4V$NO"7H7ABV$O!"(B 16.434 +$B%D!<%k$K$h$j6/@)$5$l$kOD$s$@$b$N$G$O$J$/!"(B 16.435 +$B8GM-$NMWK>$d9%$_$K4p$E$$$F9=C[$9$k$3$H$,$G$-$^$9!#(B 16.436 + 16.437 +\subsection{Where collaboration meets branch management} 16.438 + 16.439 +$B6&M-%j%]%8%H%j$r9=C[$7!"(B 16.440 +$B3F:n6H<T$,<j85$N%j%]%8%H%j$H6&M-%j%]%8%H%j$H$N4V$G!"(B 16.441 +$BJQ99$NEAGE$r3+;O$7;O$a$?$J$i!"(B 16.442 +$B%A!<%`Fb$N3+H/$NJ}8~@-$rF1;~$KJ#?t4IM}$9$k$H$$$&!"(B 16.443 +$BO"7H$K4X$9$k$3$H$G$O$"$j$D$D$b!"(B 16.444 +$BHyL/$K0[$J$kFqLd$KD>LL$9$k$3$H$G$7$g$&!#(B 16.445 +$B$3$NLdBj$O3+H/%A!<%`$NO"7HJ}<0$HL)@\$K4XO"$7$F$O$$$k$b$N$N!"(B 16.446 +$B2~$a$F<h$j>e$2$k2ACM$,$"$k$[$IHs>o$K9~$_F~$C$?OC$G$"$k$3$H$+$i!"(B 16.447 +\ref{chap:branch}~$B>O$G2~$a$F@bL@$7$^$9!#(B 16.448 + 16.449 +\section{The technical side of sharing} 16.450 + 16.451 +$BK\>O$N;D$j$O!"(B 16.452 +$B6&F1:n6H<T$KBP$7$F%G!<%?$NDs6!$r9T$&>e$G$NLdBjE@$K3d$-$?$$$H;W$$$^$9!#(B 16.453 + 16.454 +\section{Informal sharing with \hgcmd{serve}} 16.455 +\label{sec:collab:serve} 16.456 + 16.457 +Mercurial $B$N(B \hgcmd{serve} $B%3%^%s%I$O!"(B 16.458 +$B>.$5$/6[L)$GB-JB$_$NAa$$=8CD$G$NMxMQ$KBgJQE,$7$F$$$^$9!#(B 16.459 +\hgcmd{serve} $B%3%^%s%I$O$^$?!"(B 16.460 +$B%M%C%H%o!<%/1[$7$G$N(B Mercurial $B%3%^%s%I$NMxMQ46$rDO$`$?$a$N!"(B 16.461 +$BAG@2$i$7$$<jCJ$rDs6!$7$F$$$^$9!#(B 16.462 + 16.463 +$B%j%]%8%H%jG[2<$K$*$$$F(B \hgcmd{serve} $B$r<B9T$9$k$3$H$G!"(B 16.464 +$B#1IC$b7P$?$:$KFC@=$N(B HTTP $B%5!<%P$,5/F0$7$^$9!#(B 16.465 +$B<B9T$,Dd;_$5$l$k$^$G$N4V$K$3$N(B HTTP $B%5!<%P$O!"(B 16.466 +$BG$0U$N%/%i%$%"%s%H$+$i$N@\B3$r<uM}$7!"(B 16.467 +$BEv3:%j%]%8%H%jCf$N%G!<%?$NDs6!$r9T$$$^$9!#(B 16.468 +$B$?$C$?:#5/F0$7$?$P$+$j$N%5!<%P$N(B URL $B$rCN$C$F$$$F!"(B 16.469 +$B%M%C%H%o!<%/1[$7$K%5!<%P$,2TF0$7$F$$$k%3%s%T%e!<%?$HDL?.$G$-$k$J$i!"(B 16.470 +$B%&%'%V%V%i%&%6$d(B Mercurial $B$rMxMQ$7$F!"(B 16.471 +$BC/$b$,%j%]%8%H%j$+$i%G!<%?$rFI$_=P$9$3$H$,$G$-$^$9!#(B 16.472 +$B%N!<%H(B PC $B>e$G2TF0$9$k(B \hgcmd{serve} $B%W%m%;%9$N(B URL $B$O!"(B 16.473 +\Verb|http://my-notepc.local:8000/| $B$N$h$&$J7A<0$K$J$j$^$9!#(B 16.474 + 16.475 +\hgcmd{serve} $B%3%^%s%I$OHFMQ%&%'%V%5!<%P$G$O(B\emph{$B$"$j$^$;$s(B}$B!#(B 16.476 +$B$3$N%3%^%s%I$r;HMQ$9$k$3$H$G#2$D$N;v$,2DG=$K$J$j$^$9!#(B 16.477 + 16.478 +\begin{itemize} 16.479 +\item $B0lHLE*$J%&%'%V%V%i%&%67PM3$G$N%5!<%S%9BP>]%j%]%8%H%j$NMzNr$N1\Mw(B 16.480 + 16.481 +\item Mercurial $B%W%m%H%3%k$K$h$kDL?.$r9T$&$3$H$G!"(B 16.482 + $B%j%]%8%H%jFb%A%'%s%8%;%C%H$N(B \hgcmd{clone} $B$J$$$7(B \hgcmd{pull} 16.483 + 16.484 +\end{itemize} 16.485 + 16.486 +$B$H$j$o$11s3V%f!<%6$K$h$kBP>]%j%]%8%H%j$N(B\emph{$BJQ99(B}$B$r5v2D$7$J$$$3$H$+$i!"(B 16.487 +\hgcmd{serve} $B$OFI$_=P$7@lMQ$H$7$F$NMxMQ$,A[Dj$5$l$F$$$^$9!#(B 16.488 + 16.489 +Mercurial $B$r4{$KMxMQ$7;O$a$F$$$k$N$G$"$l$P!"(B 16.490 +$B<+?H$N%3%s%T%e!<%?>e$N%j%]%8%H%j$rBP>]$H$7$F(B 16.491 +\hgcmd{serve} $B$rMxMQ$9$k$3$H$,$G$-$^$9$+$i!"(B 16.492 +$B%M%C%H%o!<%/1[$7$K8x3+$5$l$F$$$k%j%]%8%H%j$N>l9g$HF1MM$K!"(B 16.493 +\hgcmd{clone} $B$d(B \hgcmd{incoming} 16.494 +$B$N$h$&$J%3%^%s%I$r;HMQ$7$F!"(B 16.495 +\hgcmd{serve} $B$K$h$C$F5/F0$5$l$?%5!<%P$HDL?.$7$F$_$^$7$g$&!#(B 16.496 +$B%M%C%H%o!<%/7PM3$G8x3+$5$l$F$$$k%j%]%8%H%j$KBP$9$k%3%^%s%I$N;HMQJ}K!$r!"(B 16.497 +$B<jAa$/=,F@$9$k0l=u$K(B \hgcmd{serve} $B$r;HMQ$9$k$N$bNI$$$G$7$g$&!#(B 16.498 + 16.499 +\subsection{A few things to keep in mind} 16.500 + 16.501 +\hgcmd{serve} $B$O!"(B 16.502 +$B%M%C%H%o!<%/1[$7$NFI$_=P$7A`:n$rG'>ZL5$7$GA4$F5v2D$7$F$$$k$?$a!"(B 16.503 +$BBP>]%j%]%8%H%j$+$i%G!<%?$rFI$_=P$9$?$a$KC/$,@\B3$7$FMh$k$N$+$r!"(B 16.504 +$B5$$K$7$J$/$FNI$$!J$"$k$$$O40A4$K@)8f$G$-$k!K4D6-$G$N$_(B 16.505 +\hgcmd{serve} $B$r;H$&$h$&$K$9$Y$-$G$9!#(B 16.506 + 16.507 +$B%3%s%T%e!<%?$d%M%C%H%o!<%/$X$N%U%!%$%d%&%)!<%k$NF3F~>u67$K$D$$$F!"(B 16.508 +\hgcmd{serve} $B%3%^%s%I$O0l@Z4XCN$7$^$;$s!#(B 16.509 +$B%U%!%$%d%&%)!<%k$N8!=P$b@)8f$b$G$-$^$;$s!#(B 16.510 +$B<B9TCf$N(B \hgcmd{serve} $B%W%m%;%9$H$NDL?.$,$G$-$J$$>l9g$O!"(B 16.511 +$B!JM}>&<R$,@5$7$$(B URL $B$r;HMQ$7$F$$$k$3$H$r3NG'$7$?(B\emph{$B8e(B}$B$G!K(B 16.512 +$B%U%!%$%"%&%)!<%k$N@_Dj$r3NG'$9$Y$-$G$9!#(B 16.513 + 16.514 +\hgcmd{serve} $B$K$h$k%M%C%H%o!<%/@\B3$N<u$1IU$1$O!"(B 16.515 +$BDL>o$O(B 8000 $BHV%]!<%H$G9T$o$l$^$9!#(B 16.516 +$BEv3:%]!<%H$,4{$KB>$N%W%m%;%9$K$h$j;HMQ$5$l$F$$$?>l9g$O!"(B 16.517 +\hgopt{serve}{-p} $B%*%W%7%g%s$r;HMQ$9$k$3$H$G!"(B 16.518 +$B@\B3<u$1IU$1%]!<%HHV9f$r;XDj$9$k$3$H$,$G$-$^$9!#(B 16.519 + 16.520 +\hgcmd{serve} $B5/F0$N:]$K$ODL>o2?$b=PNO$5$l$^$;$s$N$G!"(B 16.521 +$B>/!9IT0B$K$J$k$+$b$7$l$^$;$s!#(B 16.522 +\hgcmd{serve} $B$,E,@Z$K2TF0$7$F$$$k$3$H$r3NG'$7$?$j!"(B 16.523 +$B6&F1:n6H<T$KAwIU$9$k(B URL $B$rCN$j$?$$$N$G$"$l$P!"(B 16.524 +\hggopt{-v} $B%*%W%7%g%sIU$-$G(B \hgcmd{serve} $B$r5/F0$7$F$/$@$5$$!#(B 16.525 + 16.526 +\section{Using the Secure Shell (ssh) protocol} 16.527 +\label{sec:collab:ssh} 16.528 + 16.529 +Secure Shell $B!J(B\texttt{ssh}$B!K%W%m%H%3%k$r;HMQ$9$k$3$H$G!"(B 16.530 +$B%M%C%H%o!<%/@\B31[$7$K0BA4$KJQ99FbMF$N<h$j9~$_!&H?1G$r9T$&$3$H$,$G$-$^$9!#(B 16.531 +$B$3$N@\B3J}K!$r@5$7$/5!G=$5$;$k$K$O!"(B 16.532 +$B%/%i%$%"%s%H$"$k$$$O%5!<%PB&$G>/!9@_Dj$,I,MW$+$b$7$l$^$;$s!#(B 16.533 + 16.534 +ssh $B$KFk@w$_$,$J$$$N$G$"$l$P!"(B 16.535 +$BB>$N%3%s%T%e!<%?$H0BA4$KDL?.$9$k$?$a$N%M%C%H%o!<%/%W%m%H%3%k$G$"$k!"(B 16.536 +$B$HM}2r$7$F$*$$$F$/$@$5$$!#(B 16.537 +Mercurial $B$G(B ssh $B$rMxMQ$9$k$K$O!"(B 16.538 +$B%5!<%P$X$N%m%0%$%s$*$h$S%3%^%s%I<B9T$,$G$-$k$h$&$K!"(B 16.539 +$B%5!<%PB&$K%f!<%6%"%+%&%s%H$r!JI,MW$G$"$l$PJ#?t!KMQ0U$9$kI,MW$,$"$j$^$9!#(B 16.540 + 16.541 +$B!J(Bssh $B$K$D$$$F>\$7$$>l9g!"(B 16.542 +$B0J9_$N@bL@$O$*$=$i$/Hs>o$K=iJbE*$K46$8$k$G$7$g$&!K(B 16.543 + 16.544 +\subsection{How to read and write ssh URLs} 16.545 + 16.546 +ssh $B%W%m%H%3%k$rMxMQ$9$k>l9g$N(B URL $B$O!"(B 16.547 +$B35$M0J2<$N$h$&$J7A<0$r;}$A$^$9!#(B 16.548 + 16.549 +\begin{codesample2} 16.550 + ssh://bos@hg.serpentine.com:22/hg/hgbook 16.551 +\end{codesample2} 16.552 + 16.553 +\begin{enumerate} 16.554 +\item ``\texttt{ssh://}' $BItJ,$,(B Mercurial $B$K(B ssh $B%W%m%H%3%k$NMxMQ$r;X<($7$^$9(B 16.555 + 16.556 +\item ``\texttt{bos@}''$BItJ,$,%5!<%P$X$N%m%0%$%s$K$*$1$k%f!<%6L>$rI=$7$^$9!#(B 16.557 + $B%5!<%P$G$N%f!<%6L>$,%m!<%+%k%^%7%s>e$N%f!<%6L>$H0lCW$9$k>l9g$O!"(B 16.558 + $B$3$NItJ,$r>JN,$G$-$^$9!#(B 16.559 + 16.560 +\item ``\texttt{hg.serpentine.com}'' 16.561 + $BItJ,$O%m%0%$%s@h%5!<%P$N%[%9%HL>$rI=$7$^$9!#(B 16.562 + 16.563 +\item ``:22'' $BItJ,$O%5!<%P$K@\B3$9$k:]$N%]!<%HHV9f$rI=$7$^$9!#(B 16.564 + ssh $B@\B3$K$*$1$k4{Dj%]!<%HHV9f$O(B 22 $BHV$G$9$N$G!"(B 16.565 + 22 $BHV(B\emph{$B0J30(B}$B$N%]!<%H$r;HMQ$9$k>l9g$N$_;XDj$,I,MW$G$9!#(B 16.566 + 16.567 +\item URL $B$N;D$j$NItJ,$O%5!<%P>e$K$*$1$k%j%]%8%H%j$N%Q%9$rI=$7$^$9!#(B 16.568 + 16.569 +\end{enumerate} 16.570 + 16.571 +ssh $B%W%m%H%3%k$K$*$1$k(B URL $BI=5-$N%Q%9MWAGItJ,$K$O!"(B 16.572 +$BCM$N2r<a$K4X$9$kI8=`E*$J<jK!$,$J$$$?$a$K!"(B 16.573 +$B:.Mp$NM>CO$,B?!9$"$j$^$9!#(B 16.574 +$B0l72$N%W%m%0%i%`$O!"(B 16.575 +$B%Q%9MWAGItJ,$K4X$7$FB>$N%W%m%0%i%`$H0[$J$k?6$kIq$$$r$7$^$9!#(B 16.576 +$B$3$N$h$&$J>u67$OM}A[E*$G$O$"$j$^$;$s$,!"(B 16.577 +$B>u67$,JQ$o$j$=$&$K$O$"$j$^$;$s!#(B 16.578 +$B$G$9$+$i0J9_$N@bL@$OCm0U?<$/FI$s$G$/$@$5$$!#(B 16.579 + 16.580 +Mercurial $B$O%Q%9ItJ,$r!"(B 16.581 +$B%5!<%P$K%m%0%$%s$9$k%f!<%6$N!"(B 16.582 +$B%[!<%`%G%#%l%/%H%j$KBP$9$kAjBP%Q%9$H$_$J$7$^$9!#(B 16.583 +$BNc$($P!"(B 16.584 +$B%5!<%P$K$*$1$k(B \texttt{foo} $B%f!<%6$N%[!<%`%G%#%l%/%H%j$,(B 16.585 +\dirname{/home/foo} $B$G$"$k>l9g!"(B 16.586 +ssh $B%W%m%H%3%k$K$*$1$k(B URL $B$N%Q%9MWAG$,(B \dirname{bar} $B$G$"$l$P!"(B 16.587 +$B$=$N(B URL $B$K$h$j(B\emph{$B<B:]$K(B}$B;2>H$5$l$k$N$O(B 16.588 +\dirname{/home/foo/bar} $B%G%#%l%/%H%j$G$9!#(B 16.589 + 16.590 +$BB>$N%f!<%6$N%[!<%`%G%#%l%/%H%j$KBP$9$kAjBP%Q%9$r;XDj$9$k>l9g$O!"(B 16.591 +$B%A%k%@J8;z!J(B\texttt{~}$B!K$K%f!<%6L>!J$3$3$G$O(B 16.592 +\texttt{otheruser} $B$H$7$^$9!K$rB3$1$?%Q%9$G;O$^$k!"(B 16.593 +$B0J2<$N$h$&$JI=5-$K$J$j$^$9!#(B 16.594 + 16.595 +\begin{codesample2} 16.596 + ssh://server/~otheruser/hg/repo 16.597 +\end{codesample2} 16.598 + 16.599 +\emph{$B@dBP(B}$B%Q%9$K$h$k;XDj$r9T$&>l9g$O!"(B 16.600 +$B0J2<$N$h$&$K%Q%9MWAG$r%@%V%k%9%i%C%7%e$G;O$a$^$9!#(B 16.601 + 16.602 +\begin{codesample2} 16.603 + ssh://server//absolute/path 16.604 +\end{codesample2} 16.605 + 16.606 +\subsection{Finding an ssh client for your system} 16.607 + 16.608 +$BKX$IA4$F$N(B Unix $B%i%$%/$J%7%9%F%`$K$O(B 16.609 +OpenSSH $B$,;vA0F3F~$5$l$F$$$^$9!#(B 16.610 +Unix $B%i%$%/$J%7%9%F%`$r;HMQ$7$F$$$k>l9g!"(B 16.611 +\Verb|which ssh| $B$HF~NO$9$k$3$H$G(B 16.612 +\command{ssh} $B%3%^%s%I!JDL>o$O(B \dirname{/usr/bin} $B$K%$%s%9%H!<%k$5$l$F$$$^$9!K(B 16.613 +$B$N%$%s%9%H!<%k$NM-L5$r3NG'$9$k$3$H$,$G$-$^$9!#(B 16.614 +$BM=A[$KH?$7$F%$%s%9%H!<%k$5$l$F$$$J$+$C$?>l9g$K$O!"(B 16.615 +$B%7%9%F%`E:IU$N%I%-%e%a%s%H$r;2>H$7$F%$%s%9%H!<%kJ}K!$rD4$Y$F$/$@$5$$!#(B 16.616 + 16.617 +Windows $B$N>l9g!"(B 16.618 +$BBEEv$J(B ssh $B%/%i%$%"%s%H$rA*Br$7$F%@%&%s%m!<%I$9$kI,MW$,$"$j$^$9!#(B 16.619 +$B<g$JA*Br;h$O#2$D$"$j$^$9!#(B 16.620 + 16.621 +\begin{itemize} 16.622 +\item Simon Tatham $B;a$K$h$k(B PuTTY~\cite{web:putty} $B$O!"(B 16.623 + ssh $B%/%i%$%"%s%H%3%^%s%I0l<0$rDs6!$7$F$$$^$9!#(B 16.624 + 16.625 +\item $BLLE]$J;v$X$NBQ@-$,9b$$J}$J$i!"(B 16.626 + Cygwin $B>e$N(B OpenSSH $B$r;H$&$N$bNI$$$G$7$g$&!#(B 16.627 + 16.628 +\end{itemize} 16.629 + 16.630 +$B$I$A$i$N>l9g$G$b!"(B 16.631 +Mercurial $B$,(B ssh $B%/%i%$%"%s%H%3%^%s%I$rC5$7=P$;$k$h$&$K(B 16.632 +\hgini\ $B%U%!%$%k$rJT=8$9$kI,MW$,$"$k$G$7$g$&!#(B 16.633 +$BNc$($P(B PuTTY $B$r;HMQ$9$k$J$i!"(B 16.634 +$B%3%^%s%I9T$G<B9T$9$k(B ssh $B%/%i%$%"%s%H$H$7$F(B 16.635 +\command{plink} $B$r<B9T$9$k$3$H$K$J$j$^$9!#(B 16.636 + 16.637 +\begin{codesample2} 16.638 + [ui] 16.639 + ssh = C:/path/to/plink.exe -ssh -i "C:/path/to/my/private/key" 16.640 +\end{codesample2} 16.641 + 16.642 +\begin{note} 16.643 + \command{plink} $B$X$N%Q%9$,6uGrJ8;z$r4^$`>l9g!"(B 16.644 + Mercurial $B$O(B \command{plink} $B%3%^%s%I$r@5$7$/5/F0$G$-$^$;$s(B 16.645 + $B!J$G$9$N$G(B \dirname{C:\\Program Files} $B$K%$%s%9%H!<%k$9$k$N$O!"(B 16.646 + $B$h$/$"$j$^$;$s!K!#(B 16.647 +\end{note} 16.648 + 16.649 +\subsection{Generating a key pair} 16.650 + 16.651 +ssh $B%/%i%$%"%s%H$r;HMQ$9$kEY$K!"(B 16.652 +$BKh2s%Q%9%o!<%IF~NO$r7+$jJV$5$J$/$F$bNI$$MM$K!"(B 16.653 +$B80BP!J(Bkey pair$B!K(B\footnote{$BLuCm(B: 16.654 +$B!V8x3+80!W!J(Bpublic key$B!K$H(B 16.655 +$B!VHkL)80!W!J(Bprivate key$B!K$NBP$,@8@.$5$l$^$9!#(B 16.656 +}$B$r@8@.$9$k$3$H$r$*$9$9$a$7$^$9!#(B 16.657 +Unix $B%i%$%/$J%7%9%F%`(B\footnote{$BLuCm(B: Windows $B$N(B Cygwin $B4D6-4^$`(B}$B$G$O!"(B 16.658 +\command{ssh-keygen} $B%3%^%s%I$G80BP$r@8@.$7$^$9!#(B 16.659 +Windows $B>e$G(B PuTTY $B$r;HMQ$7$F$$$k>l9g$O!"(B 16.660 +\command{puttygen} $B%3%^%s%I$G80BP$r@8@.$7$^$9!#(B 16.661 + 16.662 +$B80BP$r@8@.$9$k>l9g!"(B 16.663 +$B%Q%9%U%l!<%:$G80$r<i$k$h$&$K$9$k$N$,!"(B 16.664 +$B0lHL$K$O(B\emph{$BHs>o$K(B}$B8-L@$H$5$l$F$$$^$9(B 16.665 +$B!J(Bssh $B%W%m%H%3%k$K$h$k0BA4$J%M%C%H%o!<%/$r!"(B 16.666 +$B<+F02=$5$l$?=hM}$K$*$$$F;HMQ$9$k>l9g$r=|$/!K!#(B 16.667 + 16.668 +$B$7$+$7!"C1$K80BP$r@8@.$7$?$@$1$G$OIT==J,$G$9!#(B 16.669 +$B%M%C%H%o!<%/7PM3$G%m%0%$%s$9$k%5!<%PB&%"%+%&%s%H$K$*$$$F!"(B 16.670 +$B>5G'800lMw$K8x3+80$rDI2CEPO?$9$kI,MW$,$"$j$^$9!#(B 16.671 +OpenSSH $B$,F3F~$5$l$F$$$k%5!<%P$G$N8x3+80$NDI2C$O!"(B 16.672 +$BEv3:%"%+%&%s%H$N(B \sdirname{.ssh} $B%G%#%l%/%H%jG[2<$N(B 16.673 +\sfilename{authorized\_keys} 16.674 +$B%U%!%$%k$K8x3+80$NFbMF$rDI2C$9$k$3$H$G9T$o$l$^$9!#(B 16.675 + 16.676 +Unix $B%i%$%/L>%7%9%F%`$G$O!"(B 16.677 +$B8x3+80$ODL>o(B \filename{.pub} $B3HD%;R$r;}$C$F$$$^$9!#(B 16.678 +Windows $B>e$G(B \command{puttygen} $B$r;HMQ$9$k>l9g$O!"(B 16.679 +$BG$0U$N%U%!%$%kL>$GJ]B82DG=$G$9$7!"(B 16.680 +$B8x3+80$NFbMF$,I=<($5$l$F$$$k%&%#%s%I%&$+$i(B 16.681 +\sfilename{authorized\_keys} $B$XD>@\E=$jIU$1!J(Bpaste$B!K$k$3$H$b2DG=$G$9(B 16.682 + 16.683 +\subsection{Using an authentication agent} 16.684 + 16.685 +$BG'>Z%(!<%8%'%s%H$O!"(B 16.686 +$B%Q%9%U%l!<%:$r%a%b%j>e$K3JG<$9$k%G!<%b%s%W%m%;%9$G$9(B 16.687 +$B!J$=$N$?$a!"%m%0%"%&%H8e$K:FEY%m%0%$%s$7$?>l9g!"(B 16.688 +$B%Q%9%U%l!<%:$O<:$o$l$^$9!K!#(B 16.689 +$BG'>Z%(!<%8%'%s%H$N2TF0$r8!CN$9$k$H!"(B 16.690 +ssh $B%/%i%$%"%s%H$OG'>Z%(!<%8%'%s%H$K%Q%9%U%l!<%:$NLd$$9g$o$;$r9T$$$^$9!#(B 16.691 +$BG'>Z%(!<%8%'%s%H$,2TF0$7$F$$$J$$$+!"(B 16.692 +$B$"$k$$$OI,MW$J%Q%9%U%l!<%:$r5-21$7$F$$$J$$>l9g$O!"(B 16.693 +Mercurial $B$K$h$k%5!<%PO"7H!JNc(B: \hgcmd{push} $B$d(B \hgcmd{pull}$B!K$NETEY!"(B 16.694 +$B%Q%9%U%l!<%:$NF~NO$,I,MW$G$9!#(B 16.695 + 16.696 +$BG'>Z%(!<%8%'%s%H$K$h$k%Q%9%U%l!<%:J]B8$N7gE@$O!"(B 16.697 +$BF~G0$K=`Hw$7$?967b<T$K$H$C$F$O!"(B 16.698 +$B$?$H$(Dj4|E*$K:F5/F0$7$F$$$k%7%9%F%`$G$"$C$F$b(B XXXXXX power-cycled XXXX 16.699 +$B%Q%9%U%l!<%:$NJ?J,$rI|852DG=$G$"$kE@$G$9!#(B 16.700 +$B$3$NLdBj$,5vMF2DG=$J$b$N$+H]$+$O!"3F<+$GH=CG$9$kI,MW$,$"$j$^$9!#(B 16.701 +$BG'>Z%(!<%8%'%s%H$r;HMQ$9$k$3$H$G!"(B 16.702 +$B7+$jJV$7%Q%9%U%l!<%:$rF~NO$9$k<j4V$rBgI}$KDc8:$9$k$3$H$,$G$-$^$9!#(B 16.703 + 16.704 +Unix $B%i%$%/L>%7%9%F%`$G$O!"(B 16.705 +$BG'>Z%(!<%8%'%s%H$O(B \command{ssh-agent} $B$H$$$&L>A0$G!"(B 16.706 +\command{ssh-add} 16.707 +$B%3%^%s%I$r;H$C$F%(!<%8%'%s%H$N5-21NN0h$K%Q%9%U%l!<%:$rJ]B8$7$^$9!#(B 16.708 +Windows $B>e$G(B PuTTY $B$r;HMQ$9$k>l9g$O!"(B 16.709 +\command{pageant} $B%3%^%s%I$,G'>Z%(!<%8%'%s%H$7$F?6Iq$$$^$9!#(B 16.710 +$B%7%9%F%`%H%l%$$KDI2C$5$l$?%"%$%3%s$r%/%j%C%/$9$k$3$H$G!"(B 16.711 +$B3JG<$5$l$?%Q%9%U%l!<%:$N4IM}$r9T$&$3$H$,$G$-$^$9!#(B 16.712 + 16.713 +\subsection{Configuring the server side properly} 16.714 + 16.715 +$B=i?4<T$K$H$C$F(B ssh $B$N@_Dj$OLLE]$J$N$G!"(B 16.716 +$BLdBj$,H/@8$9$k>u67$bB?4t$KEO$j$^$9!#(B 16.717 +Add Mercurial on top, and 16.718 +there's plenty more scope for head-scratching. XXXXX 16.719 +$BLdBjH/@8$N2DG=@-$O!"(B 16.720 +$B%/%i%$%"%s%HB&$G$O$J$/%5!<%PB&$NJ}$,9b$$$G$9!#(B 16.721 +$B$"$j$,$?$$$3$H$K!"(B 16.722 +$B0lC6@5$7$/F0:n$9$k@_Dj$,$G$-$F$7$^$($P!"(B 16.723 +$BDL>o$OL54|8B$K@5$7$/F0:n$7B3$1$^$9!#(B 16.724 + 16.725 +Mercurial $B$G(B ssh $B%5!<%P$HDL?.$r$7$F$_$kA0$K!"(B 16.726 +$BDL>o$N(B \command{ssh} $B$J$$$7(B 16.727 +\command{putty} $B%3%^%s%I$K$h$k%5!<%P$H$NDL?.$r3NG'$9$k$N$,L5Fq$G$9!#(B 16.728 +$BD>@\%3%^%s%I$r;HMQ$7$?:]$KLdBj$,H/@8$7$?$J$i$P!"(B 16.729 +Mercurial $B$,5!G=$7$J$$$3$H$O3N<B$G$9!#(B 16.730 +$B99$K0-$$$3$H$K!"(B 16.731 +Mercurial $B$r2p$7$F$N(B ssh $B%5!<%P$H$NO"7H$O!"(B 16.732 +$B:,K\E*$J860x$,1#$l$F$7$^$$$^$9!#(B 16.733 +ssh $B$K4XO"$9$k(B Mercurial $B$NLdBj$r2r7h$9$k>l9g$O!"(B 16.734 +Mercurial $B$NIT6q9g$r5?$&(B\emph{$BA0$K(B}$B!"(B 16.735 +ssh $B%/%i%$%"%s%H%3%^%s%I$ND>@\<B9T$,5!G=$9$k$3$H$r3NG'$7$F$/$@$5$$!#(B 16.736 + 16.737 +$B%5!<%PB&$G:G=i$K3NG'$9$Y$-;v$O!"(B 16.738 +$B$"$k%^%7%s$+$i%5!<%P%^%7%s$X$N<B:]$N%m%0%$%s$N2DH]$G$9!#(B 16.739 +\command{ssh} $B$J$$$7(B \command{putty} $B$G%m%0%$%s$G$-$J$$>l9g!"(B 16.740 +$BI=<($5$l$k%(%i!<%a%C%;!<%8$+$iLdBjFCDj$N%R%s%H$,F@$i$l$k$+$b$7$l$^$;$s!#(B 16.741 +$B$h$/$"$kLdBj$K$O0J2<$N$h$&$J$b$N$,$"$j$^$9!#(B 16.742 + 16.743 +\begin{itemize} 16.744 +\item ``connection refused'' $B$,I=<($5$l$k>l9g$O!"(B 16.745 + ssh $B%5!<%P%W%m%;%9$,5/F0$5$l$F$$$J$$$+!"(B 16.746 + $B%U%!%$%d!<%&%)!<%k@_Dj$K$h$j%M%C%H%o!<%/@\B3$G$-$J$$$3$H$,860x$G$9!#(B 16.747 + 16.748 +\item ``no route to host'' $B$,I=<($5$l$k>l9g$O!"(B 16.749 + $B@\B3@h$N%5!<%P%"%I%l%9$,4V0c$C$F$$$k$+!"(B 16.750 + $B%U%!%$%d!<%&%)!<%k$K$h$C$F@\B3$,87=E$K6X;_$5$l$F$$$k$3$H$,860x$G$9!#(B 16.751 + 16.752 +\item ``permission denied'' $B$,I=<($5$l$k>l9g$O!"(B 16.753 + $B%5!<%P@\B3$N:]$N%f!<%6L>!"%Q%9%U%l!<%:!"(B 16.754 + $B$J$$$7%5!<%PB&%f!<%6$N%Q%9%o!<%I$NF~NO$r4V0c$($F$$$k$3$H$,860x$G$9!#(B 16.755 + 16.756 +\end{itemize} 16.757 + 16.758 +$B$3$l$^$G$NOC$r$^$H$a$k$H!"(B 16.759 +$B%5!<%P%^%7%s>e$N(B ssh $B%5!<%P%W%m%;%9$H$NDL?.$KLdBj$,$"$k>l9g!"(B 16.760 +$B$^$:$O%5!<%P%W%m%;%9$N2TF0>u67$r3NG'$7$F$/$@$5$$!#(B 16.761 +$BB?$/$N%7%9%F%`$G$O!"(B 16.762 +ssh $B<+BN$O%$%s%9%H!<%k$5$l$F$$$^$9$,!"(B 16.763 +$B=i4|>uBV$G$OL58z2=$5$l$F$$$k>l9g$,$"$j$^$9!#(B 16.764 +$B$3$N3NG'$,:Q$s$@$J$i!"(B 16.765 +$B<!$K3NG'$9$k$N$O!"(B 16.766 +ssh $B%5!<%P%W%m%;%9$,30It$+$i$N@\B3$r<u$1IU$1$k%]!<%H!JDL>o$O(B 22 $BHV!K(B 16.767 +$B$KBP$9$k30It$+$i$N@\B3$r!"(B 16.768 +$B%5!<%P$N%U%!%$%d!<%&%)!<%k@_Dj$,5v2D$7$F$$$k$+H]$+$G$9!#(B 16.769 +$B$3$l$i#2$D$N3NG'$r:Q$^$;$k$^$G$O!"(B 16.770 +$BFMGo;R$b$J$$@_Dj%_%9$N2DG=@-$K4X$7$F?4G[$9$kI,MW$O$"$j$^$;$s!#(B 16.771 + 16.772 +$BHkL)80MQ%Q%9%U%l!<%:$NJ];}$N$?$a$K!"(B 16.773 +$B%/%i%$%"%s%HB&$GG'>Z%(!<%8%'%s%H$r;HMQ$7$F$$$k>l9g$O!"(B 16.774 +$B%Q%9%U%l!<%:$d%Q%9%o!<%I$NLd$$9g$o$;$r<u$1$k;vL5$/!"(B 16.775 +$B%5!<%P$K%m%0%$%s$G$-$F$$$J$1$l$P$J$j$^$;$s!#(B 16.776 +$B%Q%9%U%l!<%:$rLd$$9g$o$;$k%W%m%s%W%H$,I=<($5$l$k>l9g!"(B 16.777 +$BLdBj$N2DG=@-$N$"$k$b$N$,4v$D$+$"$j$^$9!#(B 16.778 + 16.779 +\begin{itemize} 16.780 +\item \command{ssh-add} $B$J$$$7(B \command{pageant} 16.781 + $B$K$h$k%Q%9%U%l!<%:$N3JG<$rK:$l$F$$$k$N$+$b$7$l$^$;$s!#(B 16.782 + 16.783 +\item $BA[Dj$7$F$$$k$b$N$H$OJL$J80$N%Q%9%U%l!<%:$r3JG<$7$F$$$k$N$+$b$7$l$^$;$s!#(B 16.784 + 16.785 +\end{itemize} 16.786 + 16.787 +$B%5!<%PB&%f!<%6$N%Q%9%o!<%I$NLd$$9g$o$;$,$"$C$?>l9g!"(B 16.788 +$BJL$JLdBj$N2DG=@-$r8!F$$9$kI,MW$,$"$j$^$9!#(B 16.789 + 16.790 +\begin{itemize} 16.791 +\item $B%5!<%PB&%f!<%6$N!"%[!<%`%G%#%l%/%H%j$J$$$7(B 16.792 + \sdirname{.ssh} $B%G%#%l%/%H%j$N8"8B@_Dj$,!"(B 16.793 + $B2aEY$K4K$/@_Dj$5$l$F$$$k$N$+$b$7$l$^$;$s!#(B 16.794 + ssh $B%5!<%P%W%m%;%9$O$=$N>l9g!"(B 16.795 + \sfilename{authorized\_keys} 16.796 + $B%U%!%$%k$N?.Mj@-$,Dc$$$b$N$H$7$FFI$_9~$_$r9T$$$^$;$s!#(B 16.797 + $BNc$($P!"(B 16.798 + $B%[!<%`%G%#%l%/%H%j$J$$$7(B \sdirname{.ssh} $B%G%#%l%/%H%j$,!"(B 16.799 + $B%0%k!<%W$KBP$9$k=q$-9~$_8"8B$r@_Dj$5$l$F$$$k>l9g!"(B 16.800 + $B%Q%9%o!<%ILd$$9g$o$;$,9T$o$l$k!"$H$$$C$?>I>u$,8+$i$l$^$9!#(B 16.801 + 16.802 +\item \sfilename{authorized\_keys} 16.803 + $B%U%!%$%k$=$N$b$N$KLdBj$,$"$k2DG=@-$b$"$j$^$9!#(B 16.804 + $B$3$N%U%!%$%k$X$N=q$-9~$_8"8B$,=jM-<T0J30$K$b@_Dj$5$l$F$$$k>l9g!"(B 16.805 + ssh $B%5!<%P%W%m%;%9$O%U%!%$%k$N?.Mj@-$,Dc$$$b$N$H$7$FFI$_9~$_$r9T$$$^$;$s!#(B 16.806 + 16.807 +\end{itemize} 16.808 + 16.809 +$B0J2<$N%3%^%s%I<B9T$KBP$7$F!"(B 16.810 +$B!J%5!<%PB&$N!K8=:_;~9o$rI=<($9$k#19T$@$1$,=PNO$5$l$k!"(B 16.811 +$B$H$$$&>uBV$,M}A[E*$G$9!#(B 16.812 + 16.813 +\begin{codesample2} 16.814 + ssh myserver date 16.815 +\end{codesample2} 16.816 + 16.817 +$B>e5-$N$h$&$JHsBPOCE*$J%3%^%s%I<B9T$N>l9g$K$b!"(B 16.818 +$B%P%J!<I=<($d$=$l$KN`$9$kI=<($,9T$o$l$k$h$&$J@_Dj$,!"(B 16.819 +$BO"7H@h%5!<%PB&$G9T$o$l$F$$$k>l9g$K$O!"(B 16.820 +$B$3$N@h$N<j=g$K?J$`A0$K!"(B 16.821 +$BBPOCE*$J<B9T(B\footnote{$BLuCm(B: $B!V(Bssh $B$K$h$k%m%0%$%s;~!W$N0U(B}$B$N;~$K$N$_!"(B 16.822 +$B$3$l$i$,I=<($5$l$k$h$&$K@_DjJQ99$7$F$/$@$5$$!#(B 16.823 +$B$3$l$rBU$k$H!"(B 16.824 +$B%P%J!<Ey$NI=<($,(B Mercurial $B$N=PNO$r:.Mp$5$;$F$7$^$$$^$9!#(B 16.825 +$B99$KLdBj$J$3$H$K!"(B 16.826 +$B%P%J!<Ey$NI=<($O(B Mercurial $B%3%^%s%I$N1s3V<B9T$K$*$1$k@x:_E*$JLdBj$H@.$jF@$^$9!#(B 16.827 +$BHsBPOCE*$J(B \command{ssh} $BO"7H$K$*$$$F!"(B 16.828 +Mercurial $B$O6KNO%P%J!<Ey$NI=<($N8!CN$J$i$S$KL5;k$KEX$a$^$9$,!"(B 16.829 +$BI,$:$7$bA4$F$,L5;k$G$-$k$o$1$G$O$"$j$^$;$s(B 16.830 +$B!J%5!<%PB&$G%m%0%$%s;~<B9T%9%/%j%W%H$r%+%9%?%^%$%:$9$k>l9g!"(B 16.831 +\Verb|tty -s| $B%3%^%s%I$NLa$jCM$rH=Dj$9$k$3$H$G!"(B 16.832 +$BEv3:%9%/%j%W%H$,8=:_BPOC%7%'%k$G<B9T$5$l$F$$$k$+H]$+$rH=Dj$9$k$3$H$,$G$-$^$9!K(B 16.833 +\footnote{$BLuCm(B: $B%m%0%$%s%9%/%j%W%H$G$N=PNO0J30$G$b!"(B 16.834 +$B%U%C%/<B9T;~$KI8=`=PNO$KBP$7$F2?$i$+$NI=<($,$"$C$?>l9g!"(B 16.835 +Mercurial $B$O!VO"7H$K$*$1$kA[Dj30$N%G!<%?<x<u!W$H$_$J$9$?$a!"(B 16.836 +$BCm0U$,I,MW$G$9!#(B}$B!#(B 16.837 + 16.838 +$BAG$N(B ssh $B$K$h$k%5!<%PO"7H$,5!G=$9$k$3$H$r3NG'$7$?$J$i$P!"(B 16.839 +$B<!$K3NG'$9$k$N$O!"(B 16.840 +$B%5!<%PB&$G$N(B Mercurial $B<B9T$N2DH]$G$9!#(B 16.841 +$B0J2<$N%3%^%s%I<B9T$,@5$7$/5!G=$9$k$3$H$r3NG'$7$F$/$@$5$$!#(B 16.842 + 16.843 +\begin{codesample2} 16.844 + ssh myserver hg version 16.845 +\end{codesample2} 16.846 + 16.847 +$BDL>o$N(B \hgcmd{version} $B=PNO$G$O$J$/%(%i!<%a%C%;!<%8$,I=<($5$l$k>l9g!"(B 16.848 +$BBg35$O(B \dirname{/usr/bin} $B$K(B 16.849 +Mercurial $B$,%$%s%9%H!<%k$5$l$F$$$J$$$3$H$,860x$G$9!#(B 16.850 +$B$=$N>l9g$G$b!"(B 16.851 +$BI,$:$7$b(B \dirname{/usr/bin} $B$K%$%s%9%H!<%k$9$kI,MW$O$"$j$^$;$s!#(B 16.852 +$B$7$+$7!"9M$(F@$k0J2<$N4v$D$+$N860x$K4X$7$F3NG'$,I,MW$G$9!#(B 16.853 + 16.854 +\begin{itemize} 16.855 +\item Mercurial $B$OK\Ev$K%5!<%P$K%$%s%9%H!<%k$5$l$F$$$^$9$+!)(B 16.856 + $BJQ$J<ALd$H;W$o$l$k$+$b$7$l$^$;$s$,!"$3$l$OHs>o$K=EMW$J3NG';v9`$G$9!#(B 16.857 + 16.858 +\item $B%7%'%k$N%3%^%s%I%5!<%A%Q%9!JDL>o$O(B \envar{PATH} $B4D6-JQ?t$G@_Dj!K(B 16.859 + $B$N@_Dj$,C1$KITE,@Z$J$N$+$b$7$l$^$;$s!#(B 16.860 + 16.861 +\item $B$R$g$C$H$7$?$i!"(B\envar{PATH} $B4D6-JQ?t$,(B 16.862 + \command{hg} 16.863 + $B%3%^%s%I$N3JG<>l=j$r;X$9$h$&$K@_Dj$5$l$k$N$OBPOCE*$J%m%0%$%s;~$K$N$_!"(B 16.864 + $B$H$$$&2DG=@-$b$"$j$^$9!#(B 16.865 + \envar{PATH} $B4D6-JQ?t$N@_Dj$rITE,Ev$J5/F0%9%/%j%W%H$G9T$C$F$$$k>l9g$K!"(B 16.866 + $B$3$N$h$&$J8=>]$,H/@8$7$^$9!#(B 16.867 + $B3F<+$N;HMQ$7$F$$$k%7%'%k$N%I%-%e%a%s%H$r3NG'$7$F$_$^$7$g$&(B\footnote{$BLuCm(B: 16.868 + $BNc$($P(B bash $B$N>l9g!"BPOCE*%m%0%$%s$+H]$+$G(B 16.869 + \sfilename{.bashrc}$B!"(B 16.870 + \sfilename{.bash\_profile}$B!"(B 16.871 + \sfilename{.profile} $B$*$h$S(B 16.872 + \sfilename{.login} $B$H$$$C$?3F%U%!%$%k$NFI$_9~$_$NM-L5$,JQ2=$7$^$9!#(B 16.873 + $B$^$?!"%G%#%9%H%j%S%e!<%7%g%s$K$h$C$F$O!"(B 16.874 + $BHsBPOCE*$J<B9T$N:]$K$O!"(B 16.875 + \dirname{/etc/bashrc} $B$K$h$k(B 16.876 + \dirname{/etc/profile.d} 16.877 + $BG[2<$N@_Dj%U%!%$%kFI$_9~$_$,9T$o$l$J$$>l9g$,$"$j$^$9(B 16.878 + $B!J(B2.6.x $B7O%+!<%M%k%Y!<%9$N$b$N$OFI$_9~$^$J$$J}?K$NLOMM!K$N$G!"(B 16.879 + \envar{PYTHONPATH} $B$N7o$b4^$a$F!"(B 16.880 + $B%7%9%F%`%o%$%I$J@_Dj$r9T$&J}$OCm0U$,I,MW$G$9!#(B 16.881 + \Verb|ssh myserver env| 16.882 + $B<B9T$G=PNO$5$l$k4D6-JQ?t0lMw$r3NG'$7$F$_$^$7$g$&!#(B 16.883 + }$B!#(B 16.884 + 16.885 +\item \envar{PYTHONPATH} $B4D6-JQ?t$K$h$k(B 16.886 + Mercurial $B$N(B Python 16.887 + $B%b%8%e!<%k3JG<%G%#%l%/%H%j$N;2>H$,I,MW$G$"$k%1!<%9$b$"$j$^$9!#(B 16.888 + $BITE,@Z$J@_Dj$@$C$?$j!"BPOCE*%m%0%$%s;~$K$N$_@_Dj$5$l$F$$$k2DG=@-$,$"$j$^$9!#(B 16.889 + 16.890 +\end{itemize} 16.891 + 16.892 +ssh $B7PM3$G$N(B \hgcmd{version} $B%3%^%s%I<B9T$,@.8y$7$?$J$i=`Hw$O40N;$G$9!#(B 16.893 +$B%5!<%P!&%/%i%$%"%s%H$O6&$KLdBj2r7h:Q$_$H$J$j$^$7$?!#(B 16.894 +$B%5!<%P>e$G8x3+$5$l$F$$$k(B $B%j%]%8%H%j$K!"(B 16.895 +$BEv3:%f!<%6L>$K$h$k(B Mercurial $B$G$N%"%/%;%9$,2DG=$K$J$C$F$$$kH&$G$9!#(B 16.896 +$B$3$3$^$G$N3NG'$r%/%j%"$7$?>e$G!"(B 16.897 +Mercurial $B$H(B ssh $B$NO"7H$K$*$$$FLdBj$,H/@8$7$?>l9g!"(B 16.898 +$BLdBjH/@8$N>u67$r$h$jL@3N$K$9$k$?$a$K!"(B 16.899 +\hggopt{--debug} $B%*%W%7%g%s$rIU$1$F$N<B9T$r;n$7$F$_$F$/$@$5$$!#(B 16.900 + 16.901 +\subsection{Using compression with ssh} 16.902 + 16.903 +ssh $B%W%m%H%3%k$r;HMQ$9$k>l9g!"(B 16.904 +ssh $B%W%m%H%3%k<+?H$,DL?.;~$K%G!<%?05=L$r9T$&$?$a!"(B 16.905 +Mercurial $B$O05=L$r9T$$$^$;$s!#(B 16.906 +$B$7$+$7!"(Bssh $B%/%i%$%"%s%H$N!JDL>o$N!K4pDlF0:n$G$O!"(B 16.907 +$B05=L$r(B\emph{$B9T$$$^$;$s(B}$B!#(B 16.908 + 16.909 +$B9bB.$J(B LAN $B$N>l9g$r=|$1$P!JL5@~%M%C%H%o!<%/$G$"$C$F$b!K!"(B 16.910 +$BDL?.;~$N05=L$O(B Mercurial 16.911 +$B$N%M%C%H%o!<%/7PM3$N=hM}$r82Cx$K9bB.2=$7$^$9!#(B 16.912 +$BNc$($P(B WAN $B7PM3$G$NO"7H$N>l9g!"(B 16.913 +$B$+$J$jBg$-$J%j%]%8%H%j$NJ#@=$KMW$9$k;~4V$,(B 51 $BJ,$+$i(B 17 $BJ,$KDc8:$7$?!"(B 16.914 +$B$H$N@-G=7WB,Js9p$b$"$j$^$9!#(B 16.915 + 16.916 +\command{ssh} $B$H(B \command{plink} $B$NN>J}$H$b!"(B 16.917 +$BDL?.;~05=L$rM-8z2=$9$k(B 16.918 +\cmdopt{ssh}{-C} $B%*%W%7%g%s$r<u$1IU$1$^$9!#(B 16.919 +\hgrc\ $B%U%!%$%k$r0J2<$N$h$&$KJT=8$9$k$3$H$G!"(B 16.920 +ssh $B%W%m%H%3%kMxMQ$N:]$K>o$K05=L$r9T$&$h$&$K(B Mercurial $B$KBP$7$F;XDj$G$-$^$9!#(B 16.921 + 16.922 +\begin{codesample2} 16.923 + [ui] 16.924 + ssh = ssh -C 16.925 +\end{codesample2} 16.926 + 16.927 +\command{ssh} $B$r;HMQ$7$F$$$k>l9g$O!"(B 16.928 +$BO"7H@h%5!<%P$H$NDL?.$N:]$K$O>o$K05=L$r9T$&$h$&$K@_Dj$9$k$3$H$b$G$-$^$9!#(B 16.929 +$B$3$N@_Dj$r9T$&$K$O!"(B 16.930 +$B%[!<%`%G%#%l%/%H%jG[2<$N(B 16.931 +\sfilename{.ssh/config} $B%U%!%$%k(B 16.932 +$B!JL5$$>l9g$O?75,$K:n@.$7$^$9!K$K0J2<$N$h$&$K5-=R$7$^$9!#(B 16.933 + 16.934 +\begin{codesample2} 16.935 + Host hg 16.936 + Compression yes 16.937 + HostName hg.example.com 16.938 +\end{codesample2} 16.939 + 16.940 +$B>e5-$N5-=R$O!"(B 16.941 +\texttt{hg} $B$H$$$&JLL>!J(Balias$B!K$r:n@.$7$^$9!#(B 16.942 +\command{ssh} $B<B9T$N:]$N%3%^%s%I9T5-=R$d!"(B 16.943 +Mercurial $B$N(B \texttt{ssh} $B%W%m%H%3%k$K$*$1$k(B URL $B$H$7$F!"(B 16.944 +\texttt{hg} $B$r!J%[%9%HL>$H$7$F!K;HMQ$7$?>l9g!"(B 16.945 +\command{ssh} $B$ODL?.;~05=L$r9T$$$D$D(B \texttt{hg.example.com} $B$K@\B3$7$^$9!#(B 16.946 +$B$3$N@_Dj$K$h$j!"(B 16.947 +$BF~NO$NJXMx$J>JN,L>$H!"05=L;XDj$NN>J}$r<j$K$9$k$3$H$,$G$-$^$9!#(B 16.948 + 16.949 +\section{Serving over HTTP using CGI} 16.950 +\label{sec:collab:cgi} 16.951 + 16.952 +$B0U5$9~$_<!Bh$G$O!"(B 16.953 +Mercurial $B$N(B CGI $B%$%s%?%U%'!<%9$N@_Dj$O!"(B 16.954 +$B?tJ,$N$b$N$r?t;~4V$K$7$F$7$^$&2DG=@-$,$"$j$^$9!#(B 16.955 + 16.956 +$B:G$bC1=c$JNc$+$i=i$a$F!"(B 16.957 +$B$h$jJ#;($J@_Dj$X$H8~$1$F?J$a$F$f$-$^$7$g$&!#(B 16.958 +$B:G$b4pK\E*$J%1!<%9$G$9$i!"(B 16.959 +$B%&%'%V%5!<%P$N@_Dj%U%!%&%k$NFI$_=q$-$r9T$&I,MW$,=P$F$/$k$3$H$G$7$g$&!#(B 16.960 + 16.961 +\begin{note} 16.962 + $B%&%'%V%5!<%P$N@_Dj$OJ#;($G!"07$$$K$/$/!"3n$D%7%9%F%`0MB8@-$N9b$$:n6H$G$9!#(B 16.963 + $B$=$N$?$aK\=q$G$O!"(B 16.964 + $BH/@8$9$k$G$"$m$&LdBj$N%1!<%9$rA4$FLVMe$9$k$h$&$J<j=g$r<($9$3$H$,$G$-$^$;$s!#(B 16.965 + $B0J9_$N5-=R$O!"?5=E$5$H3F<+$NH=CG$r$b$C$FFI$_?J$a$k$h$&$K$7$F$/$@$5$$!#(B 16.966 + $BBt;34V0c$($?$j!"%5!<%P$N%(%i!<%m%02r@O$K;~4V$rHq$d$93P8g$,I,MW$G$7$g$&!#(B 16.967 +\end{note} 16.968 + 16.969 +\subsection{Web server configuration checklist} 16.970 + 16.971 +$BFI$_?J$a$kA0$K!"(B 16.972 +$B%7%9%F%`$N@_Dj>u67$K4X$9$k4v$D$+$N3NG'$r9T$$$^$7$g$&!#(B 16.973 + 16.974 +\begin{enumerate} 16.975 +\item $B%&%'%V%5!<%P$O%$%s%9%H!<%k$5$l$F$$$^$9$+!)(B 16.976 + Mac OS X $B$O(B Apache $B$,%$%s%9%H!<%k$5$l$?>uBV$G=P2Y$5$l$^$9$,!"(B 16.977 + $BB?$/$N%7%9%F%`$G$O%&%'%V%5!<%P$O%$%s%9%H!<%k$5$l$F$$$^$;$s!#(B 16.978 + 16.979 +\item $B%&%'%V%5!<%P$,%$%s%9%H!<%k$5$l$F$$$k>l9g!"(B 16.980 + $B$=$l$O<B:]$K2TF0$7$F$$$^$9$+!)(B 16.981 + $B%&%'%V%5!<%P$,%$%s%9%H!<%k$5$l$F$$$?>l9g$G$b!"(B 16.982 + $BB?$/$N%7%9%F%`$N4pDl>uBV$O!"%&%'%V%5!<%P$,L58z2=$5$l$F$$$^$9!#(B 16.983 + 16.984 +\item CGI $B$r2TF0$5$;$h$&$H$7$F$$$k%G%#%l%/%H%j$O!"(B 16.985 + $B%&%'%V%5!<%P$N@_Dj$G(B CGI $B$N<B9T$,5v2D$5$l$F$$$^$9$+!)(B 16.986 + $BB?$/$N%&%'%V%5!<%P$N4pDl>uBV$O!"(B 16.987 + CGI $B%W%m%0%i%`$N<B9T5!G=$,L@<(E*$KL58z2=$5$l$F$$$^$9!#(B 16.988 + 16.989 +\end{enumerate} 16.990 + 16.991 +$B%&%'%V%5!<%P$,%$%s%9%H!<%k$5$l$F$$$J$$>l9g$d!"(B 16.992 +Apache $B%&%'%V%5!<%P$N@_Dj7P83$,$"$^$jL5$$>l9g$K$O!"(B 16.993 +Apache $B%&%'%V%5!<%P$NBe$o$j$K(B 16.994 +\texttt{lighttpd} $B%&%'%V%5!<%P$NMxMQ$r$*A&$a$7$^$9!#(B 16.995 +Apache $B%&%'%V%5!<%P$N@_Dj$O!"(B 16.996 +$B6E$C$F$$$F3n$D$o$+$j$K$/$$$H$$$&I>H=$K8+9g$&$b$N$,$"$j$^$9!#(B 16.997 +\texttt{lighttpd} $B$O(B Apache $B%&%'%V%5!<%PDx$N5!G=$OL5$$$b$N$N!"(B 16.998 +$BB-$j$J$$5!G=$NKX$I$,(B Mercurial $B%j%]%8%H%j$N1?MQ$K$O4X78$J$$$b$N$G$9!#(B 16.999 +$B$=$l$K2C$($F!"(B 16.1000 +$BL@$i$+$K(B \texttt{lighttpd} $B$O(B 16.1001 +Apache $B%&%'%V%5!<%P$h$j$b4JC1$KMxMQ$,3+;O$G$-$^$9!#(B 16.1002 + 16.1003 +\subsection{Basic CGI configuration} 16.1004 + 16.1005 +Unix $BE*$J%7%9%F%`$rMxMQ$7$F$$$k>l9g!"(B 16.1006 +$B%&%'%V%Z!<%8$H$7$F8x3+$9$k$?$a$N(B 16.1007 +\dirname{public\_html} $B$N$h$&$J%G%#%l%/%H%j$r!"(B 16.1008 +$B%[!<%`%G%#%l%/%H%jG[2<$K;}$D$N$,6&DLG'<1$H$J$C$F$$$^$9!#(B 16.1009 +$B$3$N%G%#%l%/%H%jD>2<$KCV$$$?(B 16.1010 +\filename{foo} $B$H$$$&L>A0$N%U%!%$%k$O!"(B 16.1011 +\texttt{http://www.example.com/\~username/foo} $B$H$$$&(B 16.1012 +URL $B$G;2>H2DG=$K$J$j$^$9!#(B 16.1013 + 16.1014 +$B@_Dj$r;O$a$k$KEv$?$C$F!"(B 16.1015 +Mercurial $B$N%$%s%9%H!<%k@h$K3JG<$5$l$F$$$k(B 16.1016 +\sfilename{hgweb.cgi} $B%9%/%j%W%H$N=j:_$r3NG'$7$F$/$@$5$$!#(B 16.1017 +$B%7%9%F%`>e$N=j:_$,$9$0$K$O$o$+$i$J$+$C$?>l9g$O!"(B 16.1018 +Mercurial $B$N%^%9%?!<%j%]%8%H%j$+$i(B 16.1019 +\url{http://www.selenic.com/repo/hg/raw-file/tip/hgweb.cgi} 16.1020 +$B$rD>@\%@%&%s%m!<%I$7$F$/$@$5$$!#(B 16.1021 + 16.1022 +$B>e5-%9%/%j%W%H$r(B 16.1023 +\dirname{public\_html} $BG[2<$KG[CV$7!"(B 16.1024 +$B<B9T2DG=$H$J$k$h$&$K8"8B@_Dj$r9T$$$^$9!#(B 16.1025 + 16.1026 +\begin{codesample2} 16.1027 + cp .../hgweb.cgi ~/public_html 16.1028 + chmod 755 ~/public_html/hgweb.cgi 16.1029 +\end{codesample2} 16.1030 + 16.1031 +\command{chmod} $B%3%^%s%I$X$N(B \texttt{755} $B0z?t;XDj$O!"(B 16.1032 +$B%9%/%j%W%H$K<B9T2DG=8"8B$rIUM?$9$k0J>e$NIU2CE*$J;XDj$r0UL#$7$^$9!#(B 16.1033 +$B$3$N@_Dj$K$h$j!"%9%/%j%W%H$,C/$+$i$b<B9T2DG=$K$J$k$HF1;~$K!"(B 16.1034 +``group'' $B$*$h$S(B ``other'' $B$K$h$k=q$-9~$_8"8B$,(B\emph{$BGmC%(B}$B$5$l$^$9!#(B 16.1035 +$B$3$l$i$N=q$-9~$_8"8B$rM-8z$J$^$^$K$7$?>l9g!"(B 16.1036 +Apache $B$N(B \texttt{suexec} $B%5%V%7%9%F%`$O!"(B 16.1037 +$B$*$=$i$/%9%/%j%W%H$N<B9T$r5qH]$9$k$G$7$g$&!#(B 16.1038 +$B<B$N$H$3$m(B \texttt{suexec} $B$O!"(B 16.1039 +$B%9%/%j%W%H$,G[CV$5$l$F$$$k(B\emph{$B%G%#%l%/%H%j(B}$B$KBP$9$k(B 16.1040 +``group'' $B$*$h$S(B ``other'' $B$K$h$k=q$-9~$_8"8B$,GmC%$5$l$F$$$k$3$H$bMW5a$7$^$9!#(B 16.1041 + 16.1042 +\begin{codesample2} 16.1043 + chmod 755 ~/public_html 16.1044 +\end{codesample2} 16.1045 + 16.1046 +\subsubsection{What could \emph{possibly} go wrong?} 16.1047 +\label{sec:collab:wtf} 16.1048 + 16.1049 +CGI $B$rG[CV$7$?$J$i$P!"(B 16.1050 +$B%&%'%V%V%i%&%6$r5/F0$7$F(B 16.1051 +\url{http://myhostname/~myuser/hgweb.cgi} $B$KAjEv$9$k(B 16.1052 +URL $B$K%"%/%;%9$7$F$_$^$7$g$&!#(B 16.1053 +$BC"$7!"$A$g$C$H$7$?<:GT$K$O(B\emph{$B?H9=$($F$*$$$F$/$@$5$$(B}$B!#(B 16.1054 +$B=jK>$N(B URL $B$X$N%"%/%;%9$,<:GT$9$k8x;;$OHs>o$K9b$/!"(B 16.1055 +$B$=$NM}M3$OB?4t$KEO$j$^$9!#(B 16.1056 +$B<B:]$N$H$3$m!"(B 16.1057 +$B0J2<$N5/$3$jF@$k%(%i!<MW0x$NA4$F$Gm5$/2DG=@-$,$"$j$^$9$+$i!"(B 16.1058 +$B$3$N@h$OCm0U?<$/FI$_?J$a$F$/$@$5$$!#(B 16.1059 +$B0J2<$G=R$Y$kLdBj$O!"(B 16.1060 +$B$^$C$5$i$J>uBV$+$i%$%s%9%H!<%k$7$?(B Apache $B$r;H$$!"(B 16.1061 +$B$3$N<BNc$r9T$&$?$a$K?7$?$K@8@.$7$?%f!<%6%"%+%&%s%H$G!"(B 16.1062 +Fedora~7 $B>e$G:n6H$r<B;\$7$?:]$K!"(B 16.1063 +$BI.<T$,<B:]$KD>LL$7$?A4$F$NLdBj$G$9!#(B 16.1064 + 16.1065 +$B;HMQ$7$F$$$k%&%'%V%5!<%P$O!"(B 16.1066 +$B%f!<%6Kh$N%G%#%l%/%H%j$rL58z2=$7$F$$$k$+$b$7$l$^$;$s!#(B 16.1067 +Apache $B$r;HMQ$7$F$$$k>l9g$O!"(B 16.1068 +$B@_Dj%U%!%$%kCf$K(B \texttt{UserDir} $B;XDj$NM-L5$r3NG'$7$F$/$@$5$$!#(B 16.1069 +$B$3$N;XDj$,L5$$>l9g!"%f!<%6Kh%G%#%l%/%H%j$OL58z$K$J$j$^$9!#(B 16.1070 +$B;XDj$,M-$C$F$b(B\texttt{$BL58z2=$5$l$F$$$k(B}$B>l9g$b!"(B 16.1071 +$B%f!<%6Kh%G%#%l%/%H%j$OL58z$K$J$j$^$9!#(B 16.1072 +$BM-8z$J(B \texttt{UserDir} $B;XDj$,$"$k>l9g!"(B 16.1073 +\texttt{UserDir} $B;XDj$G5-=R$5$l$F$$$kJ8;zNs(B 16.1074 +$B!JNc$($P(B \dirname{public\_html}$B!K$,!"(B 16.1075 +$B%[!<%`%G%#%l%/%H%jD>2<$G(B Apache $B$,;2>H$9$k%5%V%G%#%l%/%H%jL>$K$J$j$^$9!#(B 16.1076 + 16.1077 +$B%U%!%$%k$N%"%/%;%98"8B$,87$7$9$.$k2DG=@-$b$"$j$^$9!#(B 16.1078 +$B%&%'%V%5!<%P$O!"(B 16.1079 +$BBP>]$H$J$k%f!<%6$N%[!<%`%G%#%l%/%H%j!"(B 16.1080 +$B$*$h$S(B \dirname{public\_html} 16.1081 +$BG[2<$N%U%!%$%k!&%G%#%l%/%H%j$NFI$_9~$_$,$G$-$J$1$l$P$J$j$^$;$s!#(B 16.1082 +$BE,@Z$J8"8B@_Dj$r9T$&$?$a$N4JC1$J<j=g$r0J2<$K<($7$^$9!#(B 16.1083 + 16.1084 +\begin{codesample2} 16.1085 + chmod 755 ~ 16.1086 + find ~/public_html -type d -print0 | xargs -0r chmod 755 16.1087 + find ~/public_html -type f -print0 | xargs -0r chmod 644 16.1088 +\end{codesample2} 16.1089 + 16.1090 +$B8"8B@_Dj$K4X$9$kB>$NMW0x$N2DG=@-$,$"$k>l9g$O!"(B 16.1091 +$B%V%i%&%6$G$N=jK>$N(B URL $B%"%/%;%9;~$K!"(B 16.1092 +$B40A4$K6u$N2hLL$,I=<($5$l$k$3$H$G$7$g$&!#(B 16.1093 +$B$3$N>l9g$O!"$*$=$i$/%"%/%;%98"8B$,(B\emph{$B4K$9$.$k(B}$B$N$G$7$g$&!#(B 16.1094 +$BNc$($P(B Apache $B$N(B \texttt{suexec} $B%5%V%7%9%F%`$O!"(B 16.1095 +group $B$J$$$7(B other $B$K=q$-9~$_8"8B$,IUM?$5$l$?%9%/%j%W%H$O<B9T$7$^$;$s!#(B 16.1096 + 16.1097 +$B;HMQ$7$F$$$k%&%'%V%5!<%P$,!"(B 16.1098 +$B%f!<%6Kh%G%#%l%/%H%jG[2<$N(B CGI $B%W%m%0%i%`$N<B9T$r!"(B 16.1099 +$B6X;_$9$k$h$&$K@_Dj$5$l$F$$$k2DG=@-$bM-$j$^$9!#(B 16.1100 +$BI.<T$N(B Fedora~7 $B%7%9%F%`$K$*$1$k(B Apache $B$N!"(B 16.1101 +$B=i4|>uBV$N%f!<%6Kh@_Dj$r0J2<$K<($7$^$9!#(B 16.1102 + 16.1103 +\begin{codesample2} 16.1104 + <Directory /home/*/public_html> 16.1105 + AllowOverride FileInfo AuthConfig Limit 16.1106 + Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 16.1107 + <Limit GET POST OPTIONS> 16.1108 + Order allow,deny 16.1109 + Allow from all 16.1110 + </Limit> 16.1111 + <LimitExcept GET POST OPTIONS> 16.1112 + Order deny,allow 16.1113 + Deny from all 16.1114 + </LimitExcept> 16.1115 + </Directory> 16.1116 +\end{codesample2} 16.1117 + 16.1118 +$BBP>]$H$J$k(B Apache $B@_Dj%U%!%$%kCf$K;w$?$h$&$J(B 16.1119 +\texttt{Directory} $B@_Dj$,$"$k>l9g!"(B 16.1120 +\texttt{Options} $B;XDj$KCmL\$7$F$/$@$5$$!#(B 16.1121 +\texttt{ExecCGI} $B$,;XDj$5$l$F$$$J$$>l9g$O0lMwKvHx$K$3$l$rDI2C$7!"(B 16.1122 +$B%&%'%V%5!<%P$r:F5/F0$7$F$/$@$5$$!#(B 16.1123 + 16.1124 +Apache $B$,(B CGI $B$r<B9T$9$k$N$G$O$J$/!"(B 16.1125 +CGI $B%9%/%j%W%H$NFbMF$=$N$b$N$rJV5Q$7$F$-$?>l9g$O!"(B 16.1126 +$B0J2<$N5-=R$r!J4{$K5-=R$,$"$k$J$i$P!KM-8z2=$9$k$J$jDI2C$9$k$J$j$7$F$/$@$5$$!#(B 16.1127 + 16.1128 +\begin{codesample2} 16.1129 + AddHandler cgi-script .cgi 16.1130 +\end{codesample2} 16.1131 + 16.1132 +$B<!$KLdBj$NH/@8$7F@$k%1!<%9$G$O!"(B 16.1133 +Python $B$N%P%C%/%H%l!<%9$,I=<($5$l!"(B 16.1134 +\texttt{mercurial} $B4XO"%b%8%e!<%k$,%$%s%]!<%H(B 16.1135 +$B!J(Bimport$B!K$G$-$J$$;]$rEA$($F$$$k$3$H$G$7$g$&!#(B 16.1136 +$B=jK>$N7k2L$OF@$i$l$F$$$^$;$s$,!"(B 16.1137 +$B%&%'%V%5!<%P$O(B CGI $B%9%/%j%W%H$N<B9T$r9T$&$h$&$K$J$C$?$N$G!"(B 16.1138 +$B@hDx$N>uBV$+$i$OA0?J$7$F$$$^$9!*(B 16.1139 +$B%$%s%]!<%H$,$G$-$J$$;]$N%(%i!<$O!"(B 16.1140 +$B%7%9%F%`%o%$%I$GMxMQ2DG=$J(B Mercurial $B$G$O$J$/!"(B 16.1141 +$B$*$=$i$/8D?ME*$K%$%s%9%H!<%k$7$?(B Mercurial 16.1142 +$B$r<B9T$7$F$$$k>l9g$K$N$_H/@8$7$^$9!#(B 16.1143 +$B%&%'%V%5!<%P$,(B CGI $B%W%m%0%i%`$r<B9T$9$k>l9g!"(B 16.1144 +$B3F8D?M$NBPOCE*%m%0%$%s%;%C%7%g%s$G<B;\$5$l$F$$$k4D6-JQ?t;XDj$,L5$$!"(B 16.1145 +$B$H$$$&$3$H$rK:$l$J$$$G$/$@$5$$!#(B 16.1146 +$B$3$N%(%i!<$,H/@8$7$?>l9g$O!"(B 16.1147 +\envar{PYTHONPATH} $B4D6-JQ?t@_Dj$,E,@Z$K$J$k$h$&$K(B 16.1148 +\sfilename{hgweb.cgi} $B$N5-=R$rJT=8$7$F$/$@$5$$!#(B 16.1149 + 16.1150 +$B:G=*E*$K!"(B 16.1151 +\dirname{/path/to/repository} $B$,8+$D$+$i$J$$;]$rEA$($k(B 16.1152 +Python $B$N%P%C%/%H%l!<%9$,(B\emph{$B3N<B$K(B}$BI=<($5$l$k$3$H$G$7$g$&!#(B 16.1153 +\sfilename{hgweb.cgi} $B%9%/%j%W%H$rJT=8$7$F!"(B 16.1154 +$BJ8;zNs(B \dirname{/path/to/repository} 16.1155 +$B$r<B:]$K8x3+$7$?$$%j%]%8%H%j$X$N@dBP%Q%9$GCV$-49$($F$/$@$5$$!#(B 16.1156 + 16.1157 +$B$3$3$^$GMh$l$P!"(B 16.1158 +$B%&%'%V%V%i%&%6$G%Z!<%8$r%j%m!<%I$7$?:]$K!"(B 16.1159 +$Be:No$K(B HTML $B$G@07A$5$l$?%j%]%8%H%jMzNr$NI=<($r8+$k$3$H$,$G$-$kH&$G$9!#(B 16.1160 +$B$*Hh$lMM$G$9!#(B 16.1161 + 16.1162 +\subsubsection{Configuring lighttpd} 16.1163 + 16.1164 +$BE0DlE*$K<B83$9$k$?$a$K!"(B 16.1165 +$B$3$l$^$G(B Apache $B$K4X$7$F@bL@$7$?$N$HF1MM$K!"(B 16.1166 +$B6aG/?M5$$,9b$^$C$F$$$k(B \texttt{lighttpd} $B%&%'%V%5!<%P$G!"(B 16.1167 +$BF1$8%j%]%8%H%j$r8x3+$9$k$?$a$N@_Dj5-=R$KD)@o$7$F$_$^$7$?!#(B 16.1168 +Apache $B$K$D$$$F$3$l$^$G35@b$7$F$-$?A4$F$NLdBj$O4{$K9nI~:Q$_$G$9$7!"(B 16.1169 +$B$=$NKX$I$O%&%'%V%5!<%P<BAu$K0MB8$7$^$;$s!#(B 16.1170 +$B7k2L$H$7$F!"(B 16.1171 +$B%U%!%$%k!&%G%#%l%/%H%j$N8"8B@_Dj$,BEEv$G$"$k$3$H$H!"(B 16.1172 +\sfilename{hgweb.cgi} $B%9%/%j%W%H$,E,@Z$K2~JQ:Q$_$G$"$k$3$H$O!"(B 16.1173 +$B$"$kDxEY3N?.$G$-$^$9!#(B 16.1174 + 16.1175 +$B0lC6(B Apache $B$G$N8x3+$K@.8y$7$F$$$l$P!"(B 16.1176 +\texttt{lighttpd} $B$G$N%j%]%8%H%j8x3+$O4JC1(B 16.1177 +$B!J8@$$49$($k$J$i!"(B 16.1178 +\texttt{lighttpd} $B$r;HMQ$9$k>l9g$G$b!"(B 16.1179 +$BA0=R$N(B Apache $B$K4X$9$k@bL@$rFI$`$Y$-$H8@$($^$9(B 16.1180 +$B!K$G$9!#(B 16.1181 +$B=i4|>uBV$G(B 16.1182 +\texttt{mod\_cgi} $B$*$h$S(B \texttt{mod\_userdir} $B$,L58z2=$5$l$F$$$?>l9g!"(B 16.1183 +$B$3$l$i$rM-8z2=$9$k$?$a$K!"(B 16.1184 +$B$^$:$O!"(B 16.1185 +$B@_Dj%U%!%$%k$N(B \texttt{mod\_access} $B%;%/%7%g%s$rJT=8$9$kI,MW$,$"$j$^$9!#(B 16.1186 +$B$=$N8e!"$3$l$i$N%b%8%e!<%k$r@_Dj$9$k$?$a$K!"(B 16.1187 +$B@_Dj%U%!%$%kKvHx$K?t9T$[$IDI2C$7$^$9!#(B 16.1188 + 16.1189 +\begin{codesample2} 16.1190 + userdir.path = "public_html" 16.1191 + cgi.assign = ( ".cgi" => "" ) 16.1192 +\end{codesample2} 16.1193 + 16.1194 +$B$3$N5-=R$K$h$j!"(B 16.1195 +\texttt{lighttpd} $B$O%f!<%6Kh$N%G%#%l%/%H%j$*$h$S(B CGI $B$rG'<1$7$^$9!#(B 16.1196 +Apache $B$h$j$bA0$K(B 16.1197 +\texttt{lighttpd} $B$N@_Dj$r$7$?$H$7$?$i!"(B 16.1198 +$BKX$I4V0c$$$J$/!"(B 16.1199 +Apache 16.1200 +$B$N@_Dj$N:]$K7P83$7$?$N$HF1$8%7%9%F%`%l%Y%k$N@_Dj%_%9$rHH$7$?$3$H$G$7$g$&!#(B 16.1201 +$B$7$+$7(B 16.1202 +Apache $B$N;HMQ7P83$,#1#0G/0J>e$"$j!"(B 16.1203 +$B3n$D=i$a$F$N(B \texttt{lighttpd} $B;HMQ$G$O$"$k$b$N$N!"(B 16.1204 +Apache $B$N@_Dj$h$j$b(B \texttt{lighttpd} $B$N$=$l$OCx$7$/MF0W$G$"$k$H;W$o$l$^$9!#(B 16.1205 + 16.1206 +\subsection{Sharing multiple repositories with one CGI script} 16.1207 + 16.1208 +$BC10l$N%j%]%8%H%j$N$_$7$+8x3+$G$-$J$$$H$$$&$N$O!"(B 16.1209 +\sfilename{hgweb.cgi} $B%9%/%j%W%H$NG:$^$7$$@)Ls$G$9!#(B 16.1210 +$BF1$8%9%/%j%W%H(B\footnote{$BLuCm(B: $B87L)$K$O!"(B 16.1211 +$B8x3+BP>]%j%]%8%H%j$N%Q%9$,0[$J$k$N$G$9$,!"(B 16.1212 +$B35$M!VF1$8!W$H8@$C$FNI$$$G$7$g$&!#(B 16.1213 +}$B$r0[$J$kL>A0$GJ#@=$9$k!"(B 16.1214 +$B$H$$$&LLE]$JJ}K!$h$j$O!"(B 16.1215 +\sfilename{hgwebdir.cgi} $B%9%/%j%W%H$N;HMQ$,$*A&$a$G$9!#(B 16.1216 + 16.1217 +\sfilename{hgwebdir.cgi} $B$N@_Dj<j=g$O!"(B 16.1218 +\sfilename{hgweb.cgi} $B$h$j$bB?>/9~$_F~$C$F$$$^$9!#(B 16.1219 +$B$^$:;O$a$K(B 16.1220 +$B%9%/%j%W%H$N%3%T!<$rF~<j$7$^$9!#(B 16.1221 +$B<j6a$KL5$$>l9g$O(B 16.1222 +Mercurial $B$N%^%9%?!<%j%]%8%H%j$+$i(B 16.1223 +\url{http://www.selenic.com/repo/hg/raw-file/tip/hgwebdir.cgi} 16.1224 +$B$rD>@\%@%&%s%m!<%I$7$F$/$@$5$$!#(B 16.1225 + 16.1226 +\dirname{public\_html} $BG[2<$K>e5-%9%/%j%W%H$rG[CV$7!"(B 16.1227 +$B<B9T2DG=$H$J$k$h$&$K8"8B@_Dj$r9T$$$^$9!#(B 16.1228 + 16.1229 +\begin{codesample2} 16.1230 + cp .../hgwebdir.cgi ~/public_html 16.1231 + chmod 755 ~/public_html ~/public_html/hgwebdir.cgi 16.1232 +\end{codesample2} 16.1233 + 16.1234 +$B4pK\E*$J@_Dj$,:Q$s$@$J$i!"(B 16.1235 +$B%V%i%&%6$G(B \url{http://myhostname/~myuser/hgwebdir.cgi} 16.1236 +$B$K%"%/%;%9$7$F$_$^$7$g$&!#(B 16.1237 +$B6u$N%j%]%8%H%j%j%9%H$,I=<($5$l$kH&$G$9!#(B 16.1238 +$B2?$bI=<($5$l$J$$$+!"%(%i!<%a%C%;!<%8$,I=<($5$l$k>l9g$O!"(B 16.1239 +\ref{sec:collab:wtf}~$B@a$G@bL@$7$?@x:_E*LdBj0lMw$r0lDL$j3NG'$7$F$/$@$5$$!#(B 16.1240 + 16.1241 +\sfilename{hgwebdir.cgi} $B%9%/%j%W%H$O30It@_Dj%U%!%$%k$rI,MW$H$7$^$9!#(B 16.1242 +$B4pDl>uBV$N(B 16.1243 +\sfilename{hgwebdir.cgi} $B%9%/%j%W%H$O!"(B 16.1244 +$B<+?H$HF1$8%G%#%l%/%H%j$K3JG<$5$l$?(B 16.1245 +\sfilename{hgweb.config} $B%U%!%$%k$rFI$_9~$b$&$H$7$^$9!#(B 16.1246 +$B$3$N%U%!%$%k$r@8@.$7!"(B 16.1247 +$BC/$KBP$7$F$bFI$_=P$78"8B$rIUM?$7$J$1$l$P$J$j$^$;$s!#(B 16.1248 +$B$3$N%U%!%$%k$N5-=R7A<0$O!"(B 16.1249 +Windows $B$K$*$1$k(B ``ini'' $B%U%!%$%k$N$=$l$HF1$8$G!"(B 16.1250 +Python $B$N(B 16.1251 +\texttt{ConfigParser}~\cite{web:configparser} 16.1252 +$B$K$h$j2r@O2DG=$J7A<0$G$9!#(B 16.1253 + 16.1254 +$B:G$b4JC1$K(B \sfilename{hgwebdir.cgi} $B$r@_Dj$9$k$K$O!"(B 16.1255 +\texttt{collections} $B$H$$$&L>A0$N%;%/%7%g%s$r@_Dj$7$F$/$@$5$$!#(B 16.1256 +$B$3$N%;%/%7%g%s$r5-=R$9$k$3$H$G!"(B 16.1257 +$BL>IU$1$?%G%#%l%/%H%jG[2<$N(B\emph{$BA4$F$N(B}$B%j%]%8%H%j$r<+F0E*$K8x3+$7$^$9!#(B 16.1258 +$B$3$N%;%/%7%g%s$N5-=R$O0J2<$N$h$&$K$J$j$^$9!#(B 16.1259 + 16.1260 +\begin{codesample2} 16.1261 + [collections] 16.1262 + /my/root = /my/root 16.1263 +\end{codesample2} 16.1264 + 16.1265 +Mercurial $B$O$3$N5-=R$r2r<a$9$k$KEv$?$j!"(B 16.1266 +``\texttt{=}'' 16.1267 +$B5-9f$N(B\emph{$B1&JU(B}$B$K5-=R$5$l$?%G%#%l%/%H%j3,AX2<$G%j%]%8%H%j$rC5$7!"(B 16.1268 +``\texttt{=}'' $B5-9f$N(B\emph{$B:8JU(B}$B$N%F%-%9%H$K9gCW$9$kItJ,$r!"(B 16.1269 +$B%&%'%V%$%s%?%U%'!<%9$G$N0lMwI=<($G<B:]$K8x3+$5$l$kL>A0$+$i=|30$7$^$9!#(B 16.1270 +$B=|30=hM}$N8e$K;D$C$?%Q%9MWAG$O!"(B``$B2>A[%Q%9(B''$B$H8F$P$l$^$9!#(B 16.1271 + 16.1272 +$BNc$H$7$F(B 16.1273 +\dirname{/my/root/this/repo} $B$K%j%]%8%H%j$,$"$k$H$7$?>l9g!"(B 16.1274 +CGI $B%9%/%j%W%H$OKAF,$N(B 16.1275 +\dirname{/my/root} $BItJ,$rL>A0$+$i=|30$7!"(B 16.1276 +$B2>A[%Q%9$H$7$F(B \dirname{this/repo} $B$r;}$D%j%]%8%H%j$H$7$F8x3+$7$^$9!#(B 16.1277 +CGI $B%9%/%j%W%H$N4pDl(B URL $B$r(B 16.1278 +\url{http://myhostname/~myuser/hgwebdir.cgi} $B$H$9$k$H!"(B 16.1279 +$B$3$N%j%]%8%H%j$N40A4$J(B URL $B$O!"(B 16.1280 +\url{http://myhostname/~myuser/hgwebdir.cgi/this/repo} $B$H$J$j$^$9!#(B 16.1281 + 16.1282 +$B$3$N@_Dj5-=RNc$G$N:8JU$r(B \dirname{/my/root} $B$+$i(B 16.1283 +\dirname{/my} $B$KJQ99$7$?>l9g!"(B 16.1284 +\sfilename{hgwebdir.cgi} $B$O%j%]%8%H%jL>$+$i(B 16.1285 +\dirname{/my} $B$N$_$r#z#yJb30$9$k$N$G!"(B 16.1286 +$B2>A[%Q%9$O(B \dirname{this/repo} $B$G$O$J$/(B 16.1287 +\dirname{root/this/repo} $B$H$J$j$^$9!#(B 16.1288 + 16.1289 +\sfilename{hgwebdir.cgi} $B$O!"(B 16.1290 +$B@_Dj%U%!%$%kCf$N(B \texttt{collections} 16.1291 +$B%;%/%7%g%s$GNs5s$5$l$?8D!9$N%G%#%l%/%H%j$KBP$7$F!"(B 16.1292 +$B:F5"E*$K%j%]%8%H%j$rC5$7$^$9$,!"(B 16.1293 +$B8+$D$+$C$?%j%]%8%H%j$+$i99$K2<$X$N:F5"E*C5:w$O(B\texttt{$B9T$$$^$;$s(B}$B!#(B 16.1294 + 16.1295 +\texttt{collections} $B$N5!9=$O!"(B 16.1296 +$BB?$/$N%j%]%8%H%j$r(B``fire and forget''$B:nK!$G8x3+$9$k$N$KE,$7$F$$$^$9!#(B 16.1297 +CGI $B$d@_Dj%U%!%$%k$N5-=R$O0lEY$G;vB-$j$^$9!#(B 16.1298 +$B@_Dj$,:Q$s$@$J$i!"(B 16.1299 +\sfilename{hgwebdir.cgi} 16.1300 +$B$KC5:w$r;X<($7$?%G%#%l%/%H%j3,AXG[2<$H$N4V$G%j%]%8%H%j$N0\F0$r9T$&$@$1$G!"(B 16.1301 +$B%j%]%8%H%j$N8x3+!&Hs8x3+$rG$0U$N;~E@$G9T$&$3$H$,$G$-$^$9!#(B 16.1302 + 16.1303 +\subsubsection{Explicitly specifying which repositories to publish} 16.1304 + 16.1305 +\sfilename{hgwebdir.cgi} $B%9%/%j%W%H$O(B 16.1306 +\texttt{collections} $B$K$h$k8x3+$N;EAH$_$K2C$($F!"(B 16.1307 +$BFCDj$N0lMw;XDj$K$h$k%j%]%8%H%j8x3+$r$9$k$3$H$b$G$-$^$9!#(B 16.1308 +$B$3$NJ}K!$G$N8x3+$r$9$k$K$O!"(B 16.1309 +$B0J2<$N$h$&$J7A<0$NFbMF$r;}$D(B 16.1310 +\texttt{paths} $B%;%/%7%g%s$r5-=R$9$kI,MW$,$"$j$^$9!#(B 16.1311 + 16.1312 +\begin{codesample2} 16.1313 + [paths] 16.1314 + repo1 = /my/path/to/some/repo 16.1315 + repo2 = /some/path/to/another 16.1316 +\end{codesample2} 16.1317 + 16.1318 +$B>e5-$NNc$G$O!"8D!9$NDj5A$N:8JU$,2>A[%Q%9!J(BURL $BCf$K8=$l$k%Q%9MWAG!K!"(B 16.1319 +$B1&JU$,%j%]%8%H%j$X$N%Q%9$H$J$j$^$9!#(B 16.1320 +$B2>A[%Q%9$N;XDj$H!"(B 16.1321 +$B%U%!%$%k%7%9%F%`>e$N%j%]%8%H%j0LCV$K$O!"(B 16.1322 +$B2?$N4XO"@-$bL5$$E@$KCm0U$7$F$/$@$5$$!#(B 16.1323 + 16.1324 +$BC10l$N@_Dj%U%!%$%kCf$G(B 16.1325 +\texttt{collections} $B$H(B 16.1326 +\texttt{paths} $B$NN>J}$rF1;~$K;HMQ$9$k$3$H$b2DG=$G$9!#(B 16.1327 + 16.1328 +\begin{note} 16.1329 + $BF10l$N2>A[%Q%9$KJ#?t$N%j%]%8%H%j$,4XO"IU$1$i$l$F$$$k>l9g!"(B 16.1330 + \sfilename{hgwebdir.cgi} $B$O%(%i!<$rDLCN$7$^$;$s!#(B 16.1331 + $B$=$NBe$o$j$K!"(B 16.1332 + \sfilename{hgwebdir.cgi} $B$N?6$kIq$$$OM=A[$G$-$J$$$b$N$H$J$j$^$9!#(B 16.1333 +\end{note} 16.1334 + 16.1335 +\subsection{Downloading source archives} 16.1336 + 16.1337 +Mercurial $B$N%&%'%V%$%s%?%U%'!<%97PM3$G!"(B 16.1338 +$BG$0U$N%j%S%8%g%s$N%"!<%+%$%V$r%@%&%s%m!<%I$9$k$3$H$,2DG=$G$9!#(B 16.1339 +$B$3$N%"!<%+%$%V$K$O!"(B 16.1340 +$BEv3:%j%S%8%g%s$K$*$1$k:n6HNN0h%G%#%l%/%H%j$N%9%J%C%W%7%g%C%H$,3JG<$5$l$^$9$,!"(B 16.1341 +$B%j%]%8%H%j%G!<%?ItJ,$O4^$^$l$^$;$s!#(B 16.1342 + 16.1343 +$B$3$N5!G=$O4{Dj>uBV$G$OL58z2=$5$l$F$$$^$9!#(B 16.1344 +$B$3$N5!G=$rM-8z2=$9$k$K$O!"(B 16.1345 +\rcitem{web}{allow\_archive} $B9`L\$r(B 16.1346 +\hgrc $B%U%!%$%k$N(B \rcsection{web} $B%;%/%7%g%s$KDI2C$7$F$/$@$5$$(B\footnote{$BLuCm(B: 16.1347 +$B$3$N$3$H$+$i!"(B 16.1348 +$B%"!<%+%$%V%@%&%s%m!<%I$NM-8z2=!&L58z2=@_Dj$,!"(B 16.1349 +\sfilename{hgwebdir.cgi} $BC10L$G$O$J$/!"(B 16.1350 +$B%j%]%8%H%jC10L$G$N@_Dj$G$"$k$3$H$,$o$+$j$^$9!#(B}$B!#(B 16.1351 + 16.1352 +\subsection{Web configuration options} 16.1353 + 16.1354 +Mercurial $B$N%&%'%V%$%s%?%U%'!<%9(B 16.1355 +$B!J(B\hgcmd{serve} $B%3%^%s%I$*$h$S(B 16.1356 +\sfilename{hgweb.cgi} $B$J$$$7(B \sfilename{hgwebdir.cgi} $B%9%/%j%W%H!K(B 16.1357 +$B$K$OJQ992DG=$J@_Dj9`L\$,B??t$"$j$^$9!#(B 16.1358 +$B$3$l$i$N@_Dj9`L\$O(B 16.1359 +\rcsection{web} $B%;%/%7%g%s$KB0$7$F$$$^$9!#(B 16.1360 + 16.1361 +\begin{description} 16.1362 + 16.1363 +\item[\rcitem{web}{allow\_archive}] 16.1364 + Mercurial $B$N%"!<%+%$%V%@%&%s%m!<%I5!G=$rM-8z2=$9$k$+H]$+$r;XDj!#(B 16.1365 + $B$3$N5!G=$rM-8z2=$7$?>l9g%&%'%V%$%s%?%U%'!<%9$NMxMQ<T$O!"(B 16.1366 + $B%j%]%8%H%jCf$N;2>H2DG=$JG$0U$N%j%S%8%g%s$N%"!<%+%$%V$r%@%&%s%m!<%I$G$-$^$9!#(B 16.1367 + $B$3$N5!G=$rM-8z2=$9$k$K$O!"(B 16.1368 + $B0J2<$KNs5s$5$l$k%-!<%o!<%I$NJB$S$r(B 16.1369 + \rcitem{web}{allow\_archive} $B9`L\$K;XDj$9$kI,MW$,$"$j$^$9!#(B 16.1370 + 16.1371 + \begin{description} 16.1372 + \item[\texttt{bz2}] \texttt{bzip2} $B05=L$5$l$?(B \command{tar} $B%"!<%+%$%V7A<0!#(B 16.1373 + $B$3$N7A<0$O:G$b9b$$05=LN($rF@$i$l$^$9$,!"(B 16.1374 + $B%5!<%PB&$N(B CPU $B$r:G$b9s;H$7$^$9!#(B 16.1375 + 16.1376 + \item[\texttt{gz}] \texttt{gzip} $B05=L$5$l$?(B \command{tar} $B%"!<%+%$%V7A<0!#(B 16.1377 + 16.1378 + \item[\texttt{zip}] LZW $B05=L$5$l$?(B \command{zip} $B%"!<%+%$%V7A<0!#(B 16.1379 + $B$3$N7A<0$O05=LN($,:G$bNt$j$^$9$,!"(BWindows $B4D6-$G$O9-$/;HMQ$5$l$F$$$^$9!#(B 16.1380 + 16.1381 + \end{description} 16.1382 + 16.1383 + $BCM$r;XDj$7$J$+$C$?$j!"(B 16.1384 + \rcitem{web}{allow\_archive} $B9`L\$=$N$b$N$r;XDj$7$J$+$C$?>l9g!"(B 16.1385 + $B%"!<%+%$%V%@%&%s%m!<%I5!G=$OL58z2=$5$l$^$9!#(B 16.1386 + $BMxMQ2DG=$JA4$F$N%"!<%+%$%V7A<0$rM-8z2=$9$k5-=RNc$r0J2<$K<($7$^$9!#(B 16.1387 + 16.1388 + \begin{codesample4} 16.1389 + [web] 16.1390 + allow_archive = bz2 gz zip 16.1391 + \end{codesample4} 16.1392 + 16.1393 +\item[\rcitem{web}{allowpull}] 16.1394 + $B%&%'%V%$%s%?%U%'!<%97PM3$G$N(B HTTP $B1[$7$N(B 16.1395 + \hgcmd{pull} $B$*$h$S(B \hgcmd{clone} $B$r5v2D$9$k$+H]$+$r;XDj$9$k??56CM!#(B 16.1396 + \texttt{no} $B$J$$$7(B \texttt{false} $B$,;XDj$5$l$?>l9g!"(B 16.1397 + $B%&%'%V%$%s%?%U%'!<%9$N(B``$B?M4V8~$1(B''$BItJ,$N$_$,M-8z2=$5$l$^$9!#(B 16.1398 + 16.1399 +\item[\rcitem{web}{contact}] 16.1400 + $B%j%]%8%H%j$N4IM}$r9T$&?MJ*!&AH?%$rFCDj$9$k$?$a$NG$0U$N(B 16.1401 + $B!JC"$76KNO4J7i$J!KJ8;zNs!#(B 16.1402 + $BDL>o$3$NCM$O!"4IM}<T$J$$$7%a!<%j%s%0%j%9%H$NL>A0$HEE;R%a!<%k%"%I%l%9$G$9!#(B 16.1403 + $BB?$/$N>l9g!"(B 16.1404 + $B$3$N>pJs$O%j%]%8%H%jKh$N(B \sfilename{.hg/hgrc} $B%U%!%$%k$K5-=R$7$^$9$,!"(B 16.1405 + $BA4$F$N%j%]%8%H%j$,F10l$NJ]<iC4Ev$K$h$jJ]<i$5$l$F$$$k>l9g!"(B 16.1406 + $BBg0hE*$J(B \hgrc $B%U%!%$%k$K5-=R$9$k$N$bNI$$$G$7$g$&!#(B 16.1407 + 16.1408 +\item[\rcitem{web}{maxchanges}] 16.1409 + $B%Z!<%8Kh$KI=<($5$l$k%A%'%s%8%;%C%H$N:GBg?t!J4{DjCM!K$rI=$9?tCM!#(B 16.1410 + 16.1411 +\item[\rcitem{web}{maxfiles}] 16.1412 + $B%Z!<%8Kh$KI=<($5$l$kJQ99%U%!%$%k$N:GBg?t!J4{DjCM!K$rI=$9?tCM!#(B 16.1413 + 16.1414 +\item[\rcitem{web}{stripes}] 16.1415 + $B%F!<%V%kI=<($K$*$1$k2DFI@-8~>e$N$?$a$K!"(B 16.1416 + $B3F9T$N?'$r8_$$0c$$$K(B``$B<JLOMM(B''$B$H$9$k:]$K!"(B 16.1417 + $B2?9TKh$K?'$rJQ99$9$k$+$N?tCM!#(B 16.1418 + 16.1419 +\item[\rcitem{web}{style}] 16.1420 + Mercurial $B$,%&%'%V%$%s%?%U%'!<%9$rI=<($9$k:]$K;HMQ$9$k%F%s%W%l!<%H!#(B 16.1421 + Mercurial $B$O(B \texttt{default} $B$*$h$S(B 16.1422 + \texttt{gitweb} $B$N#2$D$N%&%'%V%$%s%?%U%'!<%9MQ%F%s%W%l!<%H$rF1:-$7$F$$$^$9(B 16.1423 + $B!J8e<T$NJ}$,8+1I$($,NI$$$G$9!K!#(B 16.1424 + $B<+A0$G%+%9%?%^%$%:$7$?%F%s%W%l!<%H$r;XDj$9$k$3$H$b$G$-$^$9!#(B 16.1425 + $B>\:Y$O(B\ref{chap:template}~$B@a$r;2>H$7$F$/$@$5$$!#(B 16.1426 + \texttt{gitweb} $B%9%?%$%k$NMxMQJ}K!$r0J2<$K<($7$^$9!#(B 16.1427 + 16.1428 + \begin{codesample4} 16.1429 + [web] 16.1430 + style = gitweb 16.1431 + \end{codesample4} 16.1432 + 16.1433 +\item[\rcitem{web}{templates}] 16.1434 + $B%F%s%W%l!<%H%U%!%$%k$N;2>H@h%G%#%l%/%H%j$r<($9%Q%9!#(B 16.1435 + Mercurial $B$N4{DjCM$G$O!"%$%s%9%H!<%k@h%G%#%l%/%H%j$r;2>H$7$^$9!#(B 16.1436 + 16.1437 +\end{description} 16.1438 + 16.1439 +\sfilename{hgwebdir.cgi} $B$r;HMQ$9$k>l9g!"(B 16.1440 +$B4v$D$+$N@_Dj9`L\$K4X$7$F$OMxJX@->e!"(B 16.1441 +\hgrc $B%U%!%$%k$K5-=R$9$kBe$o$j$K!"(B 16.1442 +\sfilename{hgweb.config} $B%U%!%$%k$N(B 16.1443 +\rcsection{web} $B%;%/%7%g%s$K5-=R$9$k$3$H$,$G$-$^$9!#(B 16.1444 +$B5-=R2DG=$J@_Dj9`L\$O!"(B 16.1445 +\rcitem{web}{motd} $B$*$h$S(B \rcitem{web}{style} $B$G$9!#(B 16.1446 + 16.1447 +\subsubsection{Options specific to an individual repository} 16.1448 + 16.1449 +$B%f!<%6Kh$J$$$7Bg0hE*$J(B \hgrc $B%U%!%$%k$G$O$J$/!"(B 16.1450 +$B%j%]%8%H%jKh$N(B \sfilename{.hg/hgrc} $B$G5-=R$9$Y$-(B 16.1451 +\rcsection{web} $B%;%/%7%g%s$N@_Dj9`L\$,4v$D$+$"$j$^$9!#(B 16.1452 + 16.1453 +\begin{description} 16.1454 +\item[\rcitem{web}{description}] 16.1455 + $B%j%]%8%H%j$NFbMF$J$$$7L\E*$r5-=R$7$?G$0U$N(B 16.1456 + $B!JC"$76KNO4J7i$J!KJ8;zNs!#(B 16.1457 + 16.1458 +\item[\rcitem{web}{name}] 16.1459 + $B%&%'%V%$%s%?%U%'!<%9$K$*$1$k%j%]%8%H%j;2>HL>$r<($9J8;zNs!#(B 16.1460 + $B$3$NCM$O!"(B 16.1461 + $B%j%]%8%H%j$N%Q%9(B\footnote{$BLuCm(B: $B2>A[%Q%9!)(B 16.1462 + }$B$NKvHxMWAG$rMQ$$$?4{DjL>$r>e=q$-$7$^$9!#(B 16.1463 + 16.1464 +\end{description} 16.1465 + 16.1466 +\subsubsection{Options specific to the \hgcmd{serve} command} 16.1467 + 16.1468 +\hgrc $B%U%!%$%k$N(B 16.1469 +\rcsection{web} $B%;%/%7%g%s$K$*$1$k@_Dj9`L\$N4v$D$+$O!"(B 16.1470 +\hgcmd{serve} $B%3%^%s%I@lMQ$N9`L\$G$9!#(B 16.1471 + 16.1472 +\begin{description} 16.1473 + 16.1474 +\item[\rcitem{web}{accesslog}] 16.1475 + $B%"%/%;%9%m%0$r=q$-=P$9%U%!%$%k$N%Q%9!#(B 16.1476 + \hgcmd{serve} $B%3%^%s%I$N4pDlF0:n$G$N%"%/%;%9%m%0=PNO@h$O!"(B 16.1477 + $B%U%!%$%k$G$O$J$/I8=`=PNO$G$9!#(B 16.1478 + $B%m%0MWAG$O!"(B 16.1479 + $BB?$/$N%&%'%V%5!<%P$K$*$$$FMxMQ$5$l$kI8=`E*$J(B``$BJ#9g(B''$B!J(Bcombined$B!K(B 16.1480 + $B%U%!%$%k7A<0$G=PNO$5$l$^$9!#(B 16.1481 + 16.1482 +\item[\rcitem{web}{address}] 16.1483 + $B30It$+$i$N@\B3$r<u$1IU$1$k%"%I%l%9$r;XDj$9$kJ8;zNs!#(B 16.1484 + $B4pDlF0:n$G$O!"(B\hgcmd{serve} $B%3%^%s%I$OA4$F$N%"%I%l%9$G@\B3$r<u$1IU$1$^$9!#(B 16.1485 + 16.1486 +\item[\rcitem{web}{errorlog}] 16.1487 + $B%(%i!<%m%0$r=q$-=P$9%U%!%$%k$N%Q%9!#(B 16.1488 + \hgcmd{serve} $B%3%^%s%I$N4pDlF0:n$G$N%(%i!<%m%0=PNO@h$O!"(B 16.1489 + $B%U%!%$%k$G$O$J$/I8=`%(%i!<=PNO$G$9!#(B 16.1490 + 16.1491 +\item[\rcitem{web}{ipv6}] 16.1492 + IPv6 $B%W%m%H%3%kMxMQ$NM-L5$r;XDj$9$k??56CM!#(B 16.1493 + $B4pDlF0:n$G$O(B IPv6 $B$O%5%]!<%H$5$l$^$;$s!#(B 16.1494 + 16.1495 +\item[\rcitem{web}{port}] 16.1496 + \hgcmd{serve} $B%3%^%s%I$,@\B3$r<u$1IU$1$k(B TCP $B%]!<%H$NHV9f$r;XDj$9$k?tCM!#(B 16.1497 + $B4pDlF0:n$G$O!"(B8000 $BHV%]!<%H$,;HMQ$5$l$^$9!#(B 16.1498 + 16.1499 +\end{description} 16.1500 + 16.1501 +\subsubsection{Choosing the right \hgrc\ file to add \rcsection{web} 16.1502 + items to} 16.1503 + 16.1504 +Apache $B$d(B \texttt{lighttpd} $B$N$h$&$J%&%'%V%5!<%P$O!"(B 16.1505 +$B%j%]%8%H%j=jM-<T$H$O0[$J$k%f!<%68"8B$G2TF0$9$k2DG=@-$,$"$k!"(B 16.1506 +$B$H$$$&E@$O=EMW$G$9$N$GK:$l$J$$$h$&$K$7$F$/$@$5$$!#(B 16.1507 +$B%&%'%V%5!<%P$K$h$C$F5/F0$5$l$k(B 16.1508 +\sfilename{hgweb.cgi} $B$N$h$&$J(B 16.1509 +CGI $B%9%/%j%W%H$ODL>o!"(B 16.1510 +$B%&%'%V%5!<%P$HF10l$N%f!<%68"8B$G2TF0$7$^$9!#(B 16.1511 + 16.1512 +$B8D?M$N(B \hgrc $B%U%!%$%k$K(B 16.1513 +\rcsection{web} $B%;%/%7%g%s$r5-=R$7$F$b!"(B 16.1514 +CGI $B%9%/%j%W%H$O$=$N@_Dj$rFI$_9~$_$^$;$s!#(B 16.1515 +$B8D?M$N(B \hgrc $B%U%!%$%k$K5-=R$7$?@_Dj$O!"(B 16.1516 +$BEv3:%f!<%6<+?H$G(B \hgcmd{serve} 16.1517 +$B%3%^%s%I$r<B9T$7$?>l9g$K$N$_8zNO$rH/4x$7$^$9!#(B 16.1518 +CGI $B%9%/%j%W%H$N5sF0$K=jK>$N@_Dj$rH?1G$9$k$K$O!"(B 16.1519 +$B%&%'%V%5!<%P$,2TF0$5$l$k:]$N%f!<%6$N%[!<%`%G%#%l%/%H%j$K(B 16.1520 +\hgrc $B%U%!%$%k$r:n@.$7$F=jK>$N@_Dj$r5-=R$9$k$+!"(B 16.1521 +$B$"$k$$$O%7%9%F%`%o%$%I$J(B \hgrc $B%U%!%$%k$K=jK>$N@_Dj$rDI2C$7$F$/$@$5$$!#(B 16.1522 + 16.1523 + 16.1524 +%%% Local Variables: 16.1525 +%%% mode: latex 16.1526 +%%% TeX-master: "00book" 16.1527 +%%% End:
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/ja/concepts.tex Fri Aug 14 12:10:47 2009 -0700 17.3 @@ -0,0 +1,764 @@ 17.4 +\chapter{Behind the scenes} 17.5 +\label{chap:concepts} 17.6 + 17.7 +$BB?$/$N9=@.4IM}%7%9%F%`$H0[$J$j!"(B 17.8 +Mercurial $B$,4p$K$7$F$$$k35G0$OHs>o$KC1=c$J$N$G!"(B 17.9 +Mercurial $B$N%W%m%0%i%`$,<B:]$K$I$N$h$&$KF0:n$9$k$N$+$rM}2r$9$k$N$O4JC1$G$9!#(B 17.10 +$B$=$N$h$&$JCN<1$OI,MWL5$$$+$b$7$l$^$;$s$,!"(B 17.11 +$BI.<T$OFb>p$K4X$9$k(B``$B35G0M}2r(B''$B$,M-MQ$G$"$k$H9M$($F$$$^$9!#(B 17.12 + 17.13 +$BI.<T<+?H$O!"Fb>p$rM}2r$9$k$3$H$G!"(B 17.14 +Mercurial $B$,(B\emph{$B0BA4@-(B}$B$H(B\emph{$B8zN((B}$B$KN10U$7$F@_7W$5$l$F$$$k!"(B 17.15 +$B$H$$$&3N?.$rF@$k$3$H$,$G$-$^$7$?!#(B 17.16 +$B$^$?!"(B 17.17 +$B9=@.4IM}A`:n$r9T$C$?:]$K%=%U%H%&%'%"$,$I$N$h$&$K5!G=$9$k$N$+$r!"(B 17.18 +$BMF0W$K3P$($F$*$1$k$N$G$"$l$P!"(B 17.19 +$B9=@.4IM}%D!<%k$N?6$kIq$$$K6C$+$5$l$k5!2q$,8:$k!"(B 17.20 +$B$H$$$&E@$bHs>o$K=EMW$G$9!#(B 17.21 + 17.22 +$B$3$N>O$G$O!"(B 17.23 +$B:G=i$K(B 17.24 +Mercurial $B$N@_7W$K$*$1$kCf3KE*$J35G0$K$D$$$F@bL@$7$?>e$G!"(B 17.25 +$B<BAu$K$*$1$k6=L#?<$$E@$K4X$9$k>\:Y$r4v$D$+<h$j>e$2$h$&$H;W$$$^$9!#(B 17.26 + 17.27 +\section{Mercurial's historical record} 17.28 + 17.29 +\subsection{Tracking the history of a single file} 17.30 + 17.31 +$B%U%!%$%k$NJQ99$rDI@W$9$k>l9g!"(B 17.32 +Mercurial $B$O%U%!%$%k$NMzNr$r(B 17.33 +\emph{filelog} $B$H8F$P$l$k%a%?%G!<%?%*%V%8%'%/%H7A<0$GJ]B8$7$^$9!#(B 17.34 +filelog $B$K5-O?$5$l$k8D!9$NMWAG$O!"(B 17.35 +$BDI@WBP>]%U%!%$%k$N!"(B 17.36 +$B$H$"$k%j%S%8%g%s$r:F8=$9$k$N$K==J,$J>pJs$rJ];}$7$F$$$^$9!#(B 17.37 +filelog $B$O(B 17.38 +\sdirname{.hg/store/data} $B%G%#%l%/%H%jG[2<$K%U%!%$%k$H$7$FJ]B8$5$l$F$*$j!"(B 17.39 +$BMzNr>pJs$H!"(B 17.40 +Mercurial $B$N%j%S%8%g%s8!:w$rJd=u$9$k%$%s%G%C%/%9$N!"(B 17.41 +$B#2<oN`$N>pJs$rJ];}$7$F$$$^$9!#(B 17.42 + 17.43 +$B%5%$%:$,Bg$-$+$C$?$jJQ99MzNr$NB?$$%U%!%$%k$N>l9g!"(B 17.44 +filelog $B$rMzNr>pJs!J3HD%;R(B ``\texttt{.d}''$B!K(B 17.45 +$B$H%$%s%G%C%/%9!J3HD%;R(B ``\texttt{.i}''$B!K$N#2$D$KJ,N%$7$FJ]B8$5$l$^$9!#(B 17.46 +$BJQ99MzNr$,$=$l$[$IL5$$>.$5$J%U%!%$%k$N>l9g!"(B 17.47 +$BMzNr>pJs$H%$%s%G%C%/%9$O(B 17.48 +``\texttt{.i}'' $B3HD%;R$r;}$DC10l$N%U%!%$%k$KJ]B8$5$l$^$9!#(B 17.49 +$B:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$H!"(B 17.50 +$B$=$NJQ99MzNr$rDI@W$9$k$?$a$N%j%]%8%H%jCf$N(B filelog $B%U%!%$%k$NBP1~$r!"(B 17.51 +$B?^(B~\ref{fig:concepts:filelog}$B$K<($7$^$9!#(B 17.52 + 17.53 +\begin{figure}[ht] 17.54 + \centering 17.55 + \grafix{filelog} 17.56 + \caption{Relationships between files in working directory and 17.57 + filelogs in repository} 17.58 + \label{fig:concepts:filelog} 17.59 +\end{figure} 17.60 + 17.61 +\subsection{Managing tracked files} 17.62 + 17.63 + 17.64 +$BDI@WBP>]%U%!%$%k$N>pJs$r$^$H$a$k$?$a$K!"(B 17.65 +Mercurial $B$O(B \emph{manifest} $B$H8F$P$l$k9=B$$r;HMQ$7$F$$$^$9!#(B 17.66 +manifest $B$K5-O?$5$l$k8D!9$NMWAG$O!"(B 17.67 +$BEv3:%A%'%s%8%;%C%H$K$*$1$k%U%!%$%k$N0lMw$d!"(B 17.68 +$B3F%U%!%$%k$N%j%S%8%g%s!"(B 17.69 +$B4v$D$+$N%U%!%$%k$N%a%?%G!<%?$H$$$C$?!"(B 17.70 +$B8D!9$N%A%'%s%8%;%C%H$4$H$N%U%!%$%k$K4X$9$k>pJs$rJ];}$7$F$$$^$9!#(B 17.71 + 17.72 +\subsection{Recording changeset information} 17.73 + 17.74 +\emph{changelog} $B$O!"(B 17.75 +$B%A%'%s%8%;%C%H$N%3%_%C%H<g$d!"(B 17.76 +$B%3%_%C%H;~$N%m%0%a%C%;!<%8!"(B 17.77 +$B$=$NB>%A%'%s%8%;%C%H$K4X$9$k4v$D$+$N>pJs$d!"(B 17.78 +manifest $B$N%j%S%8%g%s$H$$$C$?!"(B 17.79 +$B8D!9$N%A%'%s%8%;%C%H$K4X$9$k>pJs$rJ];}$7$F$$$^$9!#(B 17.80 + 17.81 +\subsection{Relationships between revisions} 17.82 + 17.83 +changelog$B!"(Bmanifest $B$J$$$7(B filelog $B$K$*$1$k8D!9$N%j%S%8%g%s$O!"(B 17.84 +$BD>@\$N?F%j%S%8%g%s(B 17.85 +$B!J%^!<%8$r9T$C$?%j%S%8%g%s$N>l9g$O!"(B 17.86 +$B%^!<%8BP>]$H$J$C$?#2$D$N?F%j%S%8%g%s!K(B 17.87 +$B$X$N;2>H$rJ];}$7$F$$$^$9!#(B 17.88 +$B:#=R$Y$?$h$&$K!"(B 17.89 +$B3F9=B$$K(B\emph{$B$^$?$,$C$?(B}$B4XO"@-$r$b$A!"(B 17.90 +$B$=$l$i$OI,A3E*$K3,AX9=B$$r;}$C$F$$$^$9!#(B 17.91 + 17.92 +$B%j%]%8%H%jCf$NA4$F$N%A%'%s%8%;%C%H$K4X$7$F!"(B 17.93 +changelog $B$K$O87L)$K#1$D$N%j%S%8%g%s$,J]B8$5$l$^$9!#(B 17.94 +changelog $B$K$*$1$k3F%j%S%8%g%s$O!"(B 17.95 +manifest $BCf$N%j%S%8%g%s$X$N;2>H$rJ];}$7$F$$$^$9!#(B 17.96 +manifest $BCf$N3F%j%S%8%g%s$O!"(B 17.97 +$B%A%'%s%8%;%C%H$,@8@.$5$l$?:]$N3F%U%!%$%k$N%j%S%8%g%s$KBP1~$9$k(B 17.98 +filelog $BCf$N%j%S%8%g%s$X$N;2>H$rJ];}$7$F$$$^$9!#(B 17.99 +$B$3$N4XO"@-$r?^(B~\ref{fig:concepts:metadata}$B$K<($7$^$9!#(B 17.100 + 17.101 +\begin{figure}[ht] 17.102 + \centering 17.103 + \grafix{metadata} 17.104 + \caption{Metadata relationships} 17.105 + \label{fig:concepts:metadata} 17.106 +\end{figure} 17.107 + 17.108 +$B?^$+$i$b$o$+$k$h$&$K!"(B 17.109 +changelog$B!"(Bmanifest $B$*$h$S(B 17.110 +filelog $B$,J];}$9$k%j%S%8%g%s>pJs4V$N4X78$O!"(B 17.111 +$BI,$:$7$b(B``$B#1BP#1(B''$B$H$$$&$o$1$G$O$"$j$^$;$s!#(B 17.112 +$B#2$D$N%A%'%s%8%;%C%H$N4V$G(B 17.113 +manifest $B$,JQ99$5$l$F$$$J$$>l9g!"(B 17.114 +$B$=$l$i$N%A%'%s%8%;%C%H$KBP1~$9$k(B changelog $BMWAG$O!"(B 17.115 +manifest $BCf$NF1$8%j%S%8%g%s$r;2>H$7$^$9!#(B 17.116 +$B#2$D$N%A%'%s%8%;%C%H$N4V$G(B 17.117 +Mercurial $B$,DI@W$9$k%U%!%$%k$,JQ99$5$l$F$$$J$$>l9g!"(B 17.118 +$B$=$l$i$N%A%'%s%8%;%C%H$KBP1~$9$k(B manifest $BMWAG$O!"(B 17.119 +filelog $BCf$NF1$8%j%S%8%g%s$r;2>H$7$^$9!#(B 17.120 + 17.121 +\section{Safe, efficient storage} 17.122 + 17.123 +changelog$B!"(Bmanifest $B$*$h$S(B filelog $B$O!"(B 17.124 +\emph{revlog} $B$H8F$P$l$kF1$89=B$$K$h$j9=@.$5$l$F$$$^$9!#(B 17.125 + 17.126 +\subsection{Efficient storage} 17.127 + 17.128 +revlog $B$O(B \emph{$B:9J,(B}$B<jK!$H$$$&;EAH$_$r;HMQ$7$F!"(B 17.129 +$B%j%S%8%g%s>pJs$r8zN(E*$K3JG<$7$F$$$^$9!#(B 17.130 +$B:9J,<jK!$G$O!"(B 17.131 +$B%U%!%$%k$N3F%j%S%8%g%s$4$H$K40A4$JJ#@=$rJ];}$9$kBe$o$j$K!"(B 17.132 +$B5l%j%S%8%g%s$+$i?7%j%S%8%g%s$X$NJQ7A$KI,MW$J>pJs$rJ];}$7$^$9!#(B 17.133 +$BB?$/$N%U%!%$%k$G$N%G!<%?3JG<$K$*$$$F!"(B 17.134 +$B:9J,<jK!$O0lHLE*$K40A4$JJ#@=$N>l9g$N?t%Q!<%;%s%HDxEY$N%5%$%:$K$J$j$^$9!#(B 17.135 + 17.136 +$B5l<0$N9=@.4IM}%7%9%F%`$G$O!"(B 17.137 +$B%F%-%9%H7A<0$N%U%!%$%k$G$7$+:9J,<jK!$,E,MQ$G$-$J$$$b$N$b$"$j$^$9!#(B 17.138 +$B$=$l$i$N%7%9%F%`$K$*$1$k%P%$%J%j%U%!%$%k$N3JG<$O!"(B 17.139 +$B40A4$J%9%J%C%W%7%g%C%H$+!"(B 17.140 +$B%F%-%9%HI=8=7A<0$X$NJQ49$K$h$C$F9T$o$l$^$9$,!"(B 17.141 +$B$3$l$i$O6&$KIT7P:Q$J<jK!$G$9!#(B 17.142 +$BG$0U$N%P%$%J%j%G!<%?$r4^$`%U%!%$%k$G$"$C$F$b!"(B 17.143 +Mercurial $B$O:9J,$r8zN(E*$K07$&$3$H$,$G$-$^$9$N$G!"(B 17.144 +$B%F%-%9%H$rFCJL07$$$9$kI,MW$O$"$j$^$;$s(B\footnote{$BLuCm(B: 17.145 +<code>cvs add</code> $B$K$*$1$k(B 17.146 +<code>-kb</code> $B;XDj$N7gMn$K$h$k%U%!%$%kFbMF$NGKB;!"(B 17.147 +$B$H$$$C$??4G[$O$"$j$^$;$s!#(B 17.148 +$BL`$b!"(BMercurial $B$N4pDlF0:n$G$O!"(B 17.149 +$B%-!<%o!<%I$NCV49Ey$r9T$$$^$;$s$N$G!"(B 17.150 +$B$=$b$=$b?4G[$9$kI,MW$,L5$$$N$G$9$,!D!#(B}$B!#(B 17.151 + 17.152 +\subsection{Safe operation} 17.153 +\label{sec:concepts:txn} 17.154 + 17.155 +Mercurial $B$O(B revlog $B$NKvHx$K%G!<%?$r(B\emph{$BDI2C(B}$B$9$k$@$1$G!"(B 17.156 +$B=q$-9~$^$l$?8e$+$i%U%!%$%k$N0lIt$r2~JQ$9$k$h$&$J$3$H$O9T$$$^$;$s!#(B 17.157 +$B4{B8%G!<%?$N2~JQ$rI,MW$H$9$k;EAH$_$HHf3S$7$?>l9g!"(B 17.158 +$B$3$N<jK!$O7xO43n$D8zN(E*$G$9!#(B 17.159 + 17.160 +$B$=$l$K2C$($F!"(B 17.161 +Mercurial $B$OJ#?t$N%U%!%$%k$K$^$?$,$C$?A4$F$N=q$-9~$_$r!"(B 17.162 +$BC10l$N(B\emph{$B%H%i%s%6%/%7%g%s(B}$B$N0lIt$H$7$F07$$$^$9!#(B 17.163 +$B%H%i%s%6%/%7%g%s$O(B\emph{$BIT2DJ,(B}$B$J$b$N$H$7$F07$o$l$^$9$N$G!"(B 17.164 +$B%H%i%s%6%/%7%g%sA4BN$,@.8y$9$l$P7k2L$NA4$F$,MxMQ<T$K8+$($k$h$&$K$J$j$^$9$,!"(B 17.165 +$B%H%i%s%6%/%7%g%s$N0lIt$G$b<:GT$7$?>l9g$K$O!"(B 17.166 +$BA4$F$N=q$-9~$_A`:n$O<h$j>C$5$l$^$9!#(B 17.167 +$B0lJ}$O%G!<%?$NFI$_9~$_$r9T$$B>J}$O%G!<%?$N=q$-=P$7$r9T$&$h$&$J!"(B 17.168 +$B#2$D$N(B Mercurial $B%W%m%;%9$rF1;~$K<B9T$7$?>l9g$G$b!"(B 17.169 +$B$3$NIT2DJ,J]>Z$K$h$j!"(B 17.170 +$BFI$_9~$_$r:.Mp$5$;$k$h$&$JItJ,E*$J=q$-9~$_%G!<%?$r!"(B 17.171 +$B%G!<%?FI$_9~$_B&$N%W%m%;%9$,FI$_9~$`$3$H$O$"$j$^$;$s(B 17.172 +\footnote{$BLuCm(B: 17.173 +$B87L)$K$O$3$N5-=R$O@5$7$/$"$j$^$;$s!#(B 17.174 +$B>\:Y$O(B \ref{sec:hook:carepretxn}~$B@a$r;2>H$7$F$/$@$5$$!#(B}$B!#(B 17.175 + 17.176 +Mercurial $B$,%U%!%$%k$X$NDI2C$7$+9T$o$J$$$3$H$,!"(B 17.177 +$B%H%i%s%6%/%7%g%s$NIT2DJ,@-J]>Z$NDs6!$rMF0W$K$7$F$$$^$9!#(B 17.178 +$B%H%i%s%6%/%7%g%sJ]>Z$,MF0W$G$"$kDx!"(B 17.179 +$B$=$l$,@5$7$/5!G=$7$F$$$k$3$H$r3N?.$G$-$kH&$G$9!#(B 17.180 + 17.181 +\subsection{Fast retrieval} 17.182 + 17.183 +$B=i4|$N9=@.4IM}%7%9%F%`$,6&$K4Y$C$F$$$?(B\emph{$BHs8zN($JI|5l(B}$BLdBj$NMn$H$77j$r!"(B 17.184 +Mercurial $B$O>e<j$K2sHr$7$F$$$^$9!#(B 17.185 +$BKX$I$N9=@.4IM}%7%9%F%`$O!"(B 17.186 +``$B%9%J%C%W%7%g%C%H(B''$B$KBP$9$kJQ99$NDI2CE*$JO"B3$H$7$F!"(B 17.187 +$B%j%S%8%g%s$NFbMF$rJ];}$7$F$$$^$7$?!#(B 17.188 +$B$3$N<jK!$N>l9g!"(B 17.189 +$BFCDj$N%j%S%8%g%s$r:F9=C[$9$k$K$O!"(B 17.190 +$B:G=i$K%9%J%C%W%7%g%C%H$rFI$_9~$_!"(B 17.191 +$BB3$$$FBP>]%j%S%8%g%s$H$N4V$NA4$F$N:9J,%G!<%?$rFI$_9~$`I,MW$,$"$j$^$9!#(B 17.192 +$B%U%!%$%k$NMzNr$,@Q$_=E$J$k$[$I!"(B 17.193 +$B:9J,%G!<%?$rFI$_9~$^$J$1$l$P@.$i$J$$%j%S%8%g%s$,A}2C$7!"(B 17.194 +$BFCDj$N%j%S%8%g%s$N:F9=C[$K;~4V$,I,MW$H$J$j$^$9!#(B 17.195 + 17.196 +\begin{figure}[ht] 17.197 + \centering 17.198 + \grafix{snapshot} 17.199 + \caption{Snapshot of a revlog, with incremental deltas} 17.200 + \label{fig:concepts:snapshot} 17.201 +\end{figure} 17.202 + 17.203 +Mercurial $B$,$3$NLdBj$N2r7h$K;HMQ$7$F$$$k<jK!$O!"(B 17.204 +$B4JC1$J$b$N$G$9$,8z2LE*$G$9!#(B 17.205 +$BA02s$N%9%J%C%W%7%g%C%H:n@.;~E@$+$i!"(B 17.206 +$B8GDj$5$l$?ogCM$rD6$($F:9J,>pJs$,C_@Q$5$l$?:]$K$O!"(B 17.207 +$B:9J,>pJs$NC_@Q$G$O$J$/!"(B 17.208 +$B?7$?$J%9%J%C%W%7%g%C%H!JL^O@05=L$O9T$$$^$9!K$rJ]B8$9$k!"(B 17.209 +$B$H$$$&$b$N$G$9!#(B 17.210 +$B$3$N<jK!$O!"(B 17.211 +\emph{$BG$0U$N(B}$B%j%S%8%g%s$K$*$1$k%U%!%$%k$rAGAa$/:F9=C[$G$-$^$9!#(B 17.212 +$B$3$N<jK!$OHs>o$KM-8z$G$"$k$?$a!"(B 17.213 +$BB>$N4v$D$+$N9=@.4IM}%7%9%F%`$K$b<h$j9~$^$l$F$$$^$9!#(B 17.214 + 17.215 +$B?^(B~\ref{fig:concepts:snapshot}$B$N35MW$,<($9$h$&$K!"(B 17.216 +Mercurial $B$O!"(B 17.217 +revlog $B$N%$%s%G%C%/%9%U%!%$%k$K$*$1$k3FMWAG$K!"(B 17.218 +$BFCDj$N%j%S%8%g%s$N:F9=C[$N:]$KFI$_9~$_$,I,MW$H$5$l$k!"(B 17.219 +$B%G!<%?%U%!%$%kCf$NMWAG$NHO0O$r3JG<$7$^$9!#(B 17.220 + 17.221 +\subsubsection{Aside: the influence of video compression} 17.222 + 17.223 +$BF02h05=L$r=OCN$7$F$$$k$+!"(B 17.224 +$B%1!<%V%k$J$$$71R@1$K$h$k%G%8%?%k%F%l%SG[?.$r;kD0$7$?$3$H$,$"$k$J$i$P!"(B 17.225 +$B$?$$$F$$$NF02h05=L7A<0$K$*$$$F3FF02h%U%l!<%`$,!"(B 17.226 +$B@h9T$9$k%U%l!<%`$H$N:9J,$GJ];}$5$l$F$$$k$3$H$r$4B8CN$+$b$7$l$^$;$s!#(B 17.227 +$B2C$($F$=$l$i$N7A<0$G$O!"(B 17.228 +$B05=LN($r8~>e$5$;$k$?$a$K(B``$BHs2D5U(B''$B05=L<jK!$rMQ$$$F$$$^$9$N$G!"(B 17.229 +$B%U%l!<%`4V:9J,$N?t$K1~$8$F;k3PE*%(%i!<$,C_@Q$5$l$^$9!#(B 17.230 + 17.231 +$BF02hG[?.$N>l9g!"(B 17.232 +$B;~@^$N?.9f0[>o$K$h$k(B``$B7gMn(B''$B$,M-$jF@$^$9$7!"(B 17.233 +$B2D5U05=L2aDx$K$h$j@8$8$k8m:9$NC_@Q$r@)8B$9$kI,MW$b$"$k$?$a!"(B 17.234 +$BF02h05=LB&$G$ODj4|E*$K40A4$J%U%l!<%`(B 17.235 +$B!J(B``$B%-!<%U%l!<%`(B''$B$H8F$P$l$^$9!K$r05=L7A<0$NCf$KA^F~$7$^$9!#(B 17.236 +$B$3$l$OF02h?.9f$,CfCG$5$l$F$b!"(B 17.237 +$B<!$N%-!<%U%l!<%`$NE~Ce;~E@$+$i$N:F3+$,2DG=$G$"$k$3$H$r0UL#$7$^$9!#(B 17.238 +$BId9f2=%(%i!<$NC_@Q$b!"(B 17.239 +$B8D!9$N%-!<%U%l!<%`$G%/%j%"$5$l$^$9!#(B 17.240 + 17.241 +\subsection{Identification and strong integrity} 17.242 + 17.243 +$B:9J,$J$$$7%9%J%C%W%7%g%C%H>pJs$N%G!<%?$KBP$7$F!"(B 17.244 +revlog $BMWAG$O0E9f2=$KMQ$$$i$l$k%O%C%7%eCM$r7W;;$7$FJ];}$7$F$$$^$9!#(B 17.245 +$B$3$l$K$h$j!"(B 17.246 +$B%j%S%8%g%s$K4X$9$k>pJs$N56B$$r:$Fq$K$9$k$HF1;~$K!"(B 17.247 +$BITN8$NGKB;$N8!=P$,MF0W$K$J$j$^$9!#(B 17.248 + 17.249 +$B%O%C%7%eCM$N;;=P$O!"(B 17.250 +$BC1$J$kGKB;$N8!=P0J>e$N$b$N$r$b$?$i$7$^$9!#(B 17.251 +$B%O%C%7%eCM$O3F%j%S%8%g%s$N<1JL;R$H$7$F;HMQ$5$l$^$9!#(B 17.252 +Mercurial $B$N%(%s%I%f!<%6$H$7$FL\$K$9$k%A%'%s%8%;%C%H<1JL;R$N%O%C%7%eCM$O!"(B 17.253 +changelog $B$N%j%S%8%g%s$KM3Mh$9$kCM$G$9!#(B 17.254 +filelog $B$d(B manifest $B$G$b%O%C%7%eCM$r;HMQ$7$F$$$^$9$,!"(B 17.255 +Mercurial $B$G$O$3$l$i$OIqBfN"$N$_$G;HMQ$5$l$F$$$^$9!#(B 17.256 + 17.257 +$BFCDj%j%S%8%g%s$N%U%!%$%k$r:F9=C[$9$k>l9g$d!"(B 17.258 +$BB>$N%j%]%8%H%j$+$i%A%'%s%8%;%C%H$r<h$j9~$s$@>l9g!"(B 17.259 +Mercurial $B$O%O%C%7%eCM$,@5$7$$$3$H$r3NG'$7$^$9!#(B 17.260 +$B0l4S@-$KLdBj$,$"$k$3$H$,8!=P$5$l$?>l9g!"(B 17.261 +$B7Y9p$rH/$7$?>e$G!"(B 17.262 +$B?J9TCf$NA4$F$N=hM}$rDd;_$7$^$9!#(B 17.263 + 17.264 +Mercurial $B$,Dj4|E*$K:9$79~$s$G$$$k%9%J%C%W%7%g%C%H$O!"(B 17.265 +$BFCDj%j%S%8%g%s$N:F9=C[$N:]$N8zN($K2C$($F!"(B 17.266 +$BItJ,E*$J%G!<%?$NGKB;$KBP$9$k7xO4@-$r$b$?$i$7$F$^$9!#(B 17.267 +$B%O!<%I%&%'%"%(%i!<$d%7%9%F%`$N%P%0$K$h$C$F!"(B 17.268 +revlog $B$,ItJ,E*$KGKB;$7$?>l9g!"(B 17.269 +$BGKB;$rLH$l$?(B revlog $B$N%G!<%?$+$i!"(B 17.270 +$BGKB;$7$?It0L$NA08e6&$K!"(B 17.271 +$B0lIt!J$"$k$$$OKX$I$N!K%j%S%8%g%s$rI|5l$9$k$3$H$,2DG=$G$9!#(B 17.272 +$B:9J,$N$_$rJ];}$9$k%b%G%k$r:NMQ$9$k9=@.4IM}%7%9%F%`$G$O!"(B 17.273 +$B$3$N$h$&$J$3$H$O$G$-$^$;$s!#(B 17.274 + 17.275 +\section{Revision history, branching, and merging} 17.276 + 17.277 +$BA4$F$N(B Mercurial $B$N(B revlog $BMWAG$O!"(B 17.278 +$BDL>o$O(B\emph{$B?F(B}$B$H8@$o$l$kD>A0$N%j%S%8%g%s$N<1JL;R$rJ];}$7$F$$$^$9!#(B 17.279 +$B<B:]$K$O!"(B 17.280 +$B3F(B revlog $BMWAG$O#1$D$G$O$J$/#2$D$N?F$N>pJs$rJ];}$G$-$^$9!#(B 17.281 +Mercurial $B$O(B``$B6u<1JL;R(B''$B!J(Bnull ID$B!K$H8F$P$l$kFCJL$J%O%C%7%eCM$r;H$C$F!"(B 17.282 +``$B?FIT:_(B''$B$rI=8=$7$^$9(B\footnote{$BLuCm(B: 17.283 +$B$D$^$j!"B?$/$N(B revlog $BMWAG$O!"(B 17.284 +$B0lJ}$N?F%j%S%8%g%s$H$7$F6u(BID$B$rJ];}$7$F$$$^$9!#(B}$B!#(B 17.285 +$B$3$N%O%C%7%eCM$OC1=c$K(B0$B$,O"B3$7$?J8;zNs$G$9!#(B 17.286 + 17.287 +revlog $B$N35G0?^$r?^(B~\ref{fig:concepts:revlog}$B$K8+$k$3$H$,$G$-$^$9!#(B 17.288 +filelog $B$d(B manifest$B!"(Bchangelog $B$NA4$F$,F1$89=B$$r;}$C$F$*$j!"(B 17.289 +$B8D!9$NMWAG$,J];}$7$F$$$k!"(B 17.290 +$B:9J,$d%9%J%C%W%7%g%C%H$H$$$C$?%G!<%?$N<oJL$,0[$J$k$@$1$G$9!#(B 17.291 + 17.292 +revlog $B$K$*$1$k:G=i$N%j%S%8%g%s(B 17.293 +$B!J?^$K$*$1$kDl0LCV$N%j%S%8%g%s!K$O!"(B 17.294 +$B#2$D$N?F%j%S%8%g%s3JG<NN0h$NN>J}$K6u<1JL;R$rJ];}$7$F$$$^$9!#(B 17.295 +``$BDL>o$N(B''$B%j%S%8%g%s$G$O!"(B 17.296 +$BBh#1?F$N3JG<NN0h$K$O?F%j%S%8%g%s$N<1JL;R$,!"(B 17.297 +$BBh#2?F$N3JG<NN0h$K$O6u<1JL;R$,3JG<$5$l!"(B 17.298 +$B?F%j%S%8%g%s$,#1$D$7$+$J$$$3$H$rI=$7$^$9!#(B 17.299 +$B?F%j%S%8%g%s$N<1JL;R$H$7$FF1$8<1JL;R$r3JG<$9$k%j%S%8%g%sF1;N$O!"(B 17.300 +$B8_$$$K%V%i%s%A$H$J$j$^$9!#(B 17.301 +$B%V%i%s%A$r%^!<%8$7$?%j%S%8%g%s$O!"(B 17.302 +$BE}9g$5$l$?N>J}$N%j%S%8%g%s$N<1JL;R$r?F%j%S%8%g%s$N<1JL;R$H$7$F3JG<$7$^$9!#(B 17.303 + 17.304 +\begin{figure}[ht] 17.305 + \centering 17.306 + \grafix{revlog} 17.307 + \caption{} 17.308 + \label{fig:concepts:revlog} 17.309 +\end{figure} 17.310 + 17.311 +\section{The working directory} 17.312 + 17.313 +Mercurial $B$O!"(B 17.314 +$B%j%]%8%H%j$G9=@.4IM}$5$l$F$$$k%U%!%$%k$N!"(B 17.315 +$BFCDj$N%j%S%8%g%s$K$*$1$k%9%J%C%W%7%g%C%H$r:n6HNN0h%G%#%l%/%H%j$KJ];}$7$^$9!#(B 17.316 + 17.317 +$B:n6HNN0h%G%#%l%/%H%j$O!"(B 17.318 +$B$I$N%j%S%8%g%s$N%9%J%C%W%7%g%C%H$rJ];}$7$F$$$k$N$+$r(B``$BCN$C$F$$$^$9(B''$B!#(B 17.319 +$B:n6HNN0h%G%#%l%/%H%j$rFCDj$N%j%S%8%g%s$G99?7$7$h$&$H$7$?>l9g!"(B 17.320 +Mercurial $B$O(B (1) $BAj1~$7$$%j%S%8%g%s$N(B manifest $B$r;2>H$7!"(B 17.321 +(2) $BEv3:%j%S%8%g%s$N%3%_%C%H;~E@$G$N4IM}BP>]%U%!%$%k$rFCDj$7!"(B 17.322 +(3) $B:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$,J];}$9$Y$-FbMF$r7hDj$7$^$9!#(B 17.323 +$B$=$N>e$G!"(B 17.324 +$BEv3:%A%'%s%8%;%C%H$N%3%_%C%H;~E@$HF1$8FbMF$r;}$D$h$&$K!"(B 17.325 +$B:n6HNN0h%G%#%l%/%H%jCf$K3F%U%!%$%k$NJ#@=$r:F@8@.$7$^$9!#(B 17.326 + 17.327 +dirstate $B7A<0$K$O!"(B 17.328 +$B:n6HNN0h%G%#%l%/%H%j$,$I$N%A%'%s%8%;%C%H$G99?7$5$l$F$$$k$+$H$+!"(B 17.329 +$B:n6HNN0h$G(B Mercurial $B$K$h$j9=@.4IM}$5$l$F$$$k%U%!%$%k$N0lMw$J$I!"(B 17.330 +$B:n6HNN0h%G%#%l%/%H%j$K4X$9$k(B 17.331 +Mercurial $B$N4IM}>pJs$,3JG<$5$l$F$$$^$9!#(B 17.332 + 17.333 +$B8D!9$N%j%S%8%g%s$K4X$9$k(B revlog $BMWAG$O!"(B 17.334 +$B#2$D$N?F%j%S%8%g%s<1JL;R$r3JG<$9$kNN0h$r;}$C$F$$$^$9$N$G!"(B 17.335 +$BDL>o$N%j%S%8%g%s!J#1$D$N?F%j%S%8%g%s$@$1$r;2>H!K$b!"(B 17.336 +$B#2$D$N%j%S%8%g%s$r%^!<%8$9$k%j%S%8%g%s$bI=8=2DG=$G$9$,!"(B 17.337 +dirstate $B7A<0$b#2$D$N?F%j%S%8%g%s<1JL;R$r3JG<$9$kNN0h$r;}$C$F$$$^$9!#(B 17.338 +\hgcmd{update} $B%3%^%s%I$r<B9T$7$?:]$K$O!"(B 17.339 +$B;XDj$7$?%A%'%s%8%;%C%H$O(B``$BBh#1?F(B''$B!J(Bfirst parent$B!K$H$7$FJ];}$5$l!"(B 17.340 +$BBh#2?F$O6u<1JL;R$rJ];}$7$^$9!#(B 17.341 +$B%A%'%s%8%;%C%H$H$N(B \hgcmd{merge} $B$r9T$C$?:]$K$O!"(B 17.342 +dirstate $B7A<0$,J];}$9$kBh#1?F$OJQ2=$7$^$;$s$,!"(B 17.343 +$BBh#2?F$O(B \hgcmd{merge} $B%3%^%s%I$K;XDj$5$l$?%A%'%s%8%;%C%H$K@_Dj$5$l$^$9!#(B 17.344 +\hgcmd{parents} $B%3%^%s%I$K$h$j!"(B 17.345 +dirstate $B7A<0$,J];}$9$k?F%j%S%8%g%s$N<1JL;R$rI=<($G$-$^$9!#(B 17.346 + 17.347 +\subsection{What happens when you commit} 17.348 + 17.349 +dirstate $B7A<0$,?F%j%S%8%g%s>pJs$rJ];}$9$k$N$O!"(B 17.350 +$B2?$b3P$(=q$-$N$?$a$@$1$G$O$"$j$^$;$s!#(B 17.351 +Mercurial $B$O(B dirstate $B7A<0$N;}$D?F%j%S%8%g%s>pJs$r!"(B 17.352 +$B%3%_%C%H$N:]$N(B\emph{$B?75,%A%'%s%8%;%C%H$N?F%A%'%s%8%;%C%H(B}$B$H$7$F;HMQ$7$^$9!#(B 17.353 + 17.354 +\begin{figure}[ht] 17.355 + \centering 17.356 + \grafix{wdir} 17.357 + \caption{The working directory can have two parents} 17.358 + \label{fig:concepts:wdir} 17.359 +\end{figure} 17.360 + 17.361 +$B?^(B~\ref{fig:concepts:wdir}$B$O!"(B 17.362 +$B#1$D$N?F%A%'%s%8%;%C%H$N$_$r;}$D!"(B 17.363 +$BDL>o$N:n6HNN0h%G%#%l%/%H%j$rI=$7$F$$$^$9!#(B 17.364 +$B?^$K$*$1$k:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$O!"(B 17.365 +$B%j%]%8%H%j$K$*$1$k:G?7$G3n$D;R$r;}$?$J$$%A%'%s%8%;%C%H$G$9$N$G!"(B 17.366 +\emph{tip} $B$H8F$P$l$^$9!#(B 17.367 + 17.368 +\begin{figure}[ht] 17.369 + \centering 17.370 + \grafix{wdir-after-commit} 17.371 + \caption{The working directory gains new parents after a commit} 17.372 + \label{fig:concepts:wdir-after-commit} 17.373 +\end{figure} 17.374 + 17.375 +$B:n6HNN0h%G%#%l%/%H%j$=$N$b$N$r!"(B 17.376 +``$B%3%_%C%H$7$h$&$H$7$F$$$k%A%'%s%8%;%C%H(B'' 17.377 +$B$HB*$($k$H$o$+$j$d$9$$$G$7$g$&!#(B 17.378 +Mercurial $B$KBP$7$FDI2C!?:o=|!?2~L>$J$$$7J#@=$r;X<($7$?%U%!%$%k$O!"(B 17.379 +$B4{$K(B Mercurial $B$K$h$j9=@.4IM}$5$l$F$$$k%U%!%$%k$X$NJQ99$HF1MM$K!"(B 17.380 +$B$=$N%A%'%s%8%;%C%H$KH?1G$5$l$^$9!#(B 17.381 +$B$=$N?7$?$J%A%'%s%8%;%C%H$K$O!"(B 17.382 +$B:n6HNN0h%G%#%l%/%H%j$HF1$8?F%A%'%s%8%;%C%H$,@_Dj$5$l$^$9!#(B 17.383 + 17.384 +$B%3%_%C%H$,40N;$7$?$J$i!"(B 17.385 +Mercurial $B$d:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$N>pJs$r99?7$7$^$9!#(B 17.386 +$BBh#1?F$K$O%3%_%C%H$K$h$j?7$?$K@8@.$5$l$?%A%'%s%8%;%C%H$N<1JL;R$,@_Dj$5$l!"(B 17.387 +$BBh#2?F$K$O6u<1JL;R$,@_Dj$5$l$^$9!#(B 17.388 +$B%3%_%C%H8e$NLO<0?^$r!"(B 17.389 +$B?^(B~\ref{fig:concepts:wdir-after-commit}$B$K<($7$^$9!#(B 17.390 +Mercurial $B$O%3%_%C%H$N:]$K!"(B 17.391 +$B:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$K$O0l@Z?($l$:!"(B 17.392 +$BC1$K(B dirstate $B$N?F%A%'%s%8%;%C%H>pJs$r=q$-49$($k$@$1$G$9!#(B 17.393 + 17.394 +\subsection{Creating a new head} 17.395 + 17.396 +$B8=;~E@$G$N(B tip $B0J30$N%A%'%s%8%;%C%H$G$N:n6HNN0h%G%#%l%/%H%j$N99?7$O!"(B 17.397 +$BNI$/$"$k$3$H$G$9!#(B 17.398 +$BNc$($P!"(B 17.399 +$B@h=52PMKF|;~E@$G$N%W%m%8%'%/%H$N>uBV$rD4$Y$?$j!"(B 17.400 +$B$I$N%A%'%s%8%;%C%H$,%P%0$r;}$A9~$s$@$N$+$rD4$Y$k!"(B 17.401 +$B$H$$$C$?>u67$G$9!#(B 17.402 +$B$3$N$h$&$J>u67$G$N<+A3$J9T0Y$O!"(B 17.403 +$B:n6HNN0h%G%#%l%/%H%j$r4uK>$N%A%'%s%8%;%C%H$G99?7$7!"(B 17.404 +$BEv3:%A%'%s%8%;%C%H$r%3%_%C%H$7$?;~E@$G$N%U%!%$%k$NFbMF$r!"(B 17.405 +$B:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$r;2>H$7$F3NG'$9$k!"(B 17.406 +$B$H$$$&$b$N$G$7$g$&!#(B 17.407 +$B$3$N9T0Y$K$h$k1F6A$r!"(B 17.408 +$B?^(B~\ref{fig:concepts:wdir-pre-branch}$B$K<($7$^$9!#(B 17.409 + 17.410 +\begin{figure}[ht] 17.411 + \centering 17.412 + \grafix{wdir-pre-branch} 17.413 + \caption{The working directory, updated to an older changeset} 17.414 + \label{fig:concepts:wdir-pre-branch} 17.415 +\end{figure} 17.416 + 17.417 +$B:n6HNN0h%G%#%l%/%H%j$r0JA0$N%A%'%s%8%;%C%H$G99?7$7$?>l9g!"(B 17.418 +$B2?$i$+$NJQ99$r9T$C$F%3%_%C%H$7$?$J$i!"(B 17.419 +Mercurial $B$O$I$N$h$&$K?6Iq$&$N$G$7$g$&$+!)(B 17.420 +Mercurial $B$O$3$l$^$G$K@bL@$7$F$-$?>l9g$HF1$8$h$&$K?6Iq$$$^$9!#(B 17.421 +$B:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$,!"(B 17.422 +$B?75,$K:n@.$5$l$k%A%'%s%8%;%C%H$N?F$K$J$j$^$9!#(B 17.423 +$B?75,:n@.$5$l$k%A%'%s%8%;%C%H$O;R$r;}$?$:!"(B 17.424 +$B$h$C$F?7$?$J(B tip $B%A%'%s%8%;%C%H$H$J$j$^$9!#(B 17.425 +$B%3%_%C%H$N7k2L!"(B 17.426 +$B%j%]%8%H%j$K$O;R$r;}$?$J$$%A%'%s%8%;%C%H$,#2$DB8:_$7!"(B 17.427 +$B$3$l$i$O(B \emph{head} $B$H8F$P$l$^$9!#(B 17.428 +$B$3$N>u67$r?^(B~\ref{fig:concepts:wdir-branch} $B$K<($7$^$9!#(B 17.429 + 17.430 +\begin{figure}[ht] 17.431 + \centering 17.432 + \grafix{wdir-branch} 17.433 + \caption{After a commit made while synced to an older changeset} 17.434 + \label{fig:concepts:wdir-branch} 17.435 +\end{figure} 17.436 + 17.437 +\begin{note} 17.438 + Mercurial $B$KFk@w$_$NL5$$J}$O!"(B 17.439 + $B0z?tL5$7$G(B \hgcmd{pull} $B%3%^%s%I$r<B9T$7$?>l9g$N!"(B 17.440 + $BNI$/$"$k!V4V0c$$!W$r5$$KN1$a$FCV$$$F$/$@$5$$!#(B 17.441 + \hgcmd{pull} $B%3%^%s%I$N4pDlF0:n$O!"(B 17.442 + $B:n6HNN0h%G%#%l%/%H%j$N99?7$r(B\emph{$B9T$$$^$;$s(B}$B$N$G!"(B 17.443 + $B%j%]%8%H%j$X$N?75,%A%'%s%8%;%C%H$N<h$j9~$_$O9T$o$l$F$b!"(B 17.444 + $B:n6HNN0h%G%#%l%/%H%j$O(B \hgcmd{pull} $B%3%^%s%I<B9TA0$N$^$^$G$9!#(B 17.445 + $B:n6HNN0h%G%#%l%/%H%j$OEv3:;~E@$G$N(B tip $B$HF14|$7$F$$$J$$$?$a!"(B 17.446 + \hgcmd{pull} $B$N<B9T8e$K2?$i$+$NJQ99$r9T$$%3%_%C%H$7$?>l9g!"(B 17.447 + $B7k2L$H$7$F?7$?$J(B head $B$r@8@.$9$k$3$H$K$J$j$^$9!#(B 17.448 + 17.449 + $B3g8LIU$-$G!V4V0c$$!W$H=R$Y$?$N$O!"(B 17.450 + $B$3$N>u67$r=$I|$9$k$N$KI,MW$J$3$H$,!"(B 17.451 + \hgcmd{merge} $B$7$F$+$i(B \hgcmd{commit} $B$9$l$PNI$$$@$1$@$+$i$G$9!#(B 17.452 + $B8@$$49$($k$J$i!"(B 17.453 + $B$3$N$h$&$J%1!<%9$OA4A3?<9o$J>u67$G$O$J$$!"$H$$$&$3$H$G$9!#(B 17.454 + Mercurial $B$K47$l$F$$$J$$?M$O%S%C%/%j$9$k$+$b$7$l$^$;$s$,!D!#(B 17.455 + $B$3$N$h$&$J;vBV$r2sHr$9$kJL$NJ}K!$d!"(B 17.456 + $B=i?4<T$K$H$C$F0U30$K46$8$k$3$N$h$&$J?6$kIq$$$r(B Mercurial $B$,$H$kM}M3$K$D$$$F!"(B 17.457 + $B8e$[$I@bL@$7$?$$$H;W$$$^$9!#(B 17.458 +\end{note} 17.459 + 17.460 +\subsection{Merging heads} 17.461 + 17.462 +\hgcmd{merge} $B%3%^%s%I<B9T$N:]$K!"(B 17.463 +Mercurial $B$O:n6HNN0h%G%#%l%/%H%j$NBh#1?F$OJQ99$;$:$K!"(B 17.464 +$BBh#2?F$r%^!<%8BP>]$H$7$F;XDj$7$?%A%'%s%8%;%C%H$KJQ99$7$^$9!#(B 17.465 +$B$3$NMM;R$r?^(B~\ref{fig:concepts:wdir-merge}$B$K<($7$^$9!#(B 17.466 + 17.467 +\begin{figure}[ht] 17.468 + \centering 17.469 + \grafix{wdir-merge} 17.470 + \caption{Merging two heads} 17.471 + \label{fig:concepts:wdir-merge} 17.472 +\end{figure} 17.473 + 17.474 +$B#2$D$N%A%'%s%8%;%C%H$K$*$$$F4IM}$5$l$k%U%!%$%k$r%^!<%8$9$k$?$a!"(B 17.475 +Mercurial $B$O:n6HNN0h%G%#%l%/%H%j$rJQ99$7$^$9!#(B 17.476 +$BB?>/4JJX2=$7$F@bL@$9$k$H!"(B 17.477 +$BN>J}$N%A%'%s%8%;%C%H$N(B manifest $B$K4^$^$l$kA4$F$N%U%!%$%k$KBP$7$F!"(B 17.478 +$B35$M0J2<$N$h$&$K%^!<%8=hM}$,<B;\$5$l$^$9!#(B 17.479 + 17.480 +\begin{itemize} 17.481 +\item $B$I$A$i$N%A%'%s%8%;%C%H$G$b%U%!%$%k$rJQ99$7$F$$$J$$>l9g!"(B 17.482 + $B$=$N%U%!%$%k$KBP$7$F$O2?$b9T$o$l$^$;$s!#(B 17.483 + 17.484 +\item $B0lJ}$N%A%'%s%8%;%C%H$,JQ99$7$F$$$k%U%!%$%k$r!"(B 17.485 + $BB>J}$,JQ99$7$F$$$J$$>l9g!"(B 17.486 + $BJQ99FbMF$rH?1G$7$?%U%!%$%k$r:n6HNN0h%G%#%l%/%H%j$KJ#@=$7$^$9!#(B 17.487 + 17.488 +\item $B0lJ}$N%A%'%s%8%;%C%H$,:o=|$7$?%U%!%$%k$O!"(B 17.489 + $BB>J}$N:o=|$K4X$o$i$:!"(B 17.490 + $B:n6HNN0h%G%#%l%/%H%j$+$i:o=|$5$l$^$9!#(B 17.491 + 17.492 +\item $B0lJ}$N%A%'%s%8%;%C%H$,:o=|$7$?%U%!%$%k$r!"(B 17.493 + $BB>J}$,JQ99$7$F$$$?>l9g!"(B 17.494 + $B%U%!%$%k$NJQ99$H:o=|$N$I$A$i$r:NMQ$9$k$N$+!"(B 17.495 + $B%f!<%6$KBP$7$FLd$$9g$o$;$^$9!#(B 17.496 + 17.497 +\item $BN>J}$N%A%'%s%8%;%C%H$,%U%!%$%k$rJQ99$7$F$$$k>l9g!"(B 17.498 + $BFbMF$N%^!<%87k2L$r%U%!%$%k$KJ]B8$9$k$?$a$K!"(B 17.499 + $B30It%^!<%8%W%m%0%i%`$,5/F0$5$l$^$9!#(B 17.500 + $B$3$N>l9g!"%f!<%6$K$h$kBPOCE*A`:n$,I,MW$K$J$k$+$b$7$l$^$;$s!#(B 17.501 + 17.502 +\item $B0lJ}$N%A%'%s%8%;%C%H$,JQ99$7$F$$$k%U%!%$%k$r!"(B 17.503 + $BB>J}$,2~L>$7$?$jJ#@=$7$?$j$7$F$$$k>l9g!"(B 17.504 + $BJQ99FbMF$,?7$7$$%U%!%$%k$K$bEAGE$9$k$h$&$K$7$^$9!#(B 17.505 + 17.506 +\end{itemize} 17.507 + 17.508 +$BB>$K$b:Y$+$$OC(B---$BFC$K%^!<%8$K4X$7$F$O:Y$+$$OC$,Bt;3$"$j$^$9(B---$B$,$"$j$^$9$,!"(B 17.509 +$B%^!<%8$K4XO"$9$k0lHLE*$J?6$kIq$$$N<oN`$O$3$NDxEY$G$9!#(B 17.510 +$B$4Mw$NMM$K!"KX$I$N>u67$,A4$/<+F0E*$K=hM}$5$l$^$9$7!"(B 17.511 +$B<B:]$N%^!<%8$G$bKX$I$N>l9g!"(B 17.512 +$B>WFM2r>C$N$?$a$NBPOCE*$JF~NOL5$7$K<+F0E*$K40N;$7$^$9!#(B 17.513 + 17.514 +$B%^!<%88e$N%3%_%C%H$N:]$K=hM}$5$l$k;vJA$r9M$($k>l9g$O!"(B 17.515 +$B@h$K$b=R$Y$^$7$?$,!"(B 17.516 +$B:n6HNN0h%G%#%l%/%H%j$r(B 17.517 +``$B%3%_%C%H$7$h$&$H$7$F$$$k%A%'%s%8%;%C%H(B'' 17.518 +$B$HB*$($k$H$o$+$j$d$9$$$G$7$g$&!#(B 17.519 +\hgcmd{merge} $B%3%^%s%I$,40N;$7$?8e$N:n6HNN0h%G%#%l%/%H%j$O!"(B 17.520 +$B?F%A%'%s%8%;%C%H$r#2$D;}$A!"(B 17.521 +$B%3%_%C%H$K$h$C$F@8@.$5$l$k?7$?$J%A%'%s%8%;%C%H$O!"(B 17.522 +$B$3$l$i$r?F%A%'%s%8%;%C%H$H$7$^$9!#(B 17.523 + 17.524 +Mercurial $B$G$O7+$jJV$7%^!<%8$9$k$3$H$,2DG=$G$9$,!"(B 17.525 +Mercurial $B$O$j%S%8%g%s$*$h$S:n6HNN0h%G%#%l%/%H%j$NN>J}$KBP$7$F!"(B 17.526 +$B0lEY$K#2$D$N?F%j%S%8%g%s$7$+DI@W$G$-$J$$$?$a!"(B 17.527 +$B8D!9$N%^!<%8$NETEY%3%_%C%H$9$kI,MW$,$"$j$^$9!#(B 17.528 +$BJ#?t$N%A%'%s%8%;%C%H$N0l3g%^!<%8$O5;=QE*$K$O2DG=$G$7$g$&$,!"(B 17.529 +$B%f!<%6$,:.Mp$7$?$j!"(B 17.530 +$B$R$I$/Mp;($J%^!<%8$,9T$o$l$k$G$"$m$&$3$H$OL\$K8+$($F$$$^$9!#(B 17.531 + 17.532 +\section{Other interesting design features} 17.533 + 17.534 +$B$3$l$^$G$N@a$G!"(B 17.535 +Mercurial $B$,?.Mj@-$H@-G=$XCm0U?<$/G[N8$rJ'$C$F$$$k$3$H$r@bL@$9$k$?$a$K!"(B 17.536 +$B@_7W$K$*$1$k:G$b=EMW$JB&LL$N4v$D$+$K>GE@$rEv$F$F$-$^$7$?!#(B 17.537 +$B$7$+$7!"(B 17.538 +$B>\:Y;v9`$X$NG[N8$O!"(B 17.539 +$B$3$l$@$1$KN1$^$j$^$;$s!#(B 17.540 +Mercurial $B$N9=@.$K$*$$$FI.<T$N8D?ME*$J6=L#$r$=$=$kB&LL$,B??t$"$j$^$9!#(B 17.541 +$B$3$l$^$G$N(B``big ticket''$B$JB&LL$H$OJL$K!"(B 17.542 +$B$$$/$D$+$rA*$s$G>\:Y$r@bL@$7$h$&$H;W$$$^$9$N$G!"(B 17.543 +$B$3$l$i$K6=L#$,$"$l$P!"(B 17.544 +$BNI$$@_7W$N%7%9%F%`$N9M0F$N:]$KM-MQ$J!"(B 17.545 +$B$h$jNI$$H/A[$rF@$k$3$H$,$G$-$k$G$7$g$&!#(B 17.546 + 17.547 +\subsection{Clever compression} 17.548 + 17.549 +Mercurial $B$O%9%J%C%W%7%g%C%H$H:9J,$N$=$l$>$l$KBP$7$F!"(B 17.550 +$B05=L$,M-8z$G$"$k>l9g$K$O05=L7A<0$GJ]B8$7$^$9!#(B 17.551 +Mercurial $B$O>o$K%9%J%C%W%7%g%C%H$J$$$7:9J,$N05=L$r(B\emph{$B;n9T(B}$B$7$^$9$,!"(B 17.552 +$BHs05=L$J>uBV$h$j$b%5%$%:$,>.$5$$>l9g$K8B$j!"(B 17.553 +$B05=L7A<0$G$NJ]B8$r9T$$$^$9!#(B 17.554 + 17.555 +$B$3$N$3$H$O!"(B 17.556 +$BNc$($P(B \texttt{zip} $B%"!<%+%$%V$d(B JPEG $B2hA|$N$h$&$K!"(B 17.557 +$B85!905=L7A<0$NFbMF$r;}$D%U%!%$%k$N3JG<$N:]$K!"(B 17.558 +Mercurial $B$,(B``$BE,@Z$J=hCV(B''$B$r9T$&$3$H0UL#$7$^$9!#(B 17.559 +$B$3$l$i$N%U%!%$%k$O(B Mercurial $B$K$h$k#2EYL\$N05=L$N:]$K$O!"(B 17.560 +$B:G=i$N%5%$%:$h$j$bBg$-$/$J$k$N$,0lHLE*$G$9$N$G!"(B 17.561 +Mercurial $B$O(B \texttt{zip} $B$d(B JPEG $B%U%!%$%k$r$=$N$^$^J]B8$7$^$9!#(B 17.562 + 17.563 +$B05=L7A<0$N%U%!%$%k$N%j%S%8%g%s4V$N:9J,$O!"(B 17.564 +$B0lHLE*$K$O%9%J%C%W%7%g%C%H$h$j$bBg$-$/$J$j$^$9$N$G!"(B 17.565 +$B$3$N>l9g$G$b(B Mercurial $B$O(B``$BE,@Z$J=hCV(B''$B$r9T$$$^$9!#(B 17.566 +$B%U%!%$%k$N%9%J%C%W%7%g%C%H$=$N$b$N$rJ]B8$9$k>l9g$N5vMFHO0O$r!"(B 17.567 +$B:9J,>pJs$N%5%$%:$,D6$($k$3$H$,H=L@$7$?>l9g!"(B 17.568 +Mercurial $B$O%9%J%C%W%7%g%C%H$rJ]B8$7$^$9$N$G!"(B 17.569 +$B7+$jJV$7$K$J$j$^$9$,!"(B 17.570 +$B:9J,$N$_$rJ];}$9$k%b%G%k$h$j$b%G%#%9%/MFNL$,@aLs$G$-$^$9!#(B 17.571 + 17.572 +\subsubsection{Network recompression} 17.573 + 17.574 +Mercurial $B$O%G%#%9%/$X$NMzNrJ]B8$N:]$K!"(B 17.575 +$B@-G=$KBP$9$k05=LN($,$=$3$=$3NI9%$G%P%i%s%9$N<h$l$F$$$k(B``$B<}=L(B'' 17.576 +$B!J(Bdeflate$B!K05=L%"%k%4%j%:%`(B 17.577 +$B!JCxL>$J(B \texttt{zip} $B%"!<%+%$%V7A<0$,F1Ey$N$b$N$r;HMQ$7$F$$$^$9!K(B 17.578 +$B$r;HMQ$7$F$$$^$9!#(B 17.579 +$B$7$+$7!"(B 17.580 +$B%M%C%H%o!<%/1[$7$N%G!<%?E>Aw$N:]$K$O!"(B 17.581 +Mercurial $B$OMzNr%G!<%?$r05=L$7$^$;$s!#(B 17.582 + 17.583 +$B%M%C%H%o!<%/@\B3$,(B HTTP $B7PM3$N>l9g!"(B 17.584 +Mercurial $B$O%G!<%?DL?.$N7PO)A4BN$r!"(B 17.585 +$B$h$jNI$$05=LN($rF@$i$l$k05=L%"%k%4%j%:%`(B 17.586 +$B!J(B\texttt{bzip2} $B05=L$H$7$F9-$/;HMQ$5$l$F$$$k(B 17.587 +Burrows-Wheeler $B%"%k%4%j%:%`!K$G:F05=L$7$^$9!#(B 17.588 +$B%j%S%8%g%s>pJs8DJL$N05=L$G$O$J$/!"(B 17.589 +\texttt{bzip2} $B%"%k%4%j%:%`$HDL?.7PO)A4BN$N05=L$H$$$&AH$_9g$o$;$K$9$k$3$H$G!"(B 17.590 +$BE>Aw%G!<%?NL$rBgI}$KDc8:$9$k$3$H$,$G$-$^$9$N$G!"(B 17.591 +$BKX$IA4$F$N%M%C%H%o!<%/7ABV$K$*$$$FNI9%$J@-G=$rH/4x$G$-$^$9!#(B 17.592 + 17.593 +$B!J(B\command{ssh} $B$G$N@\B3$N>l9g!"(B 17.594 +\command{ssh} $B<+?H$,05=L$r9T$&$3$H$,$G$-$k$N$G!"(B 17.595 +Mercurial $B$O@\B37PO)$N:F05=L$r(B\emph{$B9T$$$^$;$s(B} 17.596 +\footnote{$BLuCm(B: $BLu<T$N7P83$G$O!"(B 17.597 +$B%5!<%PB&$N(B Python $B$,(B zlib $B$r;HMQ$G$-$J$$>l9g!"(B 17.598 +ssh $B$G$N(B push/pull $B$,5!G=$7$J$+$C$?$N$G!"(B 17.599 +Mercurial $B$N%5%$%H$K$bF1MM$N5-=R$,$"$j$^$9$,!"(B 17.600 +$B$3$N5-=R$O>/!9DTjm$,9g$o$J$$5$$,$7$^$9!#(B}$B!K(B 17.601 + 17.602 +\subsection{Read/write ordering and atomicity} 17.603 + 17.604 +$BIT40A4$J=q$-9~$_FbMF$,MxMQ$5$l$k$3$H$N$J$$$h$&$KJ]>Z$9$k>e$G$O!"(B 17.605 +$B%U%!%$%k$X$NDI2C=q$-9~$_$@$1$,A4$F$G$O$"$j$^$;$s!#(B 17.606 +$B$b$&0lEY!"?^(B~\ref{fig:concepts:metadata}$B$r8+$F$$$?$@$1$l$P$o$+$k$h$&$K!"(B 17.607 +changelog $BCf$N%j%S%8%g%sMWAG$O(B manifest $BCf$N%j%S%8%g%sMWAG$r!"(B 17.608 +manifest $BCf$N%j%S%8%g%sMWAG$O(B filelog $BCf$N%j%S%8%g%sMWAG$r;X$7$F$$$^$9!#(B 17.609 +$B$3$N3,AX9=B$$O0U?^E*$J$b$N$J$N$G$9!#(B 17.610 + 17.611 +$B%G!<%?=q$-9~$_$N:]$K$O!"(B 17.612 +filelog $B$*$h$S(B manifest $B$X$N=q$-9~$_$G%H%i%s%6%/%7%g%s$,3+;O$5$l!"(B 17.613 +$B$3$l$i$X$N=q$-9~$_$,40N;$9$k$^$G$O(B 17.614 +changelog $B$X$N=q$-9~$_$O9T$o$l$^$;$s!#(B 17.615 +$BFI$_9~$_$N:]$K$O!"(B 17.616 +changelog $B$r5/E@$H$7$F(B manifest$B!"(Bfilelog $B$N=g=x$GFI$_9~$_$r9T$$$^$9!#(B 17.617 + 17.618 +changelog $B$X$N=q$-9~$_$K@hN)$C$F!"(B 17.619 +$B>o$K(B filelog $B$*$h$S(B manifest $B$X$N=q$-9~$_$,40N;$7$F$$$k$N$G!"(B 17.620 +changelog $B$+$i$NIT40A4$J(B manifest $B$X$N;2>H$rFI$_9~$`$3$H$b!"(B 17.621 +manifest $B$+$i$NIT40A4$J(B filelog $B$X$N;2>H$rFI$_9~$`$3$H$b$"$j$^$;$s!#(B 17.622 + 17.623 +\subsection{Concurrent access} 17.624 + 17.625 +$BFI$_=q$-<j=g$HIT2DJ,@-J]>Z$K$h$j!"(B 17.626 +$BNc$(FI$_9~$_$N:GCf$K=q$-9~$_$,9T$o$l$k$H$7$F$b!"(B 17.627 +Mercurial $B$OFI$_9~$_$K$*$1$k%j%]%8%H%j$N(B\emph{$BGSB>(B}$B$rI,MW$H$7$^$;$s!#(B 17.628 +$B$3$NFC@-$OBg5,LO2=$N:]$KHs>o$K1F6A$,$"$j$^$9!#(B 17.629 +$BG$0U$N?t$N(B Mercurial $B%W%m%;%9$,!"(B 17.630 +$B=q$-=P$7%W%m%;%9$NM-L5$K4X$o$i$:!"(B 17.631 +$B%j%]%8%H%j$KBP$7$FF1;~FI$_=P$7$r0BA4$K9T$&$3$H$,$G$-$^$9!#(B 17.632 + 17.633 +$BFI$_=P$7$K$*$1$kGSB>ITMW$NFC@-$O!"(B 17.634 +$BB?%f!<%6%7%9%F%`>e$G%j%]%8%H%j$r8x3+$7$F$$$k:]$K!"(B 17.635 +$BJ#@=!J(B\hgcmd{clone}$B!K$dJQ99$N<h$j9~$_!J(B\hgcmd{pull}$B!K$N$?$a$K!"(B 17.636 +$BB>$N%f!<%6$K!J$"$J$?$N!K(B 17.637 +$B%j%]%8%H%j$X$N(B\emph{$B=q$-9~$_(B}$B$r5v2D$9$kI,MW(B\footnote{$BLuCm(B: 17.638 +$B%W%m%;%94V$GGSB>$r9T$&>l9g!"(B 17.639 +$BGSB>MQ$N%U%!%$%k$rMQ$$$k$+!"(B 17.640 +$B%G%#%l%/%H%j$=$N$b$N$KGSB>@_Dj$r9T$&$N$,0lHLE*$G$9$,!"(B 17.641 +$B$=$N$?$a$K$O=q$-9~$_8"8B$,I,MW$G$9!#(B} 17.642 +$B$,L5$$$3$H$r0UL#$7$^$9!#(B 17.643 +$BFI$_=P$7$r9T$&B>$N%f!<%6$K$O!"(B 17.644 +\emph{$BFI$_=P$7(B}$B8"8B$N$_$N8x3+$G:Q$_$^$9(B 17.645 +$B!J$3$N@-<A$O9=@.4IM}%7%9%F%`$K6&DL$NFC@-$G$O(B\emph{$B$"$j$^$;$s(B}$B$N$G!"(B 17.646 +$B0lHLE*$J$b$N$@$H$O;W$o$J$$$G$/$@$5$$!#(B 17.647 +$BB?$/$N9=@.4IM}%7%9%F%`$G$O!"(B 17.648 +$BFI$_=P$7%f!<%6$G$"$C$F$b!"(B 17.649 +$B0BA4$JFI$_=P$7$N$?$a$K$O%j%]%8%H%j$rGSB>$9$k8"8B$,I,MW$G$"$j!"(B 17.650 +$B$=$N$?$a$K$O:GDc$G$b#1$D$N%G%#%l%/%H%j$KBP$9$k=q$-9~$_8"8B$,I,MW$J$?$a!"(B 17.651 +$B0BA4@-$H4IM}>e$GLLE]$JLdBj$N860x$H$J$jF@$^$9!#!K!#(B 17.652 + 17.653 +Mercurial $B$,GSB>$r9T$&$N$O!"(B 17.654 +$B0lEY$K#1$D$N%W%m%;%9$N$_$,%j%]%8%H%j$K=q$-9~$`$N$rJ]>Z>l9g$@$1$G$9(B 17.655 +$B!JGSB>$KE,$5$J$$$H8@$o$l$k(B NFS $B$N$h$&$J%U%!%$%k%7%9%F%`(B\footnote{$BLuCm(B: 17.656 +$B9=@.4IM}%7%9%F%`$K8B$i$:!"(B 17.657 +$BGSB>$N<B8=$K(B <code>creat(EXCL)</code> 17.658 +$B$G@8@.$5$l$k%U%!%$%k$r;HMQ$7$F$$$k$?$a$K!"(B 17.659 +NFS $B$G$OE,@Z$KGSB>$G$-$J$$%W%m%0%i%`$,B??tB8:_$7$^$9!#(B 17.660 +}$B$G$"$C$F$b!"(B 17.661 +$B0BA4$KGSB>$G$-$k;EAH$_$rMQ$$$F$$$^$9!K!#(B 17.662 +$B%j%]%8%H%j$,B>$N%W%m%;%9$K$h$jGSB>$5$l$F$$$k>l9g!"(B 17.663 +$B=q$-9~$_$r9T$&%W%m%;%9$O!"(B 17.664 +$B%j%]%8%H%j$NGSB>$,2r=|$5$l$k$^$G;C$/BT$C$F:FEYGSB>$r;n9T$7$^$9$,!"(B 17.665 +$BD9;~4V$KEO$C$FGSB>$5$l$?$^$^$N>l9g$O!"(B 17.666 +$B;~4V@Z$l$H$_$J$5$l$^$9!#(B 17.667 +$B$=$N$?$a!"(B 17.668 +$BNc$($P?MCN$l$:%7%9%F%`$,Dd;_$7$?$H$7$F$b!"(B 17.669 +$B<+F02=$5$l$?F|<!=hM}$,Dd;_$7$?$^$^$K$J$C$?$j!"(B 17.670 +$BDd;_$7$J$$=hM}$,<!!9$H@Q$_>e$,$C$?$j$9$k$3$H$O$"$j$^$;$s!#(B 17.671 + 17.672 +\subsubsection{Safe dirstate access} 17.673 + 17.674 +dirstate $B7A<0%U%!%$%k$+$i$N%j%S%8%g%s>pJs$NFI$_=P$7$K:]$7$F!"(B 17.675 +Mercurial $B$O%U%!%$%k$KBP$9$kGSB>$r9T$C$?$j$O$;$:!"(B 17.676 +$B=q$-9~$_$N:]$K$N$_GSB>$r9T$$$^$9!#(B 17.677 +$BIT40A4$J=q$-9~$_$r(B 17.678 +dirstate $B7A<0%U%!%$%k$+$iFI$_=P$7$F$7$^$&$3$H$r2sHr$9$k$?$a!"(B 17.679 +Mercurial $B$O(B 17.680 +$BBP>](B dirstate $B7A<0%U%!%$%k$HF1$8%G%#%l%/%H%j$KFCM-$NL>A0$G%U%!%$%k$r=q$-=P$7!"(B 17.681 +$B$3$N0l;~%U%!%$%k$r(B \filename{dirstate} 17.682 +$B%U%!%$%k$X$HIT2DJ,$JA`:n$G2~L>$7$^$9!#(B 17.683 +$B$=$N$?$a!"(B 17.684 +\filename{dirstate} $B$H$$$&!VL>A0$N!W%U%!%$%k$O!"(B 17.685 +$BIT40A4$J=q$-9~$_$r;}$?$J$$40A4$JFbMF$G$"$k$3$H$,J]>Z$5$l$^$9!#(B 17.686 + 17.687 +\subsection{Avoiding seeks} 17.688 + 17.689 +$BHf3SE*BgNL$N%G!<%?FI$_9~$_=hM}$KBP$7$F$9$i!"(B 17.690 +$B%G%#%9%/%X%C%I$N%7!<%/$OHs>o$K%3%9%H$,9b$/$D$/$?$a!"(B 17.691 +Mercurial $B$N@-G=3NJ]$N=EMW$JE@$O!"(B 17.692 +$B%G%#%9%/%X%C%I$N%7!<%/$r6KNO2sHr$9$k$3$H$K$"$j$^$9!#(B 17.693 + 17.694 +$BNc$($P(B dirstate $B7A<0$N$h$&$J%G!<%?$,!"(B 17.695 +$BC10l$N%U%!%$%k$KJ]B8$5$l$kM}M3$,$3$3$K$"$j$^$9!#(B 17.696 +Mercurial $B$K$h$j9=@.4IM}$5$l$k%G%#%l%/%H%j$4$H$K(B 17.697 +\filename{dirstate} $B%U%!%$%k$,B8:_$9$k>l9g$O!"(B 17.698 +$B%G%#%l%/%H%j$4$H$K%G%#%9%/%X%C%I$N%7!<%/$,H/@8$7F@$^$9!#(B 17.699 +$B$=$N$h$&$J%G%#%9%/%X%C%I$N%7!<%/$r2sHr$9$k$?$a$K!"(B 17.700 +Mercurial $B$O0lEY$KC10l$N(B 17.701 +\filename{dirstate} $B%U%!%$%kA4BN$rFI$_9~$_$^$9(B\footnote{$BLuCm(B: 17.702 +$B%G%#%9%/$NMxMQ$,?J$s$G6u$-%V%m%C%/$,CGJR2=$5$l$?>l9g!"(B 17.703 +$BITO"B3$J%V%m%C%/$,3d$jEv$F$i$l$^$9$+$i!"(B 17.704 +$BI,$:$7$b!VC10l%U%!%$%k!W!a!V%X%C%I$N%7!<%/$,2sHr2DG=!W$G$O$"$j$^$;$s$,!"(B 17.705 +$B>/$J$/$H$b!V%X%C%I$N%7!<%/$rDc8:!W$9$k$3$H$O2DG=$G$9!#(B}$B!#(B 17.706 + 17.707 +$B%m!<%+%k%9%H%l!<%8$K$*$1$k%j%]%8%H%j$NJ#@=$N:]$K$O!"(B 17.708 +Mercurial $B$O(B``$B=q$-=P$7;~J#@=(B''$B$N;EAH$_$b;HMQ$7$^$9!#(B 17.709 +$BJ#@=85%j%]%8%H%j$+$iJ#@=@h$K8D!9$N(B revlog $B%U%!%$%k$rJ#@=$9$kBe$o$j$K!"(B 17.710 +``$B%O!<%I%j%s%/(B''$B$r;HMQ$9$k$3$H$G!"(B 17.711 +``$B#2$D$N%U%!%$%kL>$,F10lFbMF$N%U%!%$%k$r;2>H(B'' 17.712 +$B$9$k$3$H$r<jAa$/I=L@$7$^$9!#(B 17.713 +$B0lJ}$N(B revlog $B%U%!%$%k$K=q$-9~$_$r9T$&:]$K$O!"(B 17.714 +Mercurial $B$OEv3:%U%!%$%k$N%O!<%I%j%s%/$r3NG'$7$^$9!#(B 17.715 +$BEv3:%U%!%$%k$,J#?t$N%j%]%8%H%j$+$i;2>H$5$l$$$F$$$k>l9g!"(B 17.716 +Mercurial $B$OEv3:%j%]%8%H%jMQ$K(B revlog $B$N?7$?$JJ#@=$r:n@.$7$^$9!#(B 17.717 + 17.718 +$B2??M$+$N9=@.4IM}%D!<%k$N3+H/<T$K$h$j!"(B 17.719 +$B$3$NJ}K!(B--- 17.720 +$B40A4$K%j%]%8%H%j8GM-$N$b$N$H$7$F%U%!%$%k$rJ#@=$9$k(B--- 17.721 +$B$,%G%#%9%/;HMQNL:o8:$K$=$l$[$I8z2LE*$G$J$$$H$N;XE&$r<u$1$F$$$^$9!#(B 17.722 +$B$=$l$O;v<B$G$O$"$j$^$9$,!"(B 17.723 +$B%G%#%9%/MFNL$N3NJ]$O0B2A$G$"$j!"(B 17.724 +OS $B$X$NJ#@=MW5a$rCY1d$9$k$3$H$K$h$j9b$$@-G=$rF@$k$3$H$,$G$-$^$9!#(B 17.725 +$BJL$J;EAH$_$rMQ$$$k>l9g!"(B 17.726 +$B@-G=$,Dc2<$7%=%U%H%&%'%"$NJ#;($5$,A}$7$^$9$N$G!"(B 17.727 +$BF|!9$NMxMQ$K$*$1$k(B``$BBN46(B''$B$KHs>o$K1F6A$r5Z$\$7$^$9(B\footnote{$BLuCm(B: 17.728 +$B$D$^$j!"(B 17.729 +Mercurial $B$G$N%O!<%I%j%s%/$N;HMQ$O!"(B 17.730 +$BJ#@=$r9T$&$3$H$K$h$k%G%#%9%/%X%C%I$N%7!<%/$rDc8:$9$k$N$,<g4c$G!"(B 17.731 +$B%G%#%9%/;HMQNL$NDc8:$,<g4c$G$O$J$$!"(B 17.732 +$B$H$$$&$3$H$G$9!#(B}$B!#(B 17.733 + 17.734 +\subsection{Other contents of the dirstate} 17.735 +\label{sec:concepts:dirstate} 17.736 + 17.737 +$B%U%!%$%k$NJQ99$N:]$N(B Mercurial $B$X$NDLCN$,I,MW$J$$$3$H$+$i!"(B 17.738 +$B%U%!%$%kJQ99$NM-L5$r8zN(E*$KH=Dj$9$k$?$a$K!"(B 17.739 +$BFCJL$J>pJs$r3JG<$7$?(B dirstate $B7A<0%U%!%$%k$r;HMQ$7$^$9!#(B 17.740 +$B:n6HNN0h%G%#%l%/%H%jCf$NA4$F$N%U%!%$%k$KBP$7$F!"(B 17.741 +Mercurial $B$O%U%!%$%k$N:G=*JQ99F|;~$H$=$N;~E@$G$N%5%$%:$r(B 17.742 +dirstate $B7A<0%U%!%$%k$K3JG<$7$F$$$^$9!#(B 17.743 + 17.744 +\hgcmd{add}$B!"(B\hgcmd{remove}$B!"(B\hgcmd{rename} $B$J$$$7(B 17.745 +\hgcmd{copy} $B$rL@<(E*$K;HMQ$7$?>l9g!"(B 17.746 +Mercurial $B$O$3$N>pJs$r99?7$7$^$9$N$G!"(B 17.747 +$B%3%_%C%H;~$N?6$kIq$$$rFCDj$G$-$^$9!#(B 17.748 + 17.749 +Mercurial $B$,:n6HNN0h%G%#%l%/%H%jCf$N%U%!%$%k$r3NG'$9$k>l9g!"(B 17.750 +$B:G=i$K%U%!%$%k$NJQ99F|;~$r3NG'$7$^$9!#(B 17.751 +$BJQ99F|;~$,F10l$J$i$P!"%U%!%$%k$OJQ99$5$l$F$$$J$$H&$G$9!#(B 17.752 +$B%U%!%$%k%5%$%:$,0[$J$C$F$$$k$J$i$P!"%U%!%$%k$OJQ99$5$l$F$$$kH&$G$9!#(B 17.753 +$BJQ99F|;~$,0[$J$C$F$$$k$N$K%U%!%$%k%5%$%:$,F10l$N>l9g$K$N$_!"(B 17.754 +$B%U%!%$%k$NFbMF$,0[$J$C$F$$$k$+H]$+$rH=Dj$9$k$?$a$K(B 17.755 +Mercurial $B$O<B:]$K%U%!%$%k$NFbMF$rFI$_9~$_$^$9(B\footnote{$BLuCm(B: 17.756 +Windows $B4D6-$G$N2~9TJQ49$r9T$C$F$$$k$h$&$J>l9g!"(B 17.757 +$B%P%$%J%jHG$H%=!<%9HG$G%U%!%$%k%5%$%:$N;;=P<j=g$K0c$$$,$"$k$i$7$/!"(B 17.758 +\hgcmd{diff} $B$,2?$b=PNO$7$J$$$N$K!"(B 17.759 +\hgcmd{state} $B$G$O!VJQ99!W07$$$5$l$k$3$H$,5)$K$"$j$^$9!#(B}$B!#(B 17.760 +$B$3$N$h$&$K6O$+$JDI2C>pJs$r3JG<$9$k$3$H$G!"(B 17.761 +Mercurial $B$,I,MW$H$9$kFI$_9~$_%G!<%?NL$r7`E*$K8:$i$9$3$H$,$G$-!"(B 17.762 +$BB>$N9=@.4IM}%7%9%F%`$HHf3S$7$FBgI}$K@-G=$,2~A1$5$l$F$$$^$9!#(B 17.763 + 17.764 +%%% Local Variables: 17.765 +%%% mode: latex 17.766 +%%% TeX-master: "00book" 17.767 +%%% End:
18.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 18.2 +++ b/ja/custom.sty Fri Aug 14 12:10:47 2009 -0700 18.3 @@ -0,0 +1,67 @@ 18.4 +\newlength\kanjicharwidth 18.5 +\settowidth{\kanjicharwidth}{$B$"(B} 18.6 + 18.7 +\newlength\kanjicharheight 18.8 +\settoheight{\kanjicharheight}{$B$"(B} 18.9 + 18.10 +% in 10pt/jbook environment: 18.11 +% kanjicharwidth=9.62216pt(= Cwd) 18.12 +% kanjicharheight=7.77588pt 18.13 + 18.14 +\setlength{\intextsep}{3.0\kanjicharheight} 18.15 +\setlength{\textfloatsep}{3.0\kanjicharheight} 18.16 + 18.17 +\newlength\defaultleftmargin 18.18 +\setlength{\defaultleftmargin}{2.0\kanjicharwidth} 18.19 + 18.20 +\newlength\defaultrightmargin 18.21 +\setlength{\defaultrightmargin}{2.0\kanjicharwidth} 18.22 + 18.23 +\newlength\defaulttopsep 18.24 +\setlength{\defaulttopsep}{2.0\kanjicharheight} 18.25 + 18.26 +\setlength{\voffset}{-20mm} 18.27 +\addtolength{\textheight}{30mm} % 18.28 +\setlength{\hoffset}{-10mm} 18.29 +\setlength{\oddsidemargin}{-8mm} 18.30 +\setlength{\evensidemargin}{-8mm} 18.31 +\addtolength{\textwidth}{16mm} 18.32 + 18.33 +%%%%%%%%%%%%%%%%%%%% 18.34 + 18.35 +\renewenvironment{itemize}{ 18.36 + \ifnum \@itemdepth >\thr@@\@toodeep\else 18.37 + \advance\@itemdepth\@ne 18.38 + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth} 18.39 + \list{ 18.40 + \csname \@itemitem\endcsname 18.41 + }{ 18.42 + \def\makelabel##1{\hss\llap{##1}} 18.43 + \setlength{\leftmargin}{\defaultleftmargin} 18.44 + \setlength{\rightmargin}{\defaultrightmargin} 18.45 + \setlength{\topsep}{\defaulttopsep} 18.46 + } 18.47 + \fi 18.48 +}{ 18.49 + \endlist 18.50 +} 18.51 + 18.52 +\renewenvironment{enumerate}{ 18.53 + \ifnum \@enumdepth >\thr@@\@toodeep\else 18.54 + \advance\@enumdepth\@ne 18.55 + \edef\@enumctr{enum\romannumeral\the\@enumdepth} 18.56 + \list{ 18.57 + \csname label\@enumctr\endcsname 18.58 + }{ 18.59 + \usecounter{\@enumctr} 18.60 + \def\makelabel##1{\hss\llap{##1}} 18.61 + \setlength{\leftmargin}{\defaultleftmargin} 18.62 + \setlength{\rightmargin}{\defaultrightmargin} 18.63 + \setlength{\topsep}{\defaulttopsep} 18.64 + } 18.65 + \fi 18.66 +}{ 18.67 + \endlist 18.68 +} 18.69 + 18.70 +%%%%%%%%%%%%%%%%%%%%
19.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 19.2 +++ b/ja/daily.tex Fri Aug 14 12:10:47 2009 -0700 19.3 @@ -0,0 +1,533 @@ 19.4 +\chapter{Mercurial in daily use} 19.5 +\label{chap:daily} 19.6 + 19.7 +\section{Telling Mercurial which files to track} 19.8 + 19.9 +$B%U%!%$%k$N4IM}$r;X<($7$J$$8B$j!"(B 19.10 +$B%j%]%8%H%jCf$N%U%!%$%k$KBP$7$F(B Mercurial $B$O2?$b9T$$$^$;$s!#(B 19.11 +\hgcmd{status} $B%3%^%s%I$O!"(B 19.12 +Mercurial $B$N4IM}2<$KL5$$%U%!%$%k$r(B 19.13 +``\texttt{?}'' $B$rI=<($9$k$3$H$GCN$i$;$F$/$l$^$9(B 19.14 + 19.15 +Mercurial $B$K$h$k9=@.4IM}$r;X<($9$k$K$O!"(B 19.16 +\hgcmd{add} $B%3%^%s%I$r;HMQ$7$^$9!#(B 19.17 +$B%U%!%$%k$N9=@.4IM}$r;X<($7$?%U%!%$%k$N(B 19.18 +\hgcmd{status} $B$K$h$kI=<($O!"(B 19.19 +``\texttt{?}'' $B$+$i(B ``\texttt{A}'' $B$X$HJQ2=$7$^$9!#(B 19.20 + 19.21 +\interaction{daily.files.add} 19.22 + 19.23 +\hgcmd{commit} $B$r<B9T$7$?D>8e$O!"(B 19.24 +$B%3%_%C%HA0$KDI2C$7$?%U%!%$%k$,(B 19.25 +\hgcmd{status} $B$K$h$jI=<($5$l$k$3$H$O$"$j$^$;$s!#(B 19.26 +$B$3$l$O!"(B 19.27 +``$B6=L#?<$$(B''$B%U%!%$%k(B--- 19.28 +$BJQ99$7$?$j!"(BMercurial $B$K2?$i$+$NA`:n$rMW5a$7$?%U%!%$%k(B 19.29 +---$B$K$D$$$FI=<($9$k$N$,(B 19.30 +\hgcmd{status} $B$NLr3d$@$+$i$G$9!#(B 19.31 +$B?t@i$N%U%!%$%k$+$i@.$k%j%]%8%H%j$,$"$k>l9g!"(B 19.32 +$B9=@.4IM}$5$l$F$O$$$F$bFC$KJQ99$5$l$F$$$J$$%U%!%$%k$N0lMw(B 19.33 +$B!J8e=R$9$k$h$&$K!"$=$N$h$&$J%U%!%$%k0lMw$N>pJs$rF@$k$3$H$b$G$-$^$9!K(B 19.34 +$B$rM_$7$$$H;W$&$3$H$O5)$G$9!#(B 19.35 + 19.36 +$B0lC6%U%!%$%k$rDI2C$7$?$H$7$F$b!"(B 19.37 +$B$=$N%U%!%$%k$KBP$7$F(B Mercurial $B$O$9$0$K$O2?$b9T$$$^$;$s!#(B 19.38 +$B$=$NBe$o$j!"(B 19.39 +$B<!$K%3%_%C%H$r9T$C$?:]$K%U%!%$%k>uBV$N%9%J%C%W%7%g%C%H$r:n@.$7$^$9!#(B 19.40 +Mercurial $B$O$=$l0J9_!"(B 19.41 +$B9=@.4IM}2<$+$i=|30$9$k$^$G!"(B 19.42 +$B%3%_%C%H$N:]$K$O>o$KEv3:%U%!%$%k$NJQ99>u67$r3NG'$7$^$9!#(B 19.43 + 19.44 +\subsection{Explicit versus implicit file naming} 19.45 + 19.46 +Mercurial $B$NM-MQ$J?6$kIq$$$H$7$F!"(B 19.47 +Mercurial $B$N%3%^%s%I$K%G%#%l%/%H%jL>$r;XDj$7$?>l9g!"(B 19.48 +$B$=$N;XDj$r(B 19.49 +``$BEv3:%G%#%l%/%H%jG[2<$NA4$F$N%U%!%$%k(B\footnote{$BLuCm(B: 19.50 +$BEv3:%G%#%l%/%H%jD>2<$N%U%!%$%k$J$i$S$K!"(B 19.51 +$B%5%V%G%#%l%/%H%j0J2<$N%U%!%$%kA4$F(B}$B$KBP$9$kA`:n$N<B;\(B'' 19.52 +$B$,MW5a$5$l$?$b$N$H$_$J$7$^$9!#(B 19.53 + 19.54 +\interaction{daily.files.add-dir} 19.55 + 19.56 +$B@h$NNc$G(B \filename{a} 19.57 +$B%U%!%$%k$r9=@.4IM}BP>]$KDI2C$7$?:]$K$O!"(B 19.58 +Mercurial $B$ODI2C$5$l$?%U%!%$%k$N%U%!%$%kL>$rI=<($7$F$$$^$;$s$,!"(B 19.59 +$B$3$NNc$G$O(B 19.60 +$B9=@.4IM}BP>]$KDI2C$5$l$?%U%!%$%k$rI=<($7$F$$$kE@$KCm0U$7$F$/$@$5$$!#(B 19.61 + 19.62 +$B@h$NNc$G$O!"(B 19.63 +$BDI2C$9$k%U%!%$%kL>$r%3%^%s%I%i%$%s$GL@<(E*$K;XDj$7$^$7$?$N$G!"(B 19.64 +$B$=$N$h$&$J>l9g$OMxMQ<T<+?H$,<+J,$N?6$kIq$$$rM}2r$7$F$$$k$b$N$H$_$J$7!"(B 19.65 +Mercurial $B$O2?$bI=<($7$^$;$s!#(B 19.66 + 19.67 +$B$7$+$7!"(B 19.68 +$B%G%#%l%/%H%jL>$r;XDj$9$k$3$H$G%U%!%$%kL>$r(B\emph{$B0E<((B}$B$7$?>l9g!"(B 19.69 +Mercurial $B$OFCJL$KA`:nBP>]$H$J$C$?8D!9$N%U%!%$%kL>$rI=<($7$^$9!#(B 19.70 +$B$3$&$9$k$3$H$G2?$,<B;\$5$l$?$N$+$,L@3N$K$J$k$?$a!"(B 19.71 +$B$R$C$=$j$H$d$C$+$$$JLdBj$,H/@8$9$k2DG=@-$rDc8:$7$^$9!#(B 19.72 +$B$3$N?6$kIq$$$OKX$I$N(B 19.73 +Mercurial $B%3%^%s%I$K6&DL$7$F$$$^$9!#(B 19.74 + 19.75 +\subsection{Aside: Mercurial tracks files, not directories} 19.76 + 19.77 +$B%G%#%l%/%H%j$O(B Mercurial $B$K$h$k9=@.4IM}$NBP>]$K$O$J$j$^$;$s!#(B 19.78 +$B$=$NBe$o$j!"(B 19.79 +Mercurial $B$O%U%!%$%k$N%Q%9$r9=@.4IM}$7$^$9!#(B 19.80 +$B%U%!%$%k$N@8@.$N:]$K$O!"(B 19.81 +$B$=$l$K@hN)$C$F%Q%9$K4^$^$l$kB8:_$7$J$$%G%#%l%/%H%j$rA4$F:n@.$7$^$9!#(B 19.82 +$B%U%!%$%k$N:o=|$N:]$K$O!"(B 19.83 +$B:o=|$5$l$?%U%!%$%k$X$N%Q%9$K4^$^$l$k6u%G%#%l%/%H%j$rA4$F:o=|$7$^$9!#(B 19.84 +$B$?$o$$$bL5$$$3$H$KJ9$3$($k$+$b$7$l$^$;$s$,!"(B 19.85 +Mercurial $B$,40A4$K6u$C$]$N%G%#%l%/%H%j$r<h$j07$($J$$!"(B 19.86 +$B$H$$$&>.$5$$$J$,$i$b<BMQ>e=EBg$J@-<A$r<($7$F$$$^$9!#(B 19.87 + 19.88 +$B6u$N%G%#%l%/%H%j$,M-MQ$J$3$H$OLGB?$KL5$$$G$9$7!"(B 19.89 +$BBEEv$J8z2L$rF@$k$?$a$N95$($a$J2sHrJ}K!$,$"$j$^$9!#(B 19.90 +Empty directories are rarely useful, and there are unintrusive 19.91 +workarounds that you can use to achieve an appropriate effect. 19.92 +$B$=$l8N$K!"(B 19.93 +$B6u$N%G%#%l%/%H%j$r07$&$3$H$K$h$k8BDjE*$JM-1W@-$,!"(B 19.94 +$B$=$l$KI,MW$H$5$l$kJ#;($5$K8+9g$&$b$N$G$O$J$$!"(B 19.95 +$B$H(B Mercurial $B$N3+H/?X$OH=CG$7$^$7$?!#(B 19.96 + 19.97 +$B6u$N%G%#%l%/%H%j$r%j%]%8%H%j$G4IM}$7$?$$>l9g!"(B 19.98 +$BJ#?t$N<B8=J}K!$,$"$j$^$9!#(B 19.99 +$B#1$D$OEv3:%G%#%l%/%H%jD>2<$N(B``$B1#$7(B''$B%U%!%$%k$r(B 19.100 +\hgcmd{add} $B$9$k$3$H$G$9!#(B 19.101 +UNIX $B%i%$%/$J%7%9%F%`$G$O!"(B 19.102 +$B%T%j%*%I!J(B``\texttt{.}''$B!K$G;O$^$kL>A0$N%U%!%$%k$O!"(B 19.103 +$BKX$I$N%3%^%s%I$d(B GUI $B%D!<%k$+$i1#$7%U%!%$%k$H$7$F07$o$l$^$9!#(B 19.104 +$B$3$N<jK!$r?^(B~\ref{ex:daily:hidden}$B$K<($7$^$9!#(B 19.105 + 19.106 +\begin{figure}[ht] 19.107 + \interaction{daily.files.hidden} 19.108 + \caption{Simulating an empty directory using a hidden file} 19.109 + \label{ex:daily:hidden} 19.110 +\end{figure} 19.111 + 19.112 +$B6u%G%#%l%/%H%j$rI,MW$H$9$k>l9g$N$b$&0l$D$N2r7hJ}K!$O!"(B 19.113 +$B<+F02=$5$l$?%S%k%I%9%/%j%W%H$GI,MW$K$J$kETEY:n@.$9$k!"(B 19.114 +$B$H$$$&$b$N$G$9!#(B 19.115 + 19.116 +\section{How to stop tracking a file} 19.117 + 19.118 +$B%j%]%8%H%j$K$H$C$FITMW$K$J$C$?(B\footnote{$BLuCm(B: 19.119 +$B9=@.4IM}$NI,MW@-$,$J$/$J$C$?(B}$B%U%!%$%k$,$"$k>l9g$O!"(B 19.120 +\hgcmd{remove} $B%3%^%s%I$r;HMQ$^$9!#(B 19.121 +$B$3$N%3%^%s%I$O%U%!%$%k$r:o=|$7$D$D!"(B 19.122 +Mercurial $B$K9=@.4IM}BP>]$+$i%U%!%$%k$r=|30$9$k;]$rDLCN$7$^$9!#(B 19.123 +$B:o=|$5$l$?%U%!%$%k$O!"(B 19.124 +\hgcmd{status} $B$N=PNO$G$O(B 19.125 +``\texttt{R}'' $BIU$-$GI=<($5$l$^$9!#(B 19.126 + 19.127 +\interaction{daily.files.remove} 19.128 + 19.129 +\hgcmd{remove} $B$K$h$k%U%!%$%k$N:o=|$r9T$&$H!"(B 19.130 +$B:n6HNN0h%G%#%l%/%H%j$KF1L>$N%U%!%$%k$r:FEY:n@.$7$?$H$7$F$b!"(B 19.131 +Mercurial $B$O$=$N%U%!%$%k$r9=@.4IM}BP>]$+$i=|30$7$^$9!#(B 19.132 +$BF1L>%U%!%$%k$r:F@8@.$7(B Mercurial $B$K$h$k9=@.4IM}$r9T$&>l9g$K$O!"(B 19.133 +$BC1=c$K$=$N%U%!%$%k$r(B \hgcmd{add} $B$7$F$/$@$5$$!#(B 19.134 +Mercurial $B$O?75,$K4IM}BP>]$K2C$($i$l$?%U%!%$%k$,!"(B 19.135 +$B0JA04IM}$7$F$$$?F1L>$N%U%!%$%k$H$OL54X78$G$"$k$H$_$J$7$^$9!#(B 19.136 + 19.137 +\subsection{Removing a file does not affect its history} 19.138 + 19.139 +$B=EMW$J;v$G$9$N$G!"(B 19.140 +\hgcmd{remove} $B%3%^%s%I$K$h$kA`:n$,;}$D1F6A$O#2$D$@$1$G$"$k!"(B 19.141 +$B$HM}2r$7$F$/$@$5$$!#(B 19.142 + 19.143 +\begin{itemize} 19.144 +\item $B:n6HNN0h%G%#%l%/%H%j$+$i!"8=;~E@$N%U%!%$%k$r:o=|$7$^$9(B 19.145 + 19.146 +\item Mercurial $B$KBP$7$F!"<!2s$N%3%_%C%H0J9_!"(B 19.147 + $BEv3:%U%!%$%k$r9=@.4IM}BP>]$+$i=|30$9$k$h$&$KDLCN$7$^$9(B 19.148 + 19.149 +\end{itemize} 19.150 + 19.151 +\hgcmd{remove} $B%3%^%s%I$K$h$kA`:n$O!"(B 19.152 +$B%U%!%$%k$N(B\emph{$BJQ99MzNr(B}$B$K$O0l@ZJQ99$r2C$((B\emph{$B$^$;$s(B}$B!#(B 19.153 + 19.154 +$B:n6HNN0h%G%#%l%/%H%j$r(B 19.155 +\hgcmd{remove} 19.156 +$B$G:o=|$7$?%U%!%$%k$,$^$@9=@.4IM}$5$l$F$$$?;~E@$N%A%'%s%8%;%C%H$G99?7$7$?>l9g!"(B 19.157 +$B$=$N%A%'%s%8%;%C%H$,%3%_%C%H$5$l$?;~E@$NFbMF$G!"(B 19.158 +$B:n6HNN0h%G%#%l%/%H%j$KEv3:%U%!%$%k$,:F@8@.$5$l$^$9!#(B 19.159 +$B$=$N8e$G!"(B 19.160 +$BEv3:%U%!%$%k$,(B \hgcmd{remove} 19.161 +$B$G:o=|$5$l$?;~E@$N%A%'%s%8%;%C%H$G99?7$9$k$H!"(B 19.162 +Mercurial $B$O:F$SEv3:%U%!%$%k$r:n6HNN0h$+$i:o=|$7$^$9!#(B 19.163 + 19.164 +\subsection{Missing files} 19.165 + 19.166 +\hgcmd{remove} 19.167 +$B%3%^%s%I$r;HMQ$;$:$K:n6HNN0h%G%#%l%/%H%j$+$i:o=|$7$?%U%!%$%k$r!"(B 19.168 +Mercurial $B$O(B\emph{$B9TJ}ITL@(B}$B$H$_$J$7$^$9!#(B 19.169 +$B9TJ}ITL@$N%U%!%$%k$O!"(B 19.170 +\hgcmd{status} $B$N=PNO$G$O(B 19.171 +``\texttt{!}'' $BIU$-$GI=<($5$l$^$9!#(B 19.172 +Mercurial $B$N%3%^%s%I72A4HL$O!"(B 19.173 +$B9TJ}ITL@$N%U%!%$%k$K4X$7$F$O2?$b9T$$$^$;$s!#(B 19.174 + 19.175 +\interaction{daily.files.missing} 19.176 + 19.177 +\hgcmd{status} 19.178 +$B$,9TJ}ITL@$H$7$FI=<($9$k%U%!%$%k$,%j%]%8%H%jCf$K$"$k>l9g(B\footnote{$BLuCm(B: 19.179 +$B$D$^$j<jF0$G%U%!%$%k$r:o=|$7$?>l9g(B}$B!"(B 19.180 +$B%U%!%$%k:o=|8e$NG$0U$N;~E@$G(B 19.181 +\hgcmdargs{remove}{\hgopt{remove}{--after}} $B$r<B9T$9$k$3$H$G(B 19.182 +$BEv3:%U%!%$%k$r9=@.4IM}BP>]$+$i=|30$9$k0U;W$,$"$k$3$H$r(B 19.183 +Mercurial $B$KDLCN$9$k$3$H$,$G$-$^$9!#(B 19.184 + 19.185 +\interaction{daily.files.remove-after} 19.186 + 19.187 +$B$=$N0lJ}$G!"(B 19.188 +$B9TJ}ITL@$H$5$l$F$$$k%U%!%$%k$,0U?^$;$:$K:o=|$7$F$7$^$C$?$b$N$J$i!"(B 19.189 +\hgcmd{revert} $B$KEv3:%U%!%$%kL>$r;XDj$9$k$3$H$G!"(B 19.190 +$BJQ99$5$l$F$$$J$$>uBV$K%U%!%$%k$rI|5l$9$k$3$H$,$G$-$^$9!#(B 19.191 + 19.192 +\interaction{daily.files.recover-missing} 19.193 + 19.194 +\subsection{Aside: why tell Mercurial explicitly to remove a file?} 19.195 + 19.196 +$B%U%!%$%k:o=|$N0U;WI=<($r0l!9(B Mercurial $B$K<($9I,MW@-$K$D$$$F!"(B 19.197 +$B5?Ld$K;W$o$l$k$+$b$7$l$^$;$s!#(B 19.198 +Mercurial $B$N3+H/=i4|$K$*$1$k:o=|J}K!$O!"(B 19.199 +$B$=$N$h$&$K;W$&?M$K$H$C$F$OK>$^$7$$$b$N$+$b$7$l$^$;$s!#(B 19.200 +Mercurial $B$O(B \hgcmd{commit} $B%3%^%s%I<B9T;~$K%U%!%$%k$NIT:_$r<+F0E*$K8!CN$7!"(B 19.201 +$BEv3:%U%!%$%k$r9=@.4IM}BP>]$+$i=|30$7$F$$$?$N$G$9!#(B 19.202 +$B<B:]LdBj!"$3$N:o=|J}K!$G$O!"(B 19.203 +$BITN8$N;vBV$GDLCN$bL5$/%U%!%$%k$,:o=|$5$l$k;vBV$,MF0W$K5/$3$jF@$^$9!#(B 19.204 + 19.205 +\subsection{Useful shorthand---adding and removing files in one step} 19.206 + 19.207 +Mercurial $B$O!"(B 19.208 +$B9=@.4IM}BP>]$X$N%U%!%$%k$NDI2C$H=|30$r9T$&!"(B 19.209 +$BAH$_9g$o$;%3%^%s%I$G$"$k(B \hgcmd{addremove} $B$rDs6!$7$F$$$^$9!#(B 19.210 + 19.211 +\interaction{daily.files.addremove} 19.212 + 19.213 +\hgcmd{commit} $B%3%^%s%I$b!"(B 19.214 +$B%3%_%C%H<B;\$ND>A0$K(B 19.215 +\hgcmd{addremove} $B$HF1$8J}?K$G9=@.4IM}BP>]$X$NDI2C!?=|30$r9T$&(B 19.216 +\hgopt{commit}{-A} $B%*%W%7%g%s$rDs6!$7$F$$$^$9!#(B 19.217 + 19.218 +\interaction{daily.files.commit-addremove} 19.219 + 19.220 +\section{Copying files} 19.221 + 19.222 +Mercurial $B$O%U%!%$%k$NJ#@=$r9T$&(B 19.223 +\hgcmd{copy} $B%3%^%s%I$rDs6!$7$F$$$^$9!#(B 19.224 +$B$3$N%3%^%s%I$G%U%!%$%k$rJ#@=$7$?>l9g!"(B 19.225 +Mercurial $B$O$=$N%U%!%$%k$,85%U%!%$%k$NJ#@=$G$"$k$3$H$r5-O?$7$^$9!#(B 19.226 +$B%A%'%s%8%;%C%H$N%^!<%8$N:]$K$O!"(B 19.227 +Mercurial $B$O$3$NJ#@=%U%!%$%k$rFCJL07$$$7$^$9!#(B 19.228 + 19.229 +\subsection{The results of copying during a merge} 19.230 + 19.231 +$BJ#@=%U%!%$%k$N%^!<%8$N:]$K$O!"(B 19.232 +$BJQ99FbMF$,J#@=%U%!%$%k$^$G(B``$BDI=>(B''$B$7$F$-$^$9!#(B 19.233 +$B$3$N$3$H$,;}$D0UL#$r>e<j$/@bL@$9$k$?$a$K!"(B 19.234 +$B4JC1$JNc$r:n@.$7$^$7$g$&!#(B 19.235 +$B$3$l$^$G$NNc$HF1MM$K!"(B 19.236 +$B#1$D$@$1%U%!%$%k$r;}$D4J0WE*$J%j%]%8%H%j$r:n@.$7$^$9!#(B 19.237 + 19.238 +\interaction{daily.copy.init} 19.239 + 19.240 +$B%^!<%8$r9T$&$?$a$K$O!"(B 19.241 +$BJL!9$N:n6H$rJ?9T$7$F9T$&I,MW$,$"$j$^$9$N$G!"(B 19.242 +$B%j%]%8%H%j$rJ#@=$7$^$7$g$&!#(B 19.243 + 19.244 +\interaction{daily.copy.clone} 19.245 + 19.246 +$B:G=i$N%j%]%8%H%j$KLa$j!"(B 19.247 +\hgcmd{copy} $B%3%^%s%I$G:G=i$K:n@.$7$?%U%!%$%k$rJ#@=$7$^$9!#(B 19.248 + 19.249 +\interaction{daily.copy.copy} 19.250 + 19.251 +$BJ#@=8e$N(B \hgcmd{status} $B%3%^%s%I$N=PNO$G$O!"(B 19.252 +$BJ#@=$5$l$?%U%!%$%k$OC1$KDI2C$5$l$?IaDL$N%U%!%$%k$HF1$8$h$&$K8+$($^$9!#(B 19.253 + 19.254 +\interaction{daily.copy.status} 19.255 + 19.256 +$B$7$+$7(B 19.257 +\hgopt{status}{-C} $B%*%W%7%g%sIU$-$G(B 19.258 +\hgcmd{status} $B$r<B9T$9$k$3$H$G!"(B 19.259 +$BJL$J9T$,I=<($5$l$^$9!#(B 19.260 +$B$3$N9T$O!"?7$?$KDI2C$5$l$?%U%!%$%k$NJ#@=(B\emph{$B85(B}$B$G$"$k$3$H$r0UL#$7$^$9!#(B 19.261 + 19.262 +\interaction{daily.copy.status-copy} 19.263 + 19.264 +$BJ#@=$7$?%j%]%8%H%j$KLa$j!"(B 19.265 +$BJ?9T$7$FJQ99:n6H$r9T$$$^$9!#(B 19.266 +$BJ#@=85$K$J$C$?%U%!%$%k$KBP$7$F9T$rDI2C$7$^$9!#(B 19.267 + 19.268 +\interaction{daily.copy.other} 19.269 + 19.270 +$B$3$N%j%]%8%H%j$G$OJ#@=85$N(B \filename{file} $B$,JQ99$5$l$^$7$?!#(B 19.271 +$B:G=i$N%j%]%8%H%j$+$iJQ99FbMF$r(B 19.272 +\hgcmd{pull} $B$7$F#2$D$N(B head $B$r%^!<%8$9$k:]$K(B Mercurial $B$O!"(B 19.273 +\filename{file} $B$KBP$7$F$@$19T$C$?JQ99FbMF$r!"(B 19.274 +$B$=$NJ#@=$G$"$k(B \filename{new-file} $B$K$^$GEAGE$5$;$^$9!#(B 19.275 + 19.276 +\interaction{daily.copy.merge} 19.277 + 19.278 +\subsection{Why should changes follow copies?} 19.279 +\label{sec:daily:why-copy} 19.280 + 19.281 +$B%U%!%$%k$NJ#@=$KBP$7$F$kJQ99$,EAGE$5$l$k5sF0$O!"(B 19.282 +$BFq2r$K;W$($k$+$b$7$l$^$;$s$,!"(B 19.283 +$BB?$/$N>l9g$OHs>o$K9%$^$7$$?6$kIq$$$H$J$j$^$9!#(B 19.284 + 19.285 +$B$^$:$O!"(B 19.286 +$B$3$NEAGE$,%^!<%8$N;~(B\emph{$B$@$1(B}$B$K9T$o$l$k!"(B 19.287 +$B$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#(B 19.288 +$B%U%!%$%k$r(B \hgcmd{copy} $B$GJ#@=$7!"(B 19.289 +$B$=$l$K0z$-B3$-J#@=85%U%!%$%k$rJQ99$9$k!"(B 19.290 +$B$H$$$&DL=j$N:n6H$K$*$$$F$O2?$bFCJL$J$3$H$O9T$o$l$^$;$s!#(B 19.291 + 19.292 +$B$b$&0lE@!"(B 19.293 +$BJQ99$r<h$j9~$s$@%j%]%8%H%j$,!"(B 19.294 +$B%U%!%$%k$rJ#@=$7$?$3$H$r(B\emph{$BCN$i$J$+$C$?(B}$B>l9g$K8B$j!"(B 19.295 +$BJQ99FbMF$,J#@=@h%U%!%$%k$KEAGE$9$k!"(B 19.296 +$B$H$$$&$3$H$K$bCm0U$7$F$/$@$5$$!#(B 19.297 + 19.298 +Mercurial $B$,$3$N$h$&$K?6Iq$&$N$O0J2<$N$h$&$JM}M3$N$?$a$G$9!#(B 19.299 +$BNc$($PI.<T$,!"(B 19.300 +$B%=!<%9%U%!%$%k$KBP$7$F=EMW$J%P%0=$@5$r9T$$!"(B 19.301 +$BJQ99FbMF$r%3%_%C%H$7$?$H$7$^$9!#(B 19.302 +$B$=$NJQ99:n6H$,9T$o$l$F$$$k4V$K!"(B 19.303 +$B%P%0$N82:_2=$d$=$N=$@5$rBT$D;vL5$/!"(B 19.304 +$BEv3:%U%!%$%k$r(B \hgcmd{copy} $B$GJ#@=$7!"(B 19.305 +$B$=$NJ#@=@h%U%!%$%k$NJQ99$rFI<T$,;O$a$F$7$^$&$+$b$7$l$^$;$s!#(B 19.306 + 19.307 +$BFI<T$,I.<T$NJQ99$r<h$j9~$s$G%^!<%8$7$?:]$K!"(B 19.308 +Mercurial $B$,J#@=$X$NJQ99$NH?1G$r(B\emph{$B9T$o$J$$(B}$B>l9g!"(B 19.309 +$BFI<T$NJ#@=@h%U%!%$%k$O%P%0$r4^$s$G$$$k$?$a!"(B 19.310 +$B<jF0$G%P%0=$@5$rH?1G$5$;$kI,MW@-$r;W$$=P$5$J$$8B$j!"(B 19.311 +$B%P%0$OJ#@=@h%U%!%$%k$K(B\emph{$B;D$jB3$1$k(B}$B$G$7$g$&!#(B 19.312 + 19.313 +$B%P%0=$@5$K4X$9$kJQ99FbMF$N!"(B 19.314 +$BJ#@=85$+$iJ#@=@h$X$N<+F0H?1G$K$h$j!"(B 19.315 +Mercurial $B$O$3$N<j$NLdBj$r2sHr$7$F$$$^$9!#(B 19.316 +$BI.<T$NCN$k8B$j(B Mercurial $B$O!"(B 19.317 +$BJ#@=%U%!%$%k$KBP$9$k$3$N$h$&$JJQ99EAGE$r9T$&(B\emph{$BM#0l$N(B}$B9=@.4IM}%7%9%F%`$G$9!#(B 19.318 + 19.319 +$B%U%!%$%k$NJ#@=$H$=$l$KB3$/%^!<%8$N<B;\$,0lC6JQ99MzNr$K5-O?$5$l$?$J$i!"(B 19.320 +$BJ#@=85%U%!%$%k$+$iJ#@=@h%U%!%$%k$X$N$=$l0J>e$NJQ99H?1G$ODL>o$OITMW$J$N$G!"(B 19.321 +Mercurial $B$O%^!<%8;~E@$^$G$OJ#@=$XJQ99$rEAGE$5$;$^$9$,!"(B 19.322 +$B$=$l0J>e$O9T$$$^$;$s!#(B 19.323 + 19.324 +\subsection{How to make changes \emph{not} follow a copy} 19.325 + 19.326 +$B2>$K!"2?$i$+$NM}M3$K$h$j!"(B 19.327 +$BJ#@=%U%!%$%k$X$N<+F0E*$JJQ99H?1G$,I,MW$J$$$HH=CG$7$?$J$i!"(B 19.328 +$B%7%9%F%`$NDL>o$NJ}K!(B 19.329 +$B!J(BUnix $BE*$J%7%9%F%`$N>l9g$J$i(B \command{cp}$B!K(B 19.330 +$B$G%U%!%$%k$rJ#@=$7!"(B 19.331 +\hgcmd{add} $B$K$h$j<jF0$GJ#@=%U%!%$%k$r9=@.4IM}BP>]$KDI2C$7$F$/$@$5$$!#(B 19.332 +$B$G$9$,!"$=$NA0$K(B\ref{sec:daily:why-copy}$B@a$rFI$_D>$7$F!"(B 19.333 +Mercurial $B$K$h$k<+F0JQ99H?1G$NE,@Z@-$r==J,$K8!F$$7$F$/$@$5$$!#(B 19.334 + 19.335 +\subsection{Behaviour of the \hgcmd{copy} command} 19.336 + 19.337 +\hgcmd{copy} $B%3%^%s%I$r;HMQ$7$?>l9g!"(B 19.338 +Mercurial $B$OB(:B$K:n6HNN0h%G%#%l%/%H%j$K8D!9$N%U%!%$%k$NJ#@=$r:n@.$7$^$9!#(B 19.339 +$B$=$N$?$a!"(B 19.340 +$B%U%!%$%k$K=$@5$r2C$($?8e$G!"(B 19.341 +$B$=$NJQ99$r%A%'%s%8%;%C%H$H$7$F%3%_%C%H$9$k$3$H$J$/(B 19.342 +\hgcmd{copy} $B$r9T$C$?>l9g!"(B 19.343 +$BJ#@=@h%U%!%$%k$O$=$N;~E@$^$G$NJQ99FbMF$b4^$s$G$$$k$3$H$K$J$j$^$9(B 19.344 +$B!J$3$N?6$kIq$$$K$D$$$F$3$3$G=R$Y$?$N$O!"(B 19.345 +$B>/!9D>46$KH?$9$k$h$&$K46$8$i$l$?$+$i$G$9!K!#(B 19.346 + 19.347 +\hgcmd{copy} $B$O(B 19.348 +Unix $B$N(B \command{cp} $B%3%^%s%I$HF1MM$K?6Iq$$$^$9(B 19.349 +$B!J(B\hgcmd{cp} $B$H$$$&JLL>J}$,9%$_$G$"$l$P!"$3$A$i$b;HMQ$G$-$^$9!K!#(B 19.350 +$BKvHx$N0z?t$O(B\emph{$BJ#@=@h(B}$B$r!"(B 19.351 +$B$=$l0J30$N@h9T$9$k0z?t$O(B\emph{$BJ#@=85(B}$B$r0UL#$7$^$9!#(B 19.352 +$BJ#@=85$KC10l$N%U%!%$%k$r!"(B 19.353 +$BJ#@=@h$KB8:_$7$J$$%Q%9$r;XDj$7$?>l9g!"(B 19.354 +Mercurial $B$OJ#@=@h$K;XDj$7$?L>A0$G?7$?$J%U%!%$%k$r@8@.$7$^$9!#(B 19.355 + 19.356 +\interaction{daily.copy.simple} 19.357 + 19.358 +$BJ#@=@h$,%G%#%l%/%H%j$N>l9g!"(B 19.359 +Mercurial $B$OJ#@=85%U%!%$%k$rEv3:%G%#%l%/%H%j$KJ#@=$7$^$9!#(B 19.360 + 19.361 +\interaction{daily.copy.dir-dest} 19.362 + 19.363 +$B%G%#%l%/%H%j$NJ#@=$N>l9g$O!"(B 19.364 +$B:F5"E*3n$D%G%#%l%/%H%j9=@.$rJ];}$7$D$DJ#@=$5$l$^$9!#(B 19.365 + 19.366 +\interaction{daily.copy.dir-src} 19.367 + 19.368 +$BJ#@=85$HJ#@=@h$NN>J}$,%G%#%l%/%H%j$N>l9g(B\footnote{$BLuCm(B: 19.369 +$B@h$N!V%G%#%l%/%H%j$NJ#@=$N>l9g!W$O!"(B 19.370 +$B!VJ#@=@h%G%#%l%/%H%j$,B8:_$7$J$$>l9g!W$r;X$7$^$9!#(B}$B!"(B 19.371 +$BJ#@=85$N%G%#%l%/%H%j9=B$$O!"(B 19.372 +$BJ#@=@h%G%#%l%/%H%jG[2<$G:F9=C[$5$l$^$9!#(B 19.373 + 19.374 +\interaction{daily.copy.dir-src-dest} 19.375 + 19.376 +$B<jF0$G%U%!%$%k$rJ#@=$7$?8e$G!"(B 19.377 +$BEv3:%U%!%$%k$,J#@=$G$"$k$3$H$r(B Mercurial $B$KDLCN$9$k$K$O!"(B 19.378 +\hgcmd{remove} $B$N>l9g$HF1MM$K!"(B 19.379 +\hgopt{copy}{--after} $BIU$-$G(B \hgcmd{copy} $B%3%^%s%I$r;HMQ$7$^$9!#(B 19.380 + 19.381 +\interaction{daily.copy.after} 19.382 + 19.383 +\section{Renaming files} 19.384 + 19.385 +$B%U%!%$%k$rJ#@=$9$k$h$j$b!"(B 19.386 +$B$`$7$m2~L>$NJ}$,I,MW$H$5$l$k$N$G$O$J$$$G$7$g$&$+!#(B 19.387 +$B%U%!%$%k$N2~L>$h$j$b(B 19.388 +\hgcmd{copy} $B%3%^%s%I$NJ}$r@h$K@bL@$7$?$N$O!"(B 19.389 +Mercurial $B$,J#@=$H2~L>$rK\<AE*$K$OF1Ey$K07$C$F$$$k$?$a$G$9!#(B 19.390 +$B$=$N$?$a!"(B 19.391 +$B%U%!%$%k$NJ#@=$K$*$1$k(B Mercurial $B$N5sF0$rCN$k$3$H$G!"(B 19.392 +$B%U%!%$%k$N2~L>$G4|BT$5$l$k?6$kIq$$$rCN$k$3$H$,$G$-$^$9!#(B 19.393 + 19.394 +\hgcmd{rename} $B%3%^%s%I$r;HMQ$7$?>l9g!"(B 19.395 +Mercurial $B$O8D!9$N2~L>85%U%!%$%k$NJ#@=$r:n@.$7!"(B 19.396 +$B$=$N>e$G2~L>85%U%!%$%k$r:o=|$7!"(B 19.397 +$B$=$l$i$r9=@.4IM}BP>]$+$i=|30$7$^$9!#(B 19.398 + 19.399 +\interaction{daily.rename.rename} 19.400 + 19.401 +\hgcmd{status} $B%3%^%s%I$N=PNO$+$i!"(B 19.402 +$B?7$?$KJ#@=$5$l$?%U%!%$%k$,9=@.4IM}BP>]$KDI2C$5$l!"(B 19.403 +$B2~L>85%U%!%$%k$,=|30$5$l$F$$$k$3$H$,FI$_<h$l$^$9!#(B 19.404 + 19.405 +\interaction{daily.rename.status} 19.406 + 19.407 +\hgcmd{copy} $B<B9T$N>l9g$HF1MM$K!"(B 19.408 +\hgopt{status}{-C} $B%*%W%7%g%sIU$-$G(B \hgcmd{status} $B%3%^%s%I$r<B9T$9$k$3$H$G!"(B 19.409 +$B9=@.4IM}BP>]$KDI2C$5$l$?%U%!%$%k$,<B:]$K$O!"(B 19.410 +$B:#$O:o=|$5$l$F$7$^$C$?%U%!%$%k$NJ#@=%U%!%$%k!"(B 19.411 +$B$H(B Mercurial $B$K$_$J$5$l$F$$$k$3$H$,$o$+$j$^$9!#(B 19.412 + 19.413 +\interaction{daily.rename.status-copy} 19.414 + 19.415 +\hgcmd{remove} $B$*$h$S(B \hgcmd{copy} $B$HF1MM$K!"(B 19.416 +\hgopt{rename}{--after} $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B 19.417 +$B<B:]$K2~L>$7$?8e$G(B Mercurial $B$K$=$N;]$rDLCN$9$k$3$H$,$G$-$^$9!#(B 19.418 +$B$=$l0J30$NKX$I$NE@$G!"(B 19.419 +\hgcmd{rename} $B%3%^%s%I$N?6$kIq$$JB$S$K;XDj2DG=$J%*%W%7%g%s$O!"(B 19.420 +\hgcmd{copy} $B%3%^%s%I$HF1$8$G$9!#(B 19.421 + 19.422 +\subsection{Renaming files and merging changes} 19.423 + 19.424 +Mercurial $B$N2~L>$,!VJ#@=$H:o=|!W$H$7$F<BAu$5$l$F$$$k$?$a!"(B 19.425 +$BJ#@=$N8e$G$N%^!<%8$N>l9g$HF1MM$K!"(B 19.426 +$B2~L>$N8e$G%^!<%8$r$7$?>l9g$K$OJQ99$,EAGE$5$l$^$9!#(B 19.427 + 19.428 +$B$"$k%f!<%6$,%U%!%$%k$r=$@5$7!"(B 19.429 +$BJL$N%f!<%6$,$=$N%U%!%$%k$rJL$J%U%!%$%k$K2~L>$7$?>l9g!"(B 19.430 +$BN><T$,$*8_$$$NJQ99$r%^!<%8$9$k$H!"(B 19.431 +$B0lJ}$,9T$C$?2~L>85%U%!%$%k$X$N=$@5$O2~L>@h%U%!%$%k$X$HEAGE$7$^$9(B 19.432 +$B!J$3$N?6$kIq$$$O(B``$BIaDL$N:n6H(B''$B$G4|BT$9$k$G$"$m$&N`$N$b$N$G$9$,!"(B 19.433 +$BA4$F$N9=@.4IM}%7%9%F%`$,$3$N$h$&$K?6Iq$&$o$1$G$O$"$j$^$;$s!K!#(B 19.434 + 19.435 +$BJ#@=@h$KBP$9$kJQ99$NEAGE$,!"(B 19.436 +$BMxMQ<T$K$H$C$F$*$=$i$/M-MQ$H;W$o$l$k5!G=$G$9$+$i!"(B 19.437 +$B%U%!%$%k$N2~L>$K$*$$$F$bJQ99$NEAGE$,=EMW$G$"$m$&$3$H$O!"(B 19.438 +$BL@$i$+$H$$$($k$G$7$g$&!#(B 19.439 +$BJQ99EAGE5!G=$,L5$$>l9g!"(B 19.440 +$B%U%!%$%k$N2~L>$K$h$C$FJQ99$O4JC1$K9T$/@h$r<:$C$F$7$^$&$3$H$G$7$g$&!#(B 19.441 + 19.442 +\subsection{Divergent renames and merging} 19.443 + 19.444 +$BL>A0$N9-$,$j!J(Bdiverging names$B!K$O!"(B 19.445 +$BFs?M$N3+H/<T$,$H$"$k%U%!%$%k(B--- 19.446 +$B$3$l$r(B \filename{foo} $B$H8F$S$^$9(B--- 19.447 +$B$r3F<+$N%j%]%8%H%j$G07$&$3$H$GH/@8$7$^$9!#(B 19.448 + 19.449 +\interaction{rename.divergent.clone} 19.450 + 19.451 +Anne $B$,%U%!%$%k$r(B \filename{bar} $B$K2~L>$7$^$9!#(B 19.452 + 19.453 +\interaction{rename.divergent.rename.anne} 19.454 + 19.455 +$B$=$N0lJ}$G!"(BBob $B$,%U%!%$%k$r(B \filename{quux} $B$K2~L>$7$^$9!#(B 19.456 + 19.457 +\interaction{rename.divergent.rename.bob} 19.458 + 19.459 +$B8D!9$N3+H/<T$,%U%!%$%k$NL?L>$K4X$9$k0[$J$k0U8~$rI=L@$7$?$o$1$G$9$+$i!"(B 19.460 +$BI.<T$O$3$N;vBV$r>WFM$HB*$($k$N$,NI$$$H;W$$$^$9!#(B 19.461 + 19.462 +$B$3$N>l9g$N%^!<%8$O$I$N$h$&$K?6Iq$&$Y$-$@$H;W$$$^$9$+!)(B 19.463 +$B2~L>$K$h$k;^J,$+$l$,@8$8$k%A%'%s%8%;%C%H$N%^!<%8$N>l9g!"(B 19.464 +Merging $B$O>o$K(B\emph{$BN>J}(B}$B$N2~L>@h%U%!%$%k$r0];}$7$^$9!#(B 19.465 + 19.466 +\interaction{rename.divergent.merge} 19.467 + 19.468 +$BI.<T8D?M$K$H$C$F$3$N?6$kIq$$$OBgJQ0U30$G$"$j!"(B 19.469 +$B$=$l$,$3$3$G$3$N?6$kIq$$$r@bL@$7$F$$$kM}M3$G$b$"$j$^$9!#(B 19.470 +$BI.<T$O(B Mercurial $B$K!"(B 19.471 +\filename{bar} $B$r;D$9$+!"(B 19.472 +\filename{quux} $B$r;D$9$+!"(B 19.473 +$B$"$k$$$ON>J}$r;D$9$+!"(B 19.474 +$B$H$$$&A*Br;h$K$h$k3NG'$r9T$&$3$H$r4|BT$7$F$$$?$N$G$9!#(B 19.475 + 19.476 +$B<B:]$K$O!"(B 19.477 +$B%U%!%$%k$N2~L>$r9T$C$?>l9g!"(B 19.478 +$B2~L>85%U%!%$%k$r;HMQ$7$?%S%k%I$r9T$&B>$N%U%!%$%k(B 19.479 +$B!JNc$($P(B makefile$B!K$N=$@5$,9T$o$l$k$G$"$m$&$3$H$r0UL#$7$^$9!#(B 19.480 +$B$=$N$?$a!"(B 19.481 +Anne $B$,%U%!%$%k$r2~L>$7!"(B 19.482 +$B2~L>8e$N%U%!%$%k$G%S%k%I$,<B;\$5$l$k$h$&$K(B 19.483 +\filename{Makefile} $B$r=$@5$7$?>l9g!"(B 19.484 +$B0lJ}$G(B Bob $B$,F1MM$N=$@5$rJL$JL>A0$G9T$C$F$$$^$9$+$i!"(B 19.485 +$B%^!<%8$N:]$K$O:n6HNN0h%G%#%l%/%H%j$K0[$J$kL>A0$N%U%!%$%k$N%3%T!<$,B8:_$7!"(B 19.486 +\emph{$B3n$D(B} Anne $B$H(B Bob $B$N(B 19.487 +\filename{Makefile} $B$X$N=$@52U=j$,>WFM$7$F$$$kH&$G$9!#(B 19.488 + 19.489 +$BB>$NMxMQ<T$b$3$N?6$kIq$$$K0U30@-$r46$8$F$$$k$h$&$G$9!#(B 19.490 +$B>\:Y$O(B \bug{455} $B$r;2>H$7$F$/$@$5$$!#(B 19.491 + 19.492 +\subsection{Convergent renames and merging} 19.493 + 19.494 +$B0[$J$k(B\emph{$BJ#@=85(B}$B%U%!%$%k$,F1$8%U%!%$%k$r(B\emph{$BJ#@=@h(B}$B$H$7$?:]$K!"(B 19.495 +$B2~L>$K$h$kJL$J<oN`$N>WFM$,H/@8$7$^$9!#(B 19.496 +$B$3$N>l9g!"(BMercurial $B$ODL>o$N%^!<%85!9=$r;HMQ$7!"(B 19.497 +$BE,@Z$J2r7h$X$NM6F3$rMW5a$7$F$-$^$9!#(B 19.498 + 19.499 +\subsection{Other name-related corner cases} 19.500 + 19.501 +Mercurial $B$O!"(B 19.502 +$B0lJ}$,%U%!%$%k$K;HMQ$7$?L>A0$rB>J}$,%G%#%l%/%H%j$K;HMQ$7$?>l9g$K!"(B 19.503 +$B%^!<%8$,<:GT$9$k%P%0$,D9$$4V;D$C$F$$$^$9!#(B 19.504 +$B$3$NLdBj$O(B \bug{29} $B$K>\:Y$,$"$j$^$9!#(B 19.505 + 19.506 +\interaction{issue29.go} 19.507 + 19.508 +\section{Recovering from mistakes} 19.509 + 19.510 +$B4v$D$+$N$"$j$,$A$J4V0c$$$+$iI|5l$9$k$?$a$K!"(B 19.511 +Mercurial $B$OM-MQ$J%3%^%s%I$r4v$D$+Ds6!$7$F$$$^$9!#(B 19.512 + 19.513 +\hgcmd{revert} $B%3%^%s%I$O!"(B 19.514 +$B:n6HNN0h%G%#%l%/%H%j$KBP$9$kJQ99$r<h$j>C$7$^$9!#(B 19.515 +$BNc$($P!"$&$C$+$j%U%!%$%k$r(B \hgcmd{add} $B$7$F$7$^$C$?>l9g$K!"(B 19.516 +$BDI2C$7$F$7$^$C$?%U%!%$%kL>$r;XDj$7$F(B 19.517 +\hgcmd{revert} $B$r<B9T$9$k$3$H$G!"(B 19.518 +$B%U%!%$%k$K$O0l@ZJQ99$r2C$($k;vL5$/(B 19.519 +Mercurial $B$K$h$k9=@.4IM}BP>]$+$i=|30$9$k$3$H$,$G$-$^$9!#(B 19.520 +$B%U%!%$%k$X$N4V0c$C$?JQ99$r<h$j>C$9$N$K$b(B 19.521 +\hgcmd{revert} $B$,MxMQ$G$-$^$9!#(B 19.522 + 19.523 +\hgcmd{revert} $B%3%^%s%I$OL$%3%_%C%H$JJQ99$KBP$7$FM-8z$G$"$k!"(B 19.524 +$B$H$$$&$3$H$O21$($F$*$-$^$7$g$&!#(B 19.525 +$BC"$7!"(B 19.526 +$B0lC6JQ99$r%3%_%C%H$7$?8e$GJQ99FbMF$,4V0c$$$G$"$k$3$H$K5$$,IU$$$?>l9g$G$b!"(B 19.527 +$BA*Br;h$O8B$i$l$F$O$$$^$9$,BP=h$9$k$3$H$O$G$-$^$9!#(B 19.528 + 19.529 +\hgcmd{revert} $B%3%^%s%I$K4X$9$k>\:Y$H!"(B 19.530 +$B%3%_%C%H:Q$_$NJQ99$K4X$9$kBP=h$N>\:Y$K4X$7$F$O!"(B 19.531 +\ref{chap:undo}~$B>O$r;2>H$7$F$/$@$5$$!#(B 19.532 + 19.533 +%%% Local Variables: 19.534 +%%% mode: latex 19.535 +%%% TeX-master: "00book" 19.536 +%%% End:
20.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 20.2 +++ b/ja/examples/backout Fri Aug 14 12:10:47 2009 -0700 20.3 @@ -0,0 +1,83 @@ 20.4 +#!/bin/bash 20.5 + 20.6 +# We have to fake the merges here, because they cause conflicts with 20.7 +# three-way command-line merge, and kdiff3 may not be available. 20.8 + 20.9 +export HGMERGE=$(mktemp) 20.10 +echo '#!/bin/sh' >> $HGMERGE 20.11 +echo 'echo first change > "$1"' >> $HGMERGE 20.12 +echo 'echo third change >> "$1"' >> $HGMERGE 20.13 +chmod 700 $HGMERGE 20.14 + 20.15 +#$ name: init 20.16 + 20.17 +hg init myrepo 20.18 +cd myrepo 20.19 +echo first change >> myfile 20.20 +hg add myfile 20.21 +hg commit -m 'first change' 20.22 +echo second change >> myfile 20.23 +hg commit -m 'second change' 20.24 + 20.25 +#$ name: simple 20.26 + 20.27 +hg backout -m 'back out second change' tip 20.28 +cat myfile 20.29 + 20.30 +#$ name: simple.log 20.31 +#$ ignore: \s+200[78]-.* 20.32 + 20.33 +hg log --style compact 20.34 + 20.35 +#$ name: non-tip.clone 20.36 + 20.37 +cd .. 20.38 +hg clone -r1 myrepo non-tip-repo 20.39 +cd non-tip-repo 20.40 + 20.41 +#$ name: non-tip.backout 20.42 + 20.43 +echo third change >> myfile 20.44 +hg commit -m 'third change' 20.45 +hg backout --merge -m 'back out second change' 1 20.46 + 20.47 +#$ name: non-tip.cat 20.48 +cat myfile 20.49 + 20.50 +#$ name: manual.clone 20.51 + 20.52 +cd .. 20.53 +hg clone -r1 myrepo newrepo 20.54 +cd newrepo 20.55 + 20.56 +#$ name: manual.backout 20.57 + 20.58 +echo third change >> myfile 20.59 +hg commit -m 'third change' 20.60 +hg backout -m 'back out second change' 1 20.61 + 20.62 +#$ name: manual.log 20.63 + 20.64 +hg log --style compact 20.65 + 20.66 +#$ name: manual.parents 20.67 + 20.68 +hg parents 20.69 + 20.70 +#$ name: manual.heads 20.71 + 20.72 +hg heads 20.73 + 20.74 +#$ name: manual.cat 20.75 + 20.76 +cat myfile 20.77 + 20.78 +#$ name: manual.merge 20.79 + 20.80 +hg merge 20.81 +hg commit -m 'merged backout with previous tip' 20.82 +cat myfile 20.83 + 20.84 +#$ name: 20.85 + 20.86 +rm $HGMERGE
21.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 21.2 +++ b/ja/examples/backout.init.out Fri Aug 14 12:10:47 2009 -0700 21.3 @@ -0,0 +1,7 @@ 21.4 +$ \textbf{hg init myrepo} 21.5 +$ \textbf{cd myrepo} 21.6 +$ \textbf{echo first change >> myfile} 21.7 +$ \textbf{hg add myfile} 21.8 +$ \textbf{hg commit -m 'first change'} 21.9 +$ \textbf{echo second change >> myfile} 21.10 +$ \textbf{hg commit -m 'second change'}
22.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 22.2 +++ b/ja/examples/backout.manual.backout.out Fri Aug 14 12:10:47 2009 -0700 22.3 @@ -0,0 +1,7 @@ 22.4 +$ \textbf{echo third change >> myfile} 22.5 +$ \textbf{hg commit -m 'third change'} 22.6 +$ \textbf{hg backout -m 'back out second change' 1} 22.7 +reverting myfile 22.8 +changeset backs out changeset 22.9 +the backout changeset is a new head - do not forget to merge 22.10 +(use "backout --merge" if you want to auto-merge)
23.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 23.2 +++ b/ja/examples/backout.manual.cat.out Fri Aug 14 12:10:47 2009 -0700 23.3 @@ -0,0 +1,2 @@ 23.4 +$ \textbf{cat myfile} 23.5 +first change
24.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 24.2 +++ b/ja/examples/backout.manual.clone.out Fri Aug 14 12:10:47 2009 -0700 24.3 @@ -0,0 +1,9 @@ 24.4 +$ \textbf{cd ..} 24.5 +$ \textbf{hg clone -r1 myrepo newrepo} 24.6 +requesting all changes 24.7 +adding changesets 24.8 +adding manifests 24.9 +adding file changes 24.10 +added 2 changesets with 2 changes to 1 files 24.11 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 24.12 +$ \textbf{cd newrepo}
25.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 25.2 +++ b/ja/examples/backout.manual.heads.out Fri Aug 14 12:10:47 2009 -0700 25.3 @@ -0,0 +1,13 @@ 25.4 +$ \textbf{hg heads} 25.5 +changeset: 25.6 +tag: tip 25.7 +parent: 25.8 +user: Bryan O'Sullivan <bos@serpentine.com> 25.9 + 25.10 +summary: back out second change 25.11 + 25.12 +changeset: 25.13 +user: Bryan O'Sullivan <bos@serpentine.com> 25.14 + 25.15 +summary: third change 25.16 +
26.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 26.2 +++ b/ja/examples/backout.manual.log.out Fri Aug 14 12:10:47 2009 -0700 26.3 @@ -0,0 +1,13 @@ 26.4 +$ \textbf{hg log --style compact} 26.5 +3[tip]:1 26.6 + back out second change 26.7 + 26.8 +2 26.9 + third change 26.10 + 26.11 +1 26.12 + second change 26.13 + 26.14 +0 26.15 + first change 26.16 +
27.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 27.2 +++ b/ja/examples/backout.manual.merge.out Fri Aug 14 12:10:47 2009 -0700 27.3 @@ -0,0 +1,8 @@ 27.4 +$ \textbf{hg merge} 27.5 +merging myfile 27.6 +0 files updated, 1 files merged, 0 files removed, 0 files unresolved 27.7 +(branch merge, don't forget to commit) 27.8 +$ \textbf{hg commit -m 'merged backout with previous tip'} 27.9 +$ \textbf{cat myfile} 27.10 +first change 27.11 +third change
28.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 28.2 +++ b/ja/examples/backout.manual.parents.out Fri Aug 14 12:10:47 2009 -0700 28.3 @@ -0,0 +1,8 @@ 28.4 +$ \textbf{hg parents} 28.5 +changeset: 28.6 +tag: tip 28.7 +parent: 28.8 +user: Bryan O'Sullivan <bos@serpentine.com> 28.9 + 28.10 +summary: back out second change 28.11 +
29.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 29.2 +++ b/ja/examples/backout.non-tip.backout.out Fri Aug 14 12:10:47 2009 -0700 29.3 @@ -0,0 +1,9 @@ 29.4 +$ \textbf{echo third change >> myfile} 29.5 +$ \textbf{hg commit -m 'third change'} 29.6 +$ \textbf{hg backout --merge -m 'back out second change' 1} 29.7 +reverting myfile 29.8 +changeset backs out changeset 29.9 +merging with changeset 29.10 +merging myfile 29.11 +0 files updated, 1 files merged, 0 files removed, 0 files unresolved 29.12 +(branch merge, don't forget to commit)
30.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 30.2 +++ b/ja/examples/backout.non-tip.cat.out Fri Aug 14 12:10:47 2009 -0700 30.3 @@ -0,0 +1,3 @@ 30.4 +$ \textbf{cat myfile} 30.5 +first change 30.6 +third change
31.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 31.2 +++ b/ja/examples/backout.non-tip.clone.out Fri Aug 14 12:10:47 2009 -0700 31.3 @@ -0,0 +1,9 @@ 31.4 +$ \textbf{cd ..} 31.5 +$ \textbf{hg clone -r1 myrepo non-tip-repo} 31.6 +requesting all changes 31.7 +adding changesets 31.8 +adding manifests 31.9 +adding file changes 31.10 +added 2 changesets with 2 changes to 1 files 31.11 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 31.12 +$ \textbf{cd non-tip-repo}
32.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 32.2 +++ b/ja/examples/backout.simple.log.out Fri Aug 14 12:10:47 2009 -0700 32.3 @@ -0,0 +1,10 @@ 32.4 +$ \textbf{hg log --style compact} 32.5 +2[tip] 32.6 + back out second change 32.7 + 32.8 +1 32.9 + second change 32.10 + 32.11 +0 32.12 + first change 32.13 +
33.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 33.2 +++ b/ja/examples/backout.simple.out Fri Aug 14 12:10:47 2009 -0700 33.3 @@ -0,0 +1,5 @@ 33.4 +$ \textbf{hg backout -m 'back out second change' tip} 33.5 +reverting myfile 33.6 +changeset backs out changeset 33.7 +$ \textbf{cat myfile} 33.8 +first change
34.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 34.2 +++ b/ja/examples/bisect Fri Aug 14 12:10:47 2009 -0700 34.3 @@ -0,0 +1,89 @@ 34.4 +#!/bin/bash 34.5 + 34.6 +echo '[extensions]' >> $HGRC 34.7 +#echo 'hgext.bisect =' >> $HGRC 34.8 + 34.9 +# XXX There's some kind of horrible nondeterminism in the execution of 34.10 +# bisect at the moment. Ugh. 34.11 + 34.12 +#$ ignore: .* 34.13 + 34.14 +#$ name: init 34.15 + 34.16 +hg init mybug 34.17 +cd mybug 34.18 + 34.19 +#$ name: commits 34.20 + 34.21 +buggy_change=22 34.22 + 34.23 +for (( i = 0; i < 35; i++ )); do 34.24 + if [[ $i = $buggy_change ]]; then 34.25 + echo 'i have a gub' > myfile$i 34.26 + hg commit -q -A -m 'buggy changeset' 34.27 + else 34.28 + echo 'nothing to see here, move along' > myfile$i 34.29 + hg commit -q -A -m 'normal changeset' 34.30 + fi 34.31 +done 34.32 + 34.33 +#$ name: help 34.34 + 34.35 +hg help bisect 34.36 +hg bisect help 34.37 + 34.38 +#$ name: search.init 34.39 + 34.40 +hg bisect init 34.41 + 34.42 +#$ name: search.bad-init 34.43 + 34.44 +hg bisect bad 34.45 + 34.46 +#$ name: search.good-init 34.47 + 34.48 +hg bisect good 10 34.49 + 34.50 +#$ name: search.step1 34.51 + 34.52 +if grep -q 'i have a gub' * 34.53 +then 34.54 + result=bad 34.55 +else 34.56 + result=good 34.57 +fi 34.58 + 34.59 +echo this revision is $result 34.60 +hg bisect $result 34.61 + 34.62 +#$ name: search.mytest 34.63 + 34.64 +mytest() { 34.65 + if grep -q 'i have a gub' * 34.66 + then 34.67 + result=bad 34.68 + else 34.69 + result=good 34.70 + fi 34.71 + 34.72 + echo this revision is $result 34.73 + hg bisect $result 34.74 +} 34.75 + 34.76 +#$ name: search.step2 34.77 + 34.78 +mytest 34.79 + 34.80 +#$ name: search.rest 34.81 + 34.82 +mytest 34.83 +mytest 34.84 +mytest 34.85 + 34.86 +#$ name: search.reset 34.87 + 34.88 +hg bisect reset 34.89 + 34.90 +#$ name: 34.91 + 34.92 +exit 0
35.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 35.2 +++ b/ja/examples/bisect.commits.out Fri Aug 14 12:10:47 2009 -0700 35.3 @@ -0,0 +1,10 @@ 35.4 + 35.5 + 35.6 + 35.7 + 35.8 + 35.9 + 35.10 + 35.11 + 35.12 + 35.13 +
36.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 36.2 +++ b/ja/examples/bisect.help.out Fri Aug 14 12:10:47 2009 -0700 36.3 @@ -0,0 +1,29 @@ 36.4 + 36.5 + 36.6 + 36.7 + 36.8 + 36.9 + 36.10 + 36.11 + 36.12 + 36.13 + 36.14 + 36.15 + 36.16 + 36.17 + 36.18 + 36.19 + 36.20 + 36.21 + 36.22 + 36.23 + 36.24 + 36.25 + 36.26 + 36.27 + 36.28 + 36.29 + 36.30 + 36.31 + 36.32 +
37.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 37.2 +++ b/ja/examples/bisect.init.out Fri Aug 14 12:10:47 2009 -0700 37.3 @@ -0,0 +1,2 @@ 37.4 + 37.5 +
38.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 38.2 +++ b/ja/examples/bisect.search.bad-init.out Fri Aug 14 12:10:47 2009 -0700 38.3 @@ -0,0 +1,1 @@ 38.4 +
39.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 39.2 +++ b/ja/examples/bisect.search.good-init.out Fri Aug 14 12:10:47 2009 -0700 39.3 @@ -0,0 +1,3 @@ 39.4 + 39.5 + 39.6 +
40.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 40.2 +++ b/ja/examples/bisect.search.init.out Fri Aug 14 12:10:47 2009 -0700 40.3 @@ -0,0 +1,3 @@ 40.4 + 40.5 + 40.6 +
41.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 41.2 +++ b/ja/examples/bisect.search.mytest.out Fri Aug 14 12:10:47 2009 -0700 41.3 @@ -0,0 +1,10 @@ 41.4 + 41.5 + 41.6 + 41.7 + 41.8 + 41.9 + 41.10 + 41.11 + 41.12 + 41.13 +
42.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 42.2 +++ b/ja/examples/bisect.search.reset.out Fri Aug 14 12:10:47 2009 -0700 42.3 @@ -0,0 +1,1 @@ 42.4 +
43.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 43.2 +++ b/ja/examples/bisect.search.rest.out Fri Aug 14 12:10:47 2009 -0700 43.3 @@ -0,0 +1,20 @@ 43.4 + 43.5 + 43.6 + 43.7 + 43.8 + 43.9 + 43.10 + 43.11 + 43.12 + 43.13 + 43.14 + 43.15 + 43.16 + 43.17 + 43.18 + 43.19 + 43.20 + 43.21 + 43.22 + 43.23 +
44.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 44.2 +++ b/ja/examples/bisect.search.step1.out Fri Aug 14 12:10:47 2009 -0700 44.3 @@ -0,0 +1,11 @@ 44.4 + 44.5 + 44.6 + 44.7 + 44.8 + 44.9 + 44.10 + 44.11 + 44.12 + 44.13 + 44.14 +
45.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 45.2 +++ b/ja/examples/bisect.search.step2.out Fri Aug 14 12:10:47 2009 -0700 45.3 @@ -0,0 +1,4 @@ 45.4 + 45.5 + 45.6 + 45.7 +
46.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 46.2 +++ b/ja/examples/branch-named Fri Aug 14 12:10:47 2009 -0700 46.3 @@ -0,0 +1,74 @@ 46.4 +#!/bin/bash 46.5 + 46.6 +hg init a 46.7 +cd a 46.8 +echo hello > myfile 46.9 +hg commit -A -m 'Initial commit' 46.10 + 46.11 +#$ name: branches 46.12 + 46.13 +hg tip 46.14 +hg branches 46.15 + 46.16 +#$ name: branch 46.17 + 46.18 +hg branch 46.19 + 46.20 +#$ name: create 46.21 + 46.22 +hg branch foo 46.23 +hg branch 46.24 + 46.25 +#$ name: status 46.26 + 46.27 +hg status 46.28 +hg tip 46.29 + 46.30 +#$ name: commit 46.31 + 46.32 +echo 'hello again' >> myfile 46.33 +hg commit -m 'Second commit' 46.34 +hg tip 46.35 + 46.36 +#$ name: rebranch 46.37 + 46.38 +hg branch 46.39 +hg branch bar 46.40 +echo new file > newfile 46.41 +hg commit -A -m 'Third commit' 46.42 +hg tip 46.43 + 46.44 +#$ name: parents 46.45 + 46.46 +hg parents 46.47 +hg branches 46.48 + 46.49 +#$ name: update-switchy 46.50 + 46.51 +hg update foo 46.52 +hg parents 46.53 +hg update bar 46.54 +hg parents 46.55 + 46.56 +#$ name: update-nothing 46.57 + 46.58 +hg update foo 46.59 +hg update 46.60 + 46.61 +#$ name: foo-commit 46.62 + 46.63 +echo something > somefile 46.64 +hg commit -A -m 'New file' 46.65 +hg heads 46.66 + 46.67 +#$ name: update-bar 46.68 + 46.69 +hg update bar 46.70 +hg update -C bar 46.71 + 46.72 +#$ name: merge 46.73 + 46.74 +hg branch 46.75 +hg merge 46.76 +hg commit -m 'Merge' 46.77 +hg tip
47.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 47.2 +++ b/ja/examples/branch-named.branch.out Fri Aug 14 12:10:47 2009 -0700 47.3 @@ -0,0 +1,2 @@ 47.4 +$ \textbf{hg branch} 47.5 +default
48.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 48.2 +++ b/ja/examples/branch-named.branches.out Fri Aug 14 12:10:47 2009 -0700 48.3 @@ -0,0 +1,9 @@ 48.4 +$ \textbf{hg tip} 48.5 +changeset: 48.6 +tag: tip 48.7 +user: Bryan O'Sullivan <bos@serpentine.com> 48.8 + 48.9 +summary: Initial commit 48.10 + 48.11 +$ \textbf{hg branches} 48.12 +default
49.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 49.2 +++ b/ja/examples/branch-named.commit.out Fri Aug 14 12:10:47 2009 -0700 49.3 @@ -0,0 +1,10 @@ 49.4 +$ \textbf{echo 'hello again' >> myfile} 49.5 +$ \textbf{hg commit -m 'Second commit'} 49.6 +$ \textbf{hg tip} 49.7 +changeset: 49.8 +branch: foo 49.9 +tag: tip 49.10 +user: Bryan O'Sullivan <bos@serpentine.com> 49.11 + 49.12 +summary: Second commit 49.13 +
50.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 50.2 +++ b/ja/examples/branch-named.create.out Fri Aug 14 12:10:47 2009 -0700 50.3 @@ -0,0 +1,4 @@ 50.4 +$ \textbf{hg branch foo} 50.5 +marked working directory as branch foo 50.6 +$ \textbf{hg branch} 50.7 +foo
51.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 51.2 +++ b/ja/examples/branch-named.foo-commit.out Fri Aug 14 12:10:47 2009 -0700 51.3 @@ -0,0 +1,18 @@ 51.4 +$ \textbf{echo something > somefile} 51.5 +$ \textbf{hg commit -A -m 'New file'} 51.6 +adding somefile 51.7 +$ \textbf{hg heads} 51.8 +changeset: 51.9 +branch: foo 51.10 +tag: tip 51.11 +parent: 51.12 +user: Bryan O'Sullivan <bos@serpentine.com> 51.13 + 51.14 +summary: New file 51.15 + 51.16 +changeset: 51.17 +branch: bar 51.18 +user: Bryan O'Sullivan <bos@serpentine.com> 51.19 + 51.20 +summary: Third commit 51.21 +
52.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 52.2 +++ b/ja/examples/branch-named.merge.out Fri Aug 14 12:10:47 2009 -0700 52.3 @@ -0,0 +1,16 @@ 52.4 +$ \textbf{hg branch} 52.5 +bar 52.6 +$ \textbf{hg merge} 52.7 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 52.8 +(branch merge, don't forget to commit) 52.9 +$ \textbf{hg commit -m 'Merge'} 52.10 +$ \textbf{hg tip} 52.11 +changeset: 52.12 +branch: bar 52.13 +tag: tip 52.14 +parent: 52.15 +parent: 52.16 +user: Bryan O'Sullivan <bos@serpentine.com> 52.17 + 52.18 +summary: Merge 52.19 +
53.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 53.2 +++ b/ja/examples/branch-named.parents.out Fri Aug 14 12:10:47 2009 -0700 53.3 @@ -0,0 +1,12 @@ 53.4 +$ \textbf{hg parents} 53.5 +changeset: 53.6 +branch: bar 53.7 +tag: tip 53.8 +user: Bryan O'Sullivan <bos@serpentine.com> 53.9 + 53.10 +summary: Third commit 53.11 + 53.12 +$ \textbf{hg branches} 53.13 +bar 53.14 +foo (inactive) 53.15 +default (inactive)
54.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 54.2 +++ b/ja/examples/branch-named.rebranch.out Fri Aug 14 12:10:47 2009 -0700 54.3 @@ -0,0 +1,15 @@ 54.4 +$ \textbf{hg branch} 54.5 +foo 54.6 +$ \textbf{hg branch bar} 54.7 +marked working directory as branch bar 54.8 +$ \textbf{echo new file > newfile} 54.9 +$ \textbf{hg commit -A -m 'Third commit'} 54.10 +adding newfile 54.11 +$ \textbf{hg tip} 54.12 +changeset: 54.13 +branch: bar 54.14 +tag: tip 54.15 +user: Bryan O'Sullivan <bos@serpentine.com> 54.16 + 54.17 +summary: Third commit 54.18 +
55.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 55.2 +++ b/ja/examples/branch-named.status.out Fri Aug 14 12:10:47 2009 -0700 55.3 @@ -0,0 +1,8 @@ 55.4 +$ \textbf{hg status} 55.5 +$ \textbf{hg tip} 55.6 +changeset: 55.7 +tag: tip 55.8 +user: Bryan O'Sullivan <bos@serpentine.com> 55.9 + 55.10 +summary: Initial commit 55.11 +
56.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 56.2 +++ b/ja/examples/branch-named.update-bar.out Fri Aug 14 12:10:47 2009 -0700 56.3 @@ -0,0 +1,4 @@ 56.4 +$ \textbf{hg update bar} 56.5 +abort: update spans branches, use 'hg merge' or 'hg update -C' to lose changes 56.6 +$ \textbf{hg update -C bar} 56.7 +1 files updated, 0 files merged, 1 files removed, 0 files unresolved
57.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 57.2 +++ b/ja/examples/branch-named.update-foo.out Fri Aug 14 12:10:47 2009 -0700 57.3 @@ -0,0 +1,13 @@ 57.4 +$ \textbf{hg update foo} 57.5 +0 files updated, 0 files merged, 1 files removed, 0 files unresolved 57.6 +$ \textbf{hg update} 57.7 +0 files updated, 0 files merged, 0 files removed, 0 files unresolved 57.8 +$ \textbf{hg parents} 57.9 +changeset: 57.10 +branch: foo 57.11 +user: Bryan O'Sullivan <bos@serpentine.com> 57.12 + 57.13 +summary: Second commit 57.14 + 57.15 +$ \textbf{hg update bar} 57.16 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved
58.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 58.2 +++ b/ja/examples/branch-named.update-nothing.out Fri Aug 14 12:10:47 2009 -0700 58.3 @@ -0,0 +1,4 @@ 58.4 +$ \textbf{hg update foo} 58.5 +0 files updated, 0 files merged, 1 files removed, 0 files unresolved 58.6 +$ \textbf{hg update} 58.7 +0 files updated, 0 files merged, 0 files removed, 0 files unresolved
59.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 59.2 +++ b/ja/examples/branch-named.update-switchy.out Fri Aug 14 12:10:47 2009 -0700 59.3 @@ -0,0 +1,19 @@ 59.4 +$ \textbf{hg update foo} 59.5 +0 files updated, 0 files merged, 1 files removed, 0 files unresolved 59.6 +$ \textbf{hg parents} 59.7 +changeset: 59.8 +branch: foo 59.9 +user: Bryan O'Sullivan <bos@serpentine.com> 59.10 + 59.11 +summary: Second commit 59.12 + 59.13 +$ \textbf{hg update bar} 59.14 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 59.15 +$ \textbf{hg parents} 59.16 +changeset: 59.17 +branch: bar 59.18 +tag: tip 59.19 +user: Bryan O'Sullivan <bos@serpentine.com> 59.20 + 59.21 +summary: Third commit 59.22 +
60.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 60.2 +++ b/ja/examples/branch-named.update.out Fri Aug 14 12:10:47 2009 -0700 60.3 @@ -0,0 +1,13 @@ 60.4 +$ \textbf{hg update foo} 60.5 +0 files updated, 0 files merged, 1 files removed, 0 files unresolved 60.6 +$ \textbf{hg update} 60.7 +0 files updated, 0 files merged, 0 files removed, 0 files unresolved 60.8 +$ \textbf{hg parent} 60.9 +changeset: 60.10 +branch: foo 60.11 +user: Bryan O'Sullivan <bos@serpentine.com> 60.12 + 60.13 +summary: Second commit 60.14 + 60.15 +$ \textbf{hg update bar} 60.16 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved
61.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 61.2 +++ b/ja/examples/branch-repo Fri Aug 14 12:10:47 2009 -0700 61.3 @@ -0,0 +1,48 @@ 61.4 +#!/bin/bash 61.5 + 61.6 +hg init myproject 61.7 +cd myproject 61.8 +echo hello > myfile 61.9 +hg commit -A -m 'Initial commit' 61.10 +cd .. 61.11 + 61.12 +#$ name: tag 61.13 + 61.14 +cd myproject 61.15 +hg tag v1.0 61.16 + 61.17 +#$ name: clone 61.18 + 61.19 +cd .. 61.20 +hg clone myproject myproject-1.0.1 61.21 + 61.22 +#$ name: bugfix 61.23 + 61.24 +hg clone myproject-1.0.1 my-1.0.1-bugfix 61.25 +cd my-1.0.1-bugfix 61.26 +echo 'I fixed a bug using only echo!' >> myfile 61.27 +hg commit -m 'Important fix for 1.0.1' 61.28 +#$ ignore: /tmp/branch-repo.* 61.29 +hg push 61.30 + 61.31 +#$ name: new 61.32 + 61.33 +cd .. 61.34 +hg clone myproject my-feature 61.35 +cd my-feature 61.36 +echo 'This sure is an exciting new feature!' > mynewfile 61.37 +hg commit -A -m 'New feature' 61.38 +hg push 61.39 + 61.40 +#$ name: pull 61.41 + 61.42 +cd .. 61.43 +hg clone myproject myproject-merge 61.44 +cd myproject-merge 61.45 +hg pull ../myproject-1.0.1 61.46 + 61.47 +#$ name: merge 61.48 + 61.49 +hg merge 61.50 +hg commit -m 'Merge bugfix from 1.0.1 branch' 61.51 +hg push
62.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 62.2 +++ b/ja/examples/branch-repo.bugfix.out Fri Aug 14 12:10:47 2009 -0700 62.3 @@ -0,0 +1,12 @@ 62.4 +$ \textbf{hg clone myproject-1.0.1 my-1.0.1-bugfix} 62.5 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved 62.6 +$ \textbf{cd my-1.0.1-bugfix} 62.7 +$ \textbf{echo 'I fixed a bug using only echo!' >> myfile} 62.8 +$ \textbf{hg commit -m 'Important fix for 1.0.1'} 62.9 +$ \textbf{hg push} 62.10 +pushing to /tmp/branch-repo4rF-PL/myproject-1.0.1 62.11 +searching for changes 62.12 +adding changesets 62.13 +adding manifests 62.14 +adding file changes 62.15 +added 1 changesets with 1 changes to 1 files
63.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 63.2 +++ b/ja/examples/branch-repo.clone.out Fri Aug 14 12:10:47 2009 -0700 63.3 @@ -0,0 +1,3 @@ 63.4 +$ \textbf{cd ..} 63.5 +$ \textbf{hg clone myproject myproject-1.0.1} 63.6 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved
64.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 64.2 +++ b/ja/examples/branch-repo.merge.out Fri Aug 14 12:10:47 2009 -0700 64.3 @@ -0,0 +1,11 @@ 64.4 +$ \textbf{hg merge} 64.5 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 64.6 +(branch merge, don't forget to commit) 64.7 +$ \textbf{hg commit -m 'Merge bugfix from 1.0.1 branch'} 64.8 +$ \textbf{hg push} 64.9 +pushing to 64.10 +searching for changes 64.11 +adding changesets 64.12 +adding manifests 64.13 +adding file changes 64.14 +added 2 changesets with 1 changes to 1 files
65.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 65.2 +++ b/ja/examples/branch-repo.new.out Fri Aug 14 12:10:47 2009 -0700 65.3 @@ -0,0 +1,14 @@ 65.4 +$ \textbf{cd ..} 65.5 +$ \textbf{hg clone myproject my-feature} 65.6 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved 65.7 +$ \textbf{cd my-feature} 65.8 +$ \textbf{echo 'This sure is an exciting new feature!' > mynewfile} 65.9 +$ \textbf{hg commit -A -m 'New feature'} 65.10 +adding mynewfile 65.11 +$ \textbf{hg push} 65.12 +pushing to 65.13 +searching for changes 65.14 +adding changesets 65.15 +adding manifests 65.16 +adding file changes 65.17 +added 1 changesets with 1 changes to 1 files
66.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 66.2 +++ b/ja/examples/branch-repo.pull.out Fri Aug 14 12:10:47 2009 -0700 66.3 @@ -0,0 +1,12 @@ 66.4 +$ \textbf{cd ..} 66.5 +$ \textbf{hg clone myproject myproject-merge} 66.6 +3 files updated, 0 files merged, 0 files removed, 0 files unresolved 66.7 +$ \textbf{cd myproject-merge} 66.8 +$ \textbf{hg pull ../myproject-1.0.1} 66.9 +pulling from ../myproject-1.0.1 66.10 +searching for changes 66.11 +adding changesets 66.12 +adding manifests 66.13 +adding file changes 66.14 +added 1 changesets with 1 changes to 1 files (+1 heads) 66.15 +(run 'hg heads' to see heads, 'hg merge' to merge)
67.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 67.2 +++ b/ja/examples/branch-repo.tag.out Fri Aug 14 12:10:47 2009 -0700 67.3 @@ -0,0 +1,2 @@ 67.4 +$ \textbf{cd myproject} 67.5 +$ \textbf{hg tag v1.0}
68.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 68.2 +++ b/ja/examples/branching Fri Aug 14 12:10:47 2009 -0700 68.3 @@ -0,0 +1,63 @@ 68.4 +#!/bin/bash 68.5 + 68.6 +#$ name: init 68.7 + 68.8 +hg init main 68.9 +cd main 68.10 +echo 'This is a boring feature.' > myfile 68.11 +hg commit -A -m 'We have reached an important milestone!' 68.12 + 68.13 +#$ name: tag 68.14 + 68.15 +hg tag v1.0 68.16 +hg tip 68.17 +hg tags 68.18 + 68.19 +#$ name: main 68.20 + 68.21 +cd ../main 68.22 +echo 'This is exciting and new!' >> myfile 68.23 +hg commit -m 'Add a new feature' 68.24 +cat myfile 68.25 + 68.26 +#$ name: update 68.27 + 68.28 +cd .. 68.29 +hg clone -U main main-old 68.30 +cd main-old 68.31 +hg update v1.0 68.32 +cat myfile 68.33 + 68.34 +#$ name: clone 68.35 + 68.36 +cd .. 68.37 +hg clone -rv1.0 main stable 68.38 + 68.39 +#$ name: stable 68.40 + 68.41 +hg clone stable stable-fix 68.42 +cd stable-fix 68.43 +echo 'This is a fix to a boring feature.' > myfile 68.44 +hg commit -m 'Fix a bug' 68.45 +#$ ignore: /tmp/branching.* 68.46 +hg push 68.47 + 68.48 +#$ name: 68.49 + 68.50 +export HGMERGE=$(mktemp) 68.51 +echo '#!/bin/sh' > $HGMERGE 68.52 +echo 'echo "This is a fix to a boring feature." > "$1"' >> $HGMERGE 68.53 +echo 'echo "This is exciting and new!" >> "$1"' >> $HGMERGE 68.54 +chmod 700 $HGMERGE 68.55 + 68.56 +#$ name: merge 68.57 + 68.58 +cd ../main 68.59 +hg pull ../stable 68.60 +hg merge 68.61 +hg commit -m 'Bring in bugfix from stable branch' 68.62 +cat myfile 68.63 + 68.64 +#$ name: 68.65 + 68.66 +rm $HGMERGE
69.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 69.2 +++ b/ja/examples/branching.clone.out Fri Aug 14 12:10:47 2009 -0700 69.3 @@ -0,0 +1,8 @@ 69.4 +$ \textbf{cd ..} 69.5 +$ \textbf{hg clone -rv1.0 main stable} 69.6 +requesting all changes 69.7 +adding changesets 69.8 +adding manifests 69.9 +adding file changes 69.10 +added 1 changesets with 1 changes to 1 files 69.11 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved
70.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 70.2 +++ b/ja/examples/branching.init.out Fri Aug 14 12:10:47 2009 -0700 70.3 @@ -0,0 +1,5 @@ 70.4 +$ \textbf{hg init main} 70.5 +$ \textbf{cd main} 70.6 +$ \textbf{echo 'This is a boring feature.' > myfile} 70.7 +$ \textbf{hg commit -A -m 'We have reached an important milestone!'} 70.8 +adding myfile
71.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 71.2 +++ b/ja/examples/branching.main.out Fri Aug 14 12:10:47 2009 -0700 71.3 @@ -0,0 +1,6 @@ 71.4 +$ \textbf{cd ../main} 71.5 +$ \textbf{echo 'This is exciting and new!' >> myfile} 71.6 +$ \textbf{hg commit -m 'Add a new feature'} 71.7 +$ \textbf{cat myfile} 71.8 +This is a boring feature. 71.9 +This is exciting and new!
72.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 72.2 +++ b/ja/examples/branching.merge.out Fri Aug 14 12:10:47 2009 -0700 72.3 @@ -0,0 +1,17 @@ 72.4 +$ \textbf{cd ../main} 72.5 +$ \textbf{hg pull ../stable} 72.6 +pulling from ../stable 72.7 +searching for changes 72.8 +adding changesets 72.9 +adding manifests 72.10 +adding file changes 72.11 +added 1 changesets with 1 changes to 1 files (+1 heads) 72.12 +(run 'hg heads' to see heads, 'hg merge' to merge) 72.13 +$ \textbf{hg merge} 72.14 +merging myfile 72.15 +0 files updated, 1 files merged, 0 files removed, 0 files unresolved 72.16 +(branch merge, don't forget to commit) 72.17 +$ \textbf{hg commit -m 'Bring in bugfix from stable branch'} 72.18 +$ \textbf{cat myfile} 72.19 +This is a fix to a boring feature. 72.20 +This is exciting and new!
73.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 73.2 +++ b/ja/examples/branching.stable.out Fri Aug 14 12:10:47 2009 -0700 73.3 @@ -0,0 +1,12 @@ 73.4 +$ \textbf{hg clone stable stable-fix} 73.5 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 73.6 +$ \textbf{cd stable-fix} 73.7 +$ \textbf{echo 'This is a fix to a boring feature.' > myfile} 73.8 +$ \textbf{hg commit -m 'Fix a bug'} 73.9 +$ \textbf{hg push} 73.10 +pushing to /tmp/branchingfJgZac/stable 73.11 +searching for changes 73.12 +adding changesets 73.13 +adding manifests 73.14 +adding file changes 73.15 +added 1 changesets with 1 changes to 1 files
74.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 74.2 +++ b/ja/examples/branching.tag.out Fri Aug 14 12:10:47 2009 -0700 74.3 @@ -0,0 +1,11 @@ 74.4 +$ \textbf{hg tag v1.0} 74.5 +$ \textbf{hg tip} 74.6 +changeset: 74.7 +tag: tip 74.8 +user: Bryan O'Sullivan <bos@serpentine.com> 74.9 + 74.10 +summary: Added tag v1.0 for changeset 74.11 + 74.12 +$ \textbf{hg tags} 74.13 +tip 74.14 +v1.0
75.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 75.2 +++ b/ja/examples/branching.update.out Fri Aug 14 12:10:47 2009 -0700 75.3 @@ -0,0 +1,7 @@ 75.4 +$ \textbf{cd ..} 75.5 +$ \textbf{hg clone -U main main-old} 75.6 +$ \textbf{cd main-old} 75.7 +$ \textbf{hg update v1.0} 75.8 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 75.9 +$ \textbf{cat myfile} 75.10 +This is a boring feature.
76.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 76.2 +++ b/ja/examples/cmdref Fri Aug 14 12:10:47 2009 -0700 76.3 @@ -0,0 +1,22 @@ 76.4 +#!/bin/bash 76.5 + 76.6 +hg init diff 76.7 +cd diff 76.8 +cat > myfile.c <<EOF 76.9 +int myfunc() 76.10 +{ 76.11 + return 1; 76.12 +} 76.13 +EOF 76.14 +hg ci -Ama 76.15 + 76.16 +sed -ie 's/return 1/return 10/' myfile.c 76.17 + 76.18 +#$ name: diff-p 76.19 + 76.20 +echo '[diff]' >> $HGRC 76.21 +echo 'showfunc = False' >> $HGRC 76.22 + 76.23 +hg diff 76.24 + 76.25 +hg diff -p
77.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 77.2 +++ b/ja/examples/cmdref.diff-p.out Fri Aug 14 12:10:47 2009 -0700 77.3 @@ -0,0 +1,22 @@ 77.4 +$ \textbf{echo '[diff]' >> $HGRC} 77.5 +$ \textbf{echo 'showfunc = False' >> $HGRC} 77.6 +$ \textbf{hg diff} 77.7 +diff -r myfile.c 77.8 + 77.9 + 77.10 +@@ -1,4 +1,4 @@ 77.11 + int myfunc() 77.12 + \{ 77.13 +- return 1; 77.14 ++ return 10; 77.15 + \} 77.16 +$ \textbf{hg diff -p} 77.17 +diff -r myfile.c 77.18 + 77.19 + 77.20 +@@ -1,4 +1,4 @@ int myfunc() 77.21 + int myfunc() 77.22 + \{ 77.23 +- return 1; 77.24 ++ return 10; 77.25 + \}
78.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 78.2 +++ b/ja/examples/daily.copy Fri Aug 14 12:10:47 2009 -0700 78.3 @@ -0,0 +1,82 @@ 78.4 +#!/bin/bash 78.5 + 78.6 +#$ name: init 78.7 + 78.8 +hg init my-copy 78.9 +cd my-copy 78.10 +echo line > file 78.11 +hg add file 78.12 +hg commit -m 'Added a file' 78.13 + 78.14 +#$ name: clone 78.15 + 78.16 +cd .. 78.17 +hg clone my-copy your-copy 78.18 + 78.19 +#$ name: copy 78.20 + 78.21 +cd my-copy 78.22 +hg copy file new-file 78.23 + 78.24 +#$ name: status 78.25 + 78.26 +hg status 78.27 + 78.28 +#$ name: status-copy 78.29 + 78.30 +hg status -C 78.31 +hg commit -m 'Copied file' 78.32 + 78.33 +#$ name: other 78.34 + 78.35 +cd ../your-copy 78.36 +echo 'new contents' >> file 78.37 +hg commit -m 'Changed file' 78.38 + 78.39 +#$ name: cat 78.40 + 78.41 +cat file 78.42 +cat ../my-copy/new-file 78.43 + 78.44 +#$ name: merge 78.45 + 78.46 +hg pull ../my-copy 78.47 +hg merge 78.48 +cat new-file 78.49 + 78.50 +#$ name: 78.51 + 78.52 +cd .. 78.53 +hg init copy-example 78.54 +cd copy-example 78.55 +echo a > a 78.56 +echo b > b 78.57 +mkdir c 78.58 +mkdir c/a 78.59 +echo c > c/a/c 78.60 +hg ci -Ama 78.61 + 78.62 +#$ name: simple 78.63 + 78.64 +mkdir k 78.65 +hg copy a k 78.66 +ls k 78.67 + 78.68 +#$ name: dir-dest 78.69 + 78.70 +mkdir d 78.71 +hg copy a b d 78.72 +ls d 78.73 + 78.74 +#$ name: dir-src 78.75 + 78.76 +hg copy c e 78.77 + 78.78 +#$ name: dir-src-dest 78.79 + 78.80 +hg copy c d 78.81 + 78.82 +#$ name: after 78.83 + 78.84 +cp a z 78.85 +hg copy --after a z
79.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 79.2 +++ b/ja/examples/daily.copy.after.out Fri Aug 14 12:10:47 2009 -0700 79.3 @@ -0,0 +1,2 @@ 79.4 +$ \textbf{cp a z} 79.5 +$ \textbf{hg copy --after a z}
80.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 80.2 +++ b/ja/examples/daily.copy.cat.out Fri Aug 14 12:10:47 2009 -0700 80.3 @@ -0,0 +1,5 @@ 80.4 +$ \textbf{cat file} 80.5 +line 80.6 +new contents 80.7 +$ \textbf{cat ../my-copy/new-file} 80.8 +line
81.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 81.2 +++ b/ja/examples/daily.copy.clone.out Fri Aug 14 12:10:47 2009 -0700 81.3 @@ -0,0 +1,3 @@ 81.4 +$ \textbf{cd ..} 81.5 +$ \textbf{hg clone my-copy your-copy} 81.6 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved
82.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 82.2 +++ b/ja/examples/daily.copy.copy.out Fri Aug 14 12:10:47 2009 -0700 82.3 @@ -0,0 +1,2 @@ 82.4 +$ \textbf{cd my-copy} 82.5 +$ \textbf{hg copy file new-file}
83.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 83.2 +++ b/ja/examples/daily.copy.dir-dest.out Fri Aug 14 12:10:47 2009 -0700 83.3 @@ -0,0 +1,4 @@ 83.4 +$ \textbf{mkdir d} 83.5 +$ \textbf{hg copy a b d} 83.6 +$ \textbf{ls d} 83.7 +a b
84.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 84.2 +++ b/ja/examples/daily.copy.dir-src-dest.out Fri Aug 14 12:10:47 2009 -0700 84.3 @@ -0,0 +1,2 @@ 84.4 +$ \textbf{hg copy c d} 84.5 +copying c/a/c to d/c/a/c
85.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 85.2 +++ b/ja/examples/daily.copy.dir-src.out Fri Aug 14 12:10:47 2009 -0700 85.3 @@ -0,0 +1,2 @@ 85.4 +$ \textbf{hg copy c e} 85.5 +copying c/a/c to e/a/c
86.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 86.2 +++ b/ja/examples/daily.copy.init.out Fri Aug 14 12:10:47 2009 -0700 86.3 @@ -0,0 +1,5 @@ 86.4 +$ \textbf{hg init my-copy} 86.5 +$ \textbf{cd my-copy} 86.6 +$ \textbf{echo line > file} 86.7 +$ \textbf{hg add file} 86.8 +$ \textbf{hg commit -m 'Added a file'}
87.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 87.2 +++ b/ja/examples/daily.copy.merge.out Fri Aug 14 12:10:47 2009 -0700 87.3 @@ -0,0 +1,15 @@ 87.4 +$ \textbf{hg pull ../my-copy} 87.5 +pulling from ../my-copy 87.6 +searching for changes 87.7 +adding changesets 87.8 +adding manifests 87.9 +adding file changes 87.10 +added 1 changesets with 1 changes to 1 files (+1 heads) 87.11 +(run 'hg heads' to see heads, 'hg merge' to merge) 87.12 +$ \textbf{hg merge} 87.13 +merging file and new-file 87.14 +0 files updated, 1 files merged, 0 files removed, 0 files unresolved 87.15 +(branch merge, don't forget to commit) 87.16 +$ \textbf{cat new-file} 87.17 +line 87.18 +new contents
88.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 88.2 +++ b/ja/examples/daily.copy.other.out Fri Aug 14 12:10:47 2009 -0700 88.3 @@ -0,0 +1,3 @@ 88.4 +$ \textbf{cd ../your-copy} 88.5 +$ \textbf{echo 'new contents' >> file} 88.6 +$ \textbf{hg commit -m 'Changed file'}
89.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 89.2 +++ b/ja/examples/daily.copy.simple.out Fri Aug 14 12:10:47 2009 -0700 89.3 @@ -0,0 +1,4 @@ 89.4 +$ \textbf{mkdir k} 89.5 +$ \textbf{hg copy a k} 89.6 +$ \textbf{ls k} 89.7 +a
90.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 90.2 +++ b/ja/examples/daily.copy.status-copy.out Fri Aug 14 12:10:47 2009 -0700 90.3 @@ -0,0 +1,4 @@ 90.4 +$ \textbf{hg status -C} 90.5 +A new-file 90.6 + file 90.7 +$ \textbf{hg commit -m 'Copied file'}
91.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 91.2 +++ b/ja/examples/daily.copy.status.out Fri Aug 14 12:10:47 2009 -0700 91.3 @@ -0,0 +1,2 @@ 91.4 +$ \textbf{hg status} 91.5 +A new-file
92.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 92.2 +++ b/ja/examples/daily.files Fri Aug 14 12:10:47 2009 -0700 92.3 @@ -0,0 +1,93 @@ 92.4 +#!/bin/bash 92.5 + 92.6 +#$ name: add 92.7 + 92.8 +hg init add-example 92.9 +cd add-example 92.10 +echo a > a 92.11 +hg status 92.12 +hg add a 92.13 +hg status 92.14 +hg commit -m 'Added one file' 92.15 +hg status 92.16 + 92.17 +#$ name: add-dir 92.18 + 92.19 +mkdir b 92.20 +echo b > b/b 92.21 +echo c > b/c 92.22 +mkdir b/d 92.23 +echo d > b/d/d 92.24 +hg add b 92.25 +hg commit -m 'Added all files in subdirectory' 92.26 + 92.27 +#$ name: 92.28 + 92.29 +cd .. 92.30 + 92.31 +#$ name: hidden 92.32 + 92.33 +hg init hidden-example 92.34 +cd hidden-example 92.35 +mkdir empty 92.36 +touch empty/.hidden 92.37 +hg add empty/.hidden 92.38 +hg commit -m 'Manage an empty-looking directory' 92.39 +ls empty 92.40 +cd .. 92.41 +hg clone hidden-example tmp 92.42 +ls tmp 92.43 +ls tmp/empty 92.44 + 92.45 +#$ name: remove 92.46 + 92.47 +hg init remove-example 92.48 +cd remove-example 92.49 +echo a > a 92.50 +mkdir b 92.51 +echo b > b/b 92.52 +hg add a b 92.53 +hg commit -m 'Small example for file removal' 92.54 +hg remove a 92.55 +hg status 92.56 +hg remove b 92.57 + 92.58 +#$ name: 92.59 + 92.60 +cd .. 92.61 + 92.62 +#$ name: missing 92.63 +hg init missing-example 92.64 +cd missing-example 92.65 +echo a > a 92.66 +hg add a 92.67 +hg commit -m 'File about to be missing' 92.68 +rm a 92.69 +hg status 92.70 + 92.71 +#$ name: remove-after 92.72 + 92.73 +hg remove --after a 92.74 +hg status 92.75 + 92.76 +#$ name: recover-missing 92.77 +hg revert a 92.78 +cat a 92.79 +hg status 92.80 + 92.81 +#$ name: 92.82 + 92.83 +cd .. 92.84 + 92.85 +#$ name: addremove 92.86 + 92.87 +hg init addremove-example 92.88 +cd addremove-example 92.89 +echo a > a 92.90 +echo b > b 92.91 +hg addremove 92.92 + 92.93 +#$ name: commit-addremove 92.94 + 92.95 +echo c > c 92.96 +hg commit -A -m 'Commit with addremove'
93.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 93.2 +++ b/ja/examples/daily.files.add-dir.out Fri Aug 14 12:10:47 2009 -0700 93.3 @@ -0,0 +1,10 @@ 93.4 +$ \textbf{mkdir b} 93.5 +$ \textbf{echo b > b/b} 93.6 +$ \textbf{echo c > b/c} 93.7 +$ \textbf{mkdir b/d} 93.8 +$ \textbf{echo d > b/d/d} 93.9 +$ \textbf{hg add b} 93.10 +adding b/b 93.11 +adding b/c 93.12 +adding b/d/d 93.13 +$ \textbf{hg commit -m 'Added all files in subdirectory'}
94.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 94.2 +++ b/ja/examples/daily.files.add.out Fri Aug 14 12:10:47 2009 -0700 94.3 @@ -0,0 +1,10 @@ 94.4 +$ \textbf{hg init add-example} 94.5 +$ \textbf{cd add-example} 94.6 +$ \textbf{echo a > a} 94.7 +$ \textbf{hg status} 94.8 +? a 94.9 +$ \textbf{hg add a} 94.10 +$ \textbf{hg status} 94.11 +A a 94.12 +$ \textbf{hg commit -m 'Added one file'} 94.13 +$ \textbf{hg status}
95.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 95.2 +++ b/ja/examples/daily.files.addremove.out Fri Aug 14 12:10:47 2009 -0700 95.3 @@ -0,0 +1,7 @@ 95.4 +$ \textbf{hg init addremove-example} 95.5 +$ \textbf{cd addremove-example} 95.6 +$ \textbf{echo a > a} 95.7 +$ \textbf{echo b > b} 95.8 +$ \textbf{hg addremove} 95.9 +adding a 95.10 +adding b
96.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 96.2 +++ b/ja/examples/daily.files.commit-addremove.out Fri Aug 14 12:10:47 2009 -0700 96.3 @@ -0,0 +1,3 @@ 96.4 +$ \textbf{echo c > c} 96.5 +$ \textbf{hg commit -A -m 'Commit with addremove'} 96.6 +adding c
97.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 97.2 +++ b/ja/examples/daily.files.hidden.out Fri Aug 14 12:10:47 2009 -0700 97.3 @@ -0,0 +1,13 @@ 97.4 +$ \textbf{hg init hidden-example} 97.5 +$ \textbf{cd hidden-example} 97.6 +$ \textbf{mkdir empty} 97.7 +$ \textbf{touch empty/.hidden} 97.8 +$ \textbf{hg add empty/.hidden} 97.9 +$ \textbf{hg commit -m 'Manage an empty-looking directory'} 97.10 +$ \textbf{ls empty} 97.11 +$ \textbf{cd ..} 97.12 +$ \textbf{hg clone hidden-example tmp} 97.13 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 97.14 +$ \textbf{ls tmp} 97.15 +empty 97.16 +$ \textbf{ls tmp/empty}
98.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 98.2 +++ b/ja/examples/daily.files.missing.out Fri Aug 14 12:10:47 2009 -0700 98.3 @@ -0,0 +1,8 @@ 98.4 +$ \textbf{hg init missing-example} 98.5 +$ \textbf{cd missing-example} 98.6 +$ \textbf{echo a > a} 98.7 +$ \textbf{hg add a} 98.8 +$ \textbf{hg commit -m 'File about to be missing'} 98.9 +$ \textbf{rm a} 98.10 +$ \textbf{hg status} 98.11 +! a
99.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 99.2 +++ b/ja/examples/daily.files.recover-missing.out Fri Aug 14 12:10:47 2009 -0700 99.3 @@ -0,0 +1,4 @@ 99.4 +$ \textbf{hg revert a} 99.5 +$ \textbf{cat a} 99.6 +a 99.7 +$ \textbf{hg status}
100.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 100.2 +++ b/ja/examples/daily.files.remove-after.out Fri Aug 14 12:10:47 2009 -0700 100.3 @@ -0,0 +1,3 @@ 100.4 +$ \textbf{hg remove --after a} 100.5 +$ \textbf{hg status} 100.6 +R a
101.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 101.2 +++ b/ja/examples/daily.files.remove.out Fri Aug 14 12:10:47 2009 -0700 101.3 @@ -0,0 +1,13 @@ 101.4 +$ \textbf{hg init remove-example} 101.5 +$ \textbf{cd remove-example} 101.6 +$ \textbf{echo a > a} 101.7 +$ \textbf{mkdir b} 101.8 +$ \textbf{echo b > b/b} 101.9 +$ \textbf{hg add a b} 101.10 +adding b/b 101.11 +$ \textbf{hg commit -m 'Small example for file removal'} 101.12 +$ \textbf{hg remove a} 101.13 +$ \textbf{hg status} 101.14 +R a 101.15 +$ \textbf{hg remove b} 101.16 +removing b/b
102.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 102.2 +++ b/ja/examples/daily.rename Fri Aug 14 12:10:47 2009 -0700 102.3 @@ -0,0 +1,18 @@ 102.4 +#!/bin/bash 102.5 + 102.6 +hg init a 102.7 +cd a 102.8 +echo a > a 102.9 +hg ci -Ama 102.10 + 102.11 +#$ name: rename 102.12 + 102.13 +hg rename a b 102.14 + 102.15 +#$ name: status 102.16 + 102.17 +hg status 102.18 + 102.19 +#$ name: status-copy 102.20 + 102.21 +hg status -C
103.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 103.2 +++ b/ja/examples/daily.rename.rename.out Fri Aug 14 12:10:47 2009 -0700 103.3 @@ -0,0 +1,1 @@ 103.4 +$ \textbf{hg rename a b}
104.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 104.2 +++ b/ja/examples/daily.rename.status-copy.out Fri Aug 14 12:10:47 2009 -0700 104.3 @@ -0,0 +1,4 @@ 104.4 +$ \textbf{hg status -C} 104.5 +A b 104.6 + a 104.7 +R a
105.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 105.2 +++ b/ja/examples/daily.rename.status.out Fri Aug 14 12:10:47 2009 -0700 105.3 @@ -0,0 +1,3 @@ 105.4 +$ \textbf{hg status} 105.5 +A b 105.6 +R a
106.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 106.2 +++ b/ja/examples/daily.revert Fri Aug 14 12:10:47 2009 -0700 106.3 @@ -0,0 +1,74 @@ 106.4 +#!/bin/bash 106.5 + 106.6 +hg init a 106.7 +cd a 106.8 +echo 'original content' > file 106.9 +hg ci -Ama 106.10 + 106.11 +#$ name: modify 106.12 + 106.13 +cat file 106.14 +echo unwanted change >> file 106.15 +hg diff file 106.16 + 106.17 +#$ name: unmodify 106.18 + 106.19 +hg status 106.20 +hg revert file 106.21 +cat file 106.22 + 106.23 +#$ name: status 106.24 + 106.25 +hg status 106.26 +cat file.orig 106.27 + 106.28 +#$ name: 106.29 + 106.30 +rm file.orig 106.31 + 106.32 +#$ name: add 106.33 + 106.34 +echo oops > oops 106.35 +hg add oops 106.36 +hg status oops 106.37 +hg revert oops 106.38 +hg status 106.39 + 106.40 +#$ name: 106.41 + 106.42 +rm oops 106.43 + 106.44 +#$ name: remove 106.45 + 106.46 +hg remove file 106.47 +hg status 106.48 +hg revert file 106.49 +hg status 106.50 +ls file 106.51 + 106.52 +#$ name: missing 106.53 + 106.54 +rm file 106.55 +hg status 106.56 +hg revert file 106.57 +ls file 106.58 + 106.59 +#$ name: copy 106.60 + 106.61 +hg copy file new-file 106.62 +hg revert new-file 106.63 +hg status 106.64 + 106.65 +#$ name: 106.66 + 106.67 +rm new-file 106.68 + 106.69 +#$ name: rename 106.70 + 106.71 +hg rename file new-file 106.72 +hg revert new-file 106.73 +hg status 106.74 + 106.75 +#$ name: rename-orig 106.76 +hg revert file 106.77 +hg status
107.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 107.2 +++ b/ja/examples/daily.revert.add.out Fri Aug 14 12:10:47 2009 -0700 107.3 @@ -0,0 +1,7 @@ 107.4 +$ \textbf{echo oops > oops} 107.5 +$ \textbf{hg add oops} 107.6 +$ \textbf{hg status oops} 107.7 +A oops 107.8 +$ \textbf{hg revert oops} 107.9 +$ \textbf{hg status} 107.10 +? oops
108.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 108.2 +++ b/ja/examples/daily.revert.copy.out Fri Aug 14 12:10:47 2009 -0700 108.3 @@ -0,0 +1,4 @@ 108.4 +$ \textbf{hg copy file new-file} 108.5 +$ \textbf{hg revert new-file} 108.6 +$ \textbf{hg status} 108.7 +? new-file
109.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 109.2 +++ b/ja/examples/daily.revert.missing.out Fri Aug 14 12:10:47 2009 -0700 109.3 @@ -0,0 +1,6 @@ 109.4 +$ \textbf{rm file} 109.5 +$ \textbf{hg status} 109.6 +! file 109.7 +$ \textbf{hg revert file} 109.8 +$ \textbf{ls file} 109.9 +file
110.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 110.2 +++ b/ja/examples/daily.revert.modify.out Fri Aug 14 12:10:47 2009 -0700 110.3 @@ -0,0 +1,10 @@ 110.4 +$ \textbf{cat file} 110.5 +original content 110.6 +$ \textbf{echo unwanted change >> file} 110.7 +$ \textbf{hg diff file} 110.8 +diff -r file 110.9 + 110.10 + 110.11 +@@ -1,1 +1,2 @@ original content 110.12 + original content 110.13 ++unwanted change
111.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 111.2 +++ b/ja/examples/daily.revert.remove.out Fri Aug 14 12:10:47 2009 -0700 111.3 @@ -0,0 +1,7 @@ 111.4 +$ \textbf{hg remove file} 111.5 +$ \textbf{hg status} 111.6 +R file 111.7 +$ \textbf{hg revert file} 111.8 +$ \textbf{hg status} 111.9 +$ \textbf{ls file} 111.10 +file
112.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 112.2 +++ b/ja/examples/daily.revert.rename-orig.out Fri Aug 14 12:10:47 2009 -0700 112.3 @@ -0,0 +1,4 @@ 112.4 +$ \textbf{hg revert file} 112.5 +no changes needed to file 112.6 +$ \textbf{hg status} 112.7 +? new-file
113.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 113.2 +++ b/ja/examples/daily.revert.rename.out Fri Aug 14 12:10:47 2009 -0700 113.3 @@ -0,0 +1,4 @@ 113.4 +$ \textbf{hg rename file new-file} 113.5 +$ \textbf{hg revert new-file} 113.6 +$ \textbf{hg status} 113.7 +? new-file
114.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 114.2 +++ b/ja/examples/daily.revert.status.out Fri Aug 14 12:10:47 2009 -0700 114.3 @@ -0,0 +1,5 @@ 114.4 +$ \textbf{hg status} 114.5 +? file.orig 114.6 +$ \textbf{cat file.orig} 114.7 +original content 114.8 +unwanted change
115.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 115.2 +++ b/ja/examples/daily.revert.unmodify.out Fri Aug 14 12:10:47 2009 -0700 115.3 @@ -0,0 +1,5 @@ 115.4 +$ \textbf{hg status} 115.5 +M file 115.6 +$ \textbf{hg revert file} 115.7 +$ \textbf{cat file} 115.8 +original content
116.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 116.2 +++ b/ja/examples/data/check_whitespace.py Fri Aug 14 12:10:47 2009 -0700 116.3 @@ -0,0 +1,44 @@ 116.4 +#!/usr/bin/python 116.5 + 116.6 +import re 116.7 + 116.8 +def trailing_whitespace(difflines): 116.9 + added, linenum, header = [], 0, False 116.10 + 116.11 + for line in difflines: 116.12 + if header: 116.13 + # remember the name of the file that this diff affects 116.14 + m = re.match(r'(?:---|\+\+\+) ([^\t]+)', line) 116.15 + if m and m.group(1) != '/dev/null': 116.16 + filename = m.group(1).split('/', 1)[-1] 116.17 + if line.startswith('+++ '): 116.18 + header = False 116.19 + continue 116.20 + if line.startswith('diff '): 116.21 + header = True 116.22 + continue 116.23 + # hunk header - save the line number 116.24 + m = re.match(r'@@ -\d+,\d+ \+(\d+),', line) 116.25 + if m: 116.26 + linenum = int(m.group(1)) 116.27 + continue 116.28 + # hunk body - check for an added line with trailing whitespace 116.29 + m = re.match(r'\+.*\s$', line) 116.30 + if m: 116.31 + added.append((filename, linenum)) 116.32 + if line and line[0] in ' +': 116.33 + linenum += 1 116.34 + return added 116.35 + 116.36 +if __name__ == '__main__': 116.37 + import os, sys 116.38 + 116.39 + added = trailing_whitespace(os.popen('hg export tip')) 116.40 + if added: 116.41 + for filename, linenum in added: 116.42 + print >> sys.stderr, ('%s, line %d: trailing whitespace added' % 116.43 + (filename, linenum)) 116.44 + # save the commit message so we don't need to retype it 116.45 + os.system('hg tip --template "{desc}" > .hg/commit.save') 116.46 + print >> sys.stderr, 'commit message saved to .hg/commit.save' 116.47 + sys.exit(1)
117.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 117.2 +++ b/ja/examples/data/remove-redundant-null-checks.patch Fri Aug 14 12:10:47 2009 -0700 117.3 @@ -0,0 +1,190 @@ 117.4 + 117.5 +From: Jesper Juhl <jesper.juhl@gmail.com> 117.6 + 117.7 +Remove redundant NULL chck before kfree + tiny CodingStyle cleanup for 117.8 +drivers/ 117.9 + 117.10 +Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> 117.11 +Signed-off-by: Andrew Morton <akpm@osdl.org> 117.12 +--- 117.13 + 117.14 + drivers/char/agp/sgi-agp.c | 5 ++--- 117.15 + drivers/char/hvcs.c | 11 +++++------ 117.16 + drivers/message/fusion/mptfc.c | 6 ++---- 117.17 + drivers/message/fusion/mptsas.c | 3 +-- 117.18 + drivers/net/fs_enet/fs_enet-mii.c | 3 +-- 117.19 + drivers/net/wireless/ipw2200.c | 22 ++++++---------------- 117.20 + drivers/scsi/libata-scsi.c | 4 +--- 117.21 + drivers/video/au1100fb.c | 3 +-- 117.22 + 8 files changed, 19 insertions(+), 38 deletions(-) 117.23 + 117.24 +diff -puN drivers/char/agp/sgi-agp.c~remove-redundant-null-checks-before-free-in-drivers drivers/char/agp/sgi-agp.c 117.25 +--- a/drivers/char/agp/sgi-agp.c~remove-redundant-null-checks-before-free-in-drivers 117.26 ++++ a/drivers/char/agp/sgi-agp.c 117.27 +@@ -329,9 +329,8 @@ static int __devinit agp_sgi_init(void) 117.28 + 117.29 + static void __devexit agp_sgi_cleanup(void) 117.30 + { 117.31 +- if (sgi_tioca_agp_bridges) 117.32 +- kfree(sgi_tioca_agp_bridges); 117.33 +- sgi_tioca_agp_bridges=NULL; 117.34 ++ kfree(sgi_tioca_agp_bridges); 117.35 ++ sgi_tioca_agp_bridges = NULL; 117.36 + } 117.37 + 117.38 + module_init(agp_sgi_init); 117.39 +diff -puN drivers/char/hvcs.c~remove-redundant-null-checks-before-free-in-drivers drivers/char/hvcs.c 117.40 +--- a/drivers/char/hvcs.c~remove-redundant-null-checks-before-free-in-drivers 117.41 ++++ a/drivers/char/hvcs.c 117.42 +@@ -1320,11 +1320,12 @@ static struct tty_operations hvcs_ops = 117.43 + static int hvcs_alloc_index_list(int n) 117.44 + { 117.45 + int i; 117.46 ++ 117.47 + hvcs_index_list = kmalloc(n * sizeof(hvcs_index_count),GFP_KERNEL); 117.48 + if (!hvcs_index_list) 117.49 + return -ENOMEM; 117.50 + hvcs_index_count = n; 117.51 +- for(i = 0; i < hvcs_index_count; i++) 117.52 ++ for (i = 0; i < hvcs_index_count; i++) 117.53 + hvcs_index_list[i] = -1; 117.54 + return 0; 117.55 + } 117.56 +@@ -1332,11 +1333,9 @@ static int hvcs_alloc_index_list(int n) 117.57 + static void hvcs_free_index_list(void) 117.58 + { 117.59 + /* Paranoia check to be thorough. */ 117.60 +- if (hvcs_index_list) { 117.61 +- kfree(hvcs_index_list); 117.62 +- hvcs_index_list = NULL; 117.63 +- hvcs_index_count = 0; 117.64 +- } 117.65 ++ kfree(hvcs_index_list); 117.66 ++ hvcs_index_list = NULL; 117.67 ++ hvcs_index_count = 0; 117.68 + } 117.69 + 117.70 + static int __init hvcs_module_init(void) 117.71 +diff -puN drivers/message/fusion/mptfc.c~remove-redundant-null-checks-before-free-in-drivers drivers/message/fusion/mptfc.c 117.72 +--- a/drivers/message/fusion/mptfc.c~remove-redundant-null-checks-before-free-in-drivers 117.73 ++++ a/drivers/message/fusion/mptfc.c 117.74 +@@ -305,10 +305,8 @@ mptfc_GetFcDevPage0(MPT_ADAPTER *ioc, in 117.75 + } 117.76 + 117.77 + out: 117.78 +- if (pp0_array) 117.79 +- kfree(pp0_array); 117.80 +- if (p0_array) 117.81 +- kfree(p0_array); 117.82 ++ kfree(pp0_array); 117.83 ++ kfree(p0_array); 117.84 + return rc; 117.85 + } 117.86 + 117.87 +diff -puN drivers/message/fusion/mptsas.c~remove-redundant-null-checks-before-free-in-drivers drivers/message/fusion/mptsas.c 117.88 +--- a/drivers/message/fusion/mptsas.c~remove-redundant-null-checks-before-free-in-drivers 117.89 ++++ a/drivers/message/fusion/mptsas.c 117.90 +@@ -1378,8 +1378,7 @@ mptsas_probe_hba_phys(MPT_ADAPTER *ioc) 117.91 + return 0; 117.92 + 117.93 + out_free_port_info: 117.94 +- if (hba) 117.95 +- kfree(hba); 117.96 ++ kfree(hba); 117.97 + out: 117.98 + return error; 117.99 + } 117.100 +diff -puN drivers/net/fs_enet/fs_enet-mii.c~remove-redundant-null-checks-before-free-in-drivers drivers/net/fs_enet/fs_enet-mii.c 117.101 +--- a/drivers/net/fs_enet/fs_enet-mii.c~remove-redundant-null-checks-before-free-in-drivers 117.102 ++++ a/drivers/net/fs_enet/fs_enet-mii.c 117.103 +@@ -431,8 +431,7 @@ static struct fs_enet_mii_bus *create_bu 117.104 + return bus; 117.105 + 117.106 + err: 117.107 +- if (bus) 117.108 +- kfree(bus); 117.109 ++ kfree(bus); 117.110 + return ERR_PTR(ret); 117.111 + } 117.112 + 117.113 +diff -puN drivers/net/wireless/ipw2200.c~remove-redundant-null-checks-before-free-in-drivers drivers/net/wireless/ipw2200.c 117.114 +--- a/drivers/net/wireless/ipw2200.c~remove-redundant-null-checks-before-free-in-drivers 117.115 ++++ a/drivers/net/wireless/ipw2200.c 117.116 +@@ -1229,12 +1229,6 @@ static struct ipw_fw_error *ipw_alloc_er 117.117 + return error; 117.118 + } 117.119 + 117.120 +-static void ipw_free_error_log(struct ipw_fw_error *error) 117.121 +-{ 117.122 +- if (error) 117.123 +- kfree(error); 117.124 +-} 117.125 +- 117.126 + static ssize_t show_event_log(struct device *d, 117.127 + struct device_attribute *attr, char *buf) 117.128 + { 117.129 +@@ -1296,10 +1290,9 @@ static ssize_t clear_error(struct device 117.130 + const char *buf, size_t count) 117.131 + { 117.132 + struct ipw_priv *priv = dev_get_drvdata(d); 117.133 +- if (priv->error) { 117.134 +- ipw_free_error_log(priv->error); 117.135 +- priv->error = NULL; 117.136 +- } 117.137 ++ 117.138 ++ kfree(priv->error); 117.139 ++ priv->error = NULL; 117.140 + return count; 117.141 + } 117.142 + 117.143 +@@ -1970,8 +1963,7 @@ static void ipw_irq_tasklet(struct ipw_p 117.144 + struct ipw_fw_error *error = 117.145 + ipw_alloc_error_log(priv); 117.146 + ipw_dump_error_log(priv, error); 117.147 +- if (error) 117.148 +- ipw_free_error_log(error); 117.149 ++ kfree(error); 117.150 + } 117.151 + #endif 117.152 + } else { 117.153 +@@ -11693,10 +11685,8 @@ static void ipw_pci_remove(struct pci_de 117.154 + } 117.155 + } 117.156 + 117.157 +- if (priv->error) { 117.158 +- ipw_free_error_log(priv->error); 117.159 +- priv->error = NULL; 117.160 +- } 117.161 ++ kfree(priv->error); 117.162 ++ priv->error = NULL; 117.163 + 117.164 + #ifdef CONFIG_IPW2200_PROMISCUOUS 117.165 + ipw_prom_free(priv); 117.166 +diff -puN drivers/scsi/libata-scsi.c~remove-redundant-null-checks-before-free-in-drivers drivers/scsi/libata-scsi.c 117.167 +--- a/drivers/scsi/libata-scsi.c~remove-redundant-null-checks-before-free-in-drivers 117.168 ++++ a/drivers/scsi/libata-scsi.c 117.169 +@@ -222,9 +222,7 @@ int ata_cmd_ioctl(struct scsi_device *sc 117.170 + && copy_to_user(arg + sizeof(args), argbuf, argsize)) 117.171 + rc = -EFAULT; 117.172 + error: 117.173 +- if (argbuf) 117.174 +- kfree(argbuf); 117.175 +- 117.176 ++ kfree(argbuf); 117.177 + return rc; 117.178 + } 117.179 + 117.180 +diff -puN drivers/video/au1100fb.c~remove-redundant-null-checks-before-free-in-drivers drivers/video/au1100fb.c 117.181 +--- a/drivers/video/au1100fb.c~remove-redundant-null-checks-before-free-in-drivers 117.182 ++++ a/drivers/video/au1100fb.c 117.183 +@@ -743,8 +743,7 @@ void __exit au1100fb_cleanup(void) 117.184 + { 117.185 + driver_unregister(&au1100fb_driver); 117.186 + 117.187 +- if (drv_info.opt_mode) 117.188 +- kfree(drv_info.opt_mode); 117.189 ++ kfree(drv_info.opt_mode); 117.190 + } 117.191 + 117.192 + module_init(au1100fb_init); 117.193 +_
118.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 118.2 +++ b/ja/examples/extdiff Fri Aug 14 12:10:47 2009 -0700 118.3 @@ -0,0 +1,28 @@ 118.4 +#!/bin/bash 118.5 + 118.6 +echo '[extensions]' >> $HGRC 118.7 +echo 'extdiff =' >> $HGRC 118.8 + 118.9 +hg init a 118.10 +cd a 118.11 +echo 'The first line.' > myfile 118.12 +hg ci -Ama 118.13 +echo 'The second line.' >> myfile 118.14 + 118.15 +#$ name: diff 118.16 + 118.17 +hg diff 118.18 + 118.19 +#$ name: extdiff 118.20 + 118.21 +hg extdiff 118.22 + 118.23 +#$ name: extdiff-ctx 118.24 + 118.25 +#$ ignore: ^\*\*\* a.* 118.26 + 118.27 +hg extdiff -o -NprcC5 118.28 + 118.29 +#$ name: 118.30 + 118.31 +exit 0
119.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 119.2 +++ b/ja/examples/extdiff.diff.out Fri Aug 14 12:10:47 2009 -0700 119.3 @@ -0,0 +1,7 @@ 119.4 +$ \textbf{hg diff} 119.5 +diff -r myfile 119.6 + 119.7 + 119.8 +@@ -1,1 +1,2 @@ The first line. 119.9 + The first line. 119.10 ++The second line.
120.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 120.2 +++ b/ja/examples/extdiff.extdiff-ctx.out Fri Aug 14 12:10:47 2009 -0700 120.3 @@ -0,0 +1,8 @@ 120.4 +$ \textbf{hg extdiff -o -NprcC5} 120.5 + 120.6 + 120.7 +*************** 120.8 +*** 1 **** 120.9 + 120.10 + The first line. 120.11 ++ The second line.
121.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 121.2 +++ b/ja/examples/extdiff.extdiff.out Fri Aug 14 12:10:47 2009 -0700 121.3 @@ -0,0 +1,6 @@ 121.4 +$ \textbf{hg extdiff} 121.5 + 121.6 + 121.7 +@@ -1 +1,2 @@ 121.8 + The first line. 121.9 ++The second line.
122.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 122.2 +++ b/ja/examples/filenames Fri Aug 14 12:10:47 2009 -0700 122.3 @@ -0,0 +1,61 @@ 122.4 +#!/bin/bash 122.5 + 122.6 +hg init a 122.7 +cd a 122.8 +mkdir -p examples src/watcher 122.9 +touch COPYING MANIFEST.in README setup.py 122.10 +touch examples/performant.py examples/simple.py 122.11 +touch src/main.py src/watcher/_watcher.c src/watcher/watcher.py src/xyzzy.txt 122.12 + 122.13 +#$ name: files 122.14 + 122.15 +hg add COPYING README examples/simple.py 122.16 + 122.17 +#$ name: dirs 122.18 + 122.19 +hg status src 122.20 + 122.21 +#$ name: wdir-subdir 122.22 + 122.23 +cd src 122.24 +hg add -n 122.25 +hg add -n . 122.26 + 122.27 +#$ name: wdir-relname 122.28 + 122.29 +hg status 122.30 +hg status `hg root` 122.31 + 122.32 +#$ name: glob.star 122.33 + 122.34 +hg add 'glob:*.py' 122.35 + 122.36 +#$ name: glob.starstar 122.37 + 122.38 +cd .. 122.39 +hg status 'glob:**.py' 122.40 + 122.41 +#$ name: glob.star-starstar 122.42 + 122.43 +hg status 'glob:*.py' 122.44 +hg status 'glob:**.py' 122.45 + 122.46 +#$ name: glob.question 122.47 + 122.48 +hg status 'glob:**.?' 122.49 + 122.50 +#$ name: glob.range 122.51 + 122.52 +hg status 'glob:**[nr-t]' 122.53 + 122.54 +#$ name: glob.group 122.55 + 122.56 +hg status 'glob:*.{in,py}' 122.57 + 122.58 +#$ name: filter.include 122.59 + 122.60 +hg status -I '*.in' 122.61 + 122.62 +#$ name: filter.exclude 122.63 + 122.64 +hg status -X '**.py' src
123.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 123.2 +++ b/ja/examples/filenames.dirs.out Fri Aug 14 12:10:47 2009 -0700 123.3 @@ -0,0 +1,5 @@ 123.4 +$ \textbf{hg status src} 123.5 +? src/main.py 123.6 +? src/watcher/_watcher.c 123.7 +? src/watcher/watcher.py 123.8 +? src/xyzzy.txt
124.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 124.2 +++ b/ja/examples/filenames.files.out Fri Aug 14 12:10:47 2009 -0700 124.3 @@ -0,0 +1,1 @@ 124.4 +$ \textbf{hg add COPYING README examples/simple.py}
125.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 125.2 +++ b/ja/examples/filenames.filter.exclude.out Fri Aug 14 12:10:47 2009 -0700 125.3 @@ -0,0 +1,3 @@ 125.4 +$ \textbf{hg status -X '**.py' src} 125.5 +? src/watcher/_watcher.c 125.6 +? src/xyzzy.txt
126.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 126.2 +++ b/ja/examples/filenames.filter.include.out Fri Aug 14 12:10:47 2009 -0700 126.3 @@ -0,0 +1,2 @@ 126.4 +$ \textbf{hg status -I '*.in'} 126.5 +? MANIFEST.in
127.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 127.2 +++ b/ja/examples/filenames.glob.group.out Fri Aug 14 12:10:47 2009 -0700 127.3 @@ -0,0 +1,3 @@ 127.4 +$ \textbf{hg status 'glob:*.\{in,py\}'} 127.5 +? MANIFEST.in 127.6 +? setup.py
128.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 128.2 +++ b/ja/examples/filenames.glob.question.out Fri Aug 14 12:10:47 2009 -0700 128.3 @@ -0,0 +1,2 @@ 128.4 +$ \textbf{hg status 'glob:**.?'} 128.5 +? src/watcher/_watcher.c
129.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 129.2 +++ b/ja/examples/filenames.glob.range.out Fri Aug 14 12:10:47 2009 -0700 129.3 @@ -0,0 +1,3 @@ 129.4 +$ \textbf{hg status 'glob:**[nr-t]'} 129.5 +? MANIFEST.in 129.6 +? src/xyzzy.txt
130.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 130.2 +++ b/ja/examples/filenames.glob.star-starstar.out Fri Aug 14 12:10:47 2009 -0700 130.3 @@ -0,0 +1,8 @@ 130.4 +$ \textbf{hg status 'glob:*.py'} 130.5 +? setup.py 130.6 +$ \textbf{hg status 'glob:**.py'} 130.7 +A examples/simple.py 130.8 +A src/main.py 130.9 +? examples/performant.py 130.10 +? setup.py 130.11 +? src/watcher/watcher.py
131.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 131.2 +++ b/ja/examples/filenames.glob.star.out Fri Aug 14 12:10:47 2009 -0700 131.3 @@ -0,0 +1,2 @@ 131.4 +$ \textbf{hg add 'glob:*.py'} 131.5 +adding main.py
132.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 132.2 +++ b/ja/examples/filenames.glob.starstar.out Fri Aug 14 12:10:47 2009 -0700 132.3 @@ -0,0 +1,7 @@ 132.4 +$ \textbf{cd ..} 132.5 +$ \textbf{hg status 'glob:**.py'} 132.6 +A examples/simple.py 132.7 +A src/main.py 132.8 +? examples/performant.py 132.9 +? setup.py 132.10 +? src/watcher/watcher.py
133.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 133.2 +++ b/ja/examples/filenames.wdir-relname.out Fri Aug 14 12:10:47 2009 -0700 133.3 @@ -0,0 +1,22 @@ 133.4 +$ \textbf{hg status} 133.5 +A COPYING 133.6 +A README 133.7 +A examples/simple.py 133.8 +? MANIFEST.in 133.9 +? examples/performant.py 133.10 +? setup.py 133.11 +? src/main.py 133.12 +? src/watcher/_watcher.c 133.13 +? src/watcher/watcher.py 133.14 +? src/xyzzy.txt 133.15 +$ \textbf{hg status `hg root`} 133.16 +A ../COPYING 133.17 +A ../README 133.18 +A ../examples/simple.py 133.19 +? ../MANIFEST.in 133.20 +? ../examples/performant.py 133.21 +? ../setup.py 133.22 +? main.py 133.23 +? watcher/_watcher.c 133.24 +? watcher/watcher.py 133.25 +? xyzzy.txt
134.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 134.2 +++ b/ja/examples/filenames.wdir-subdir.out Fri Aug 14 12:10:47 2009 -0700 134.3 @@ -0,0 +1,14 @@ 134.4 +$ \textbf{cd src} 134.5 +$ \textbf{hg add -n} 134.6 +adding ../MANIFEST.in 134.7 +adding ../examples/performant.py 134.8 +adding ../setup.py 134.9 +adding main.py 134.10 +adding watcher/_watcher.c 134.11 +adding watcher/watcher.py 134.12 +adding xyzzy.txt 134.13 +$ \textbf{hg add -n .} 134.14 +adding main.py 134.15 +adding watcher/_watcher.c 134.16 +adding watcher/watcher.py 134.17 +adding xyzzy.txt
135.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 135.2 +++ b/ja/examples/hook.msglen Fri Aug 14 12:10:47 2009 -0700 135.3 @@ -0,0 +1,14 @@ 135.4 +#!/bin/sh 135.5 + 135.6 +hg init a 135.7 +cd a 135.8 +echo '[hooks]' > .hg/hgrc 135.9 +echo 'pretxncommit.msglen = test `hg tip --template {desc} | wc -c` -ge 10' >> .hg/hgrc 135.10 + 135.11 +#$ name: go 135.12 + 135.13 +cat .hg/hgrc 135.14 +echo a > a 135.15 +hg add a 135.16 +hg commit -A -m 'too short' 135.17 +hg commit -A -m 'long enough'
136.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 136.2 +++ b/ja/examples/hook.msglen.go.out Fri Aug 14 12:10:47 2009 -0700 136.3 @@ -0,0 +1,10 @@ 136.4 +$ \textbf{cat .hg/hgrc} 136.5 +[hooks] 136.6 +pretxncommit.msglen = test `hg tip --template \{desc\} | wc -c` -ge 10 136.7 +$ \textbf{echo a > a} 136.8 +$ \textbf{hg add a} 136.9 +$ \textbf{hg commit -A -m 'too short'} 136.10 +transaction abort! 136.11 +rollback completed 136.12 +abort: pretxncommit.msglen hook exited with status 1 136.13 +$ \textbf{hg commit -A -m 'long enough'}
137.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 137.2 +++ b/ja/examples/hook.msglen.run.out Fri Aug 14 12:10:47 2009 -0700 137.3 @@ -0,0 +1,10 @@ 137.4 +$ \textbf{cat .hg/hgrc} 137.5 +[hooks] 137.6 +pretxncommit.msglen = test `hg tip --template \{desc\} | wc -c` -ge 10 137.7 +$ \textbf{echo a > a} 137.8 +$ \textbf{hg add a} 137.9 +$ \textbf{hg commit -A -m 'too short'} 137.10 +abort: pretxncommit.msglen hook exited with status 1 137.11 +transaction abort! 137.12 +rollback completed 137.13 +$ \textbf{hg commit -A -m 'long enough'}
138.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 138.2 +++ b/ja/examples/hook.simple Fri Aug 14 12:10:47 2009 -0700 138.3 @@ -0,0 +1,37 @@ 138.4 +#!/bin/bash 138.5 + 138.6 +#$ name: init 138.7 + 138.8 +hg init hook-test 138.9 +cd hook-test 138.10 +echo '[hooks]' >> .hg/hgrc 138.11 +echo 'commit = echo committed $HG_NODE' >> .hg/hgrc 138.12 +cat .hg/hgrc 138.13 +echo a > a 138.14 +hg add a 138.15 +hg commit -m 'testing commit hook' 138.16 + 138.17 +#$ name: ext 138.18 +#$ ignore: ^date of commit.* 138.19 + 138.20 +echo 'commit.when = echo -n "date of commit: "; date' >> .hg/hgrc 138.21 +echo a >> a 138.22 +hg commit -m 'i have two hooks' 138.23 + 138.24 +#$ name: 138.25 + 138.26 +echo '#!/bin/sh' >> check_bug_id 138.27 +echo '# check that a commit comment mentions a numeric bug id' >> check_bug_id 138.28 +echo 'hg log -r $1 --template {desc} | grep -q "\<bug *[0-9]"' >> check_bug_id 138.29 +chmod +x check_bug_id 138.30 + 138.31 +#$ name: pretxncommit 138.32 + 138.33 +cat check_bug_id 138.34 + 138.35 +echo 'pretxncommit.bug_id_required = ./check_bug_id $HG_NODE' >> .hg/hgrc 138.36 + 138.37 +echo a >> a 138.38 +hg commit -m 'i am not mentioning a bug id' 138.39 + 138.40 +hg commit -m 'i refer you to bug 666'
139.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 139.2 +++ b/ja/examples/hook.simple.ext.out Fri Aug 14 12:10:47 2009 -0700 139.3 @@ -0,0 +1,5 @@ 139.4 +$ \textbf{echo 'commit.when = echo -n "date of commit: "; date' >> .hg/hgrc} 139.5 +$ \textbf{echo a >> a} 139.6 +$ \textbf{hg commit -m 'i have two hooks'} 139.7 +committed 139.8 +
140.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 140.2 +++ b/ja/examples/hook.simple.init.out Fri Aug 14 12:10:47 2009 -0700 140.3 @@ -0,0 +1,11 @@ 140.4 +$ \textbf{hg init hook-test} 140.5 +$ \textbf{cd hook-test} 140.6 +$ \textbf{echo '[hooks]' >> .hg/hgrc} 140.7 +$ \textbf{echo 'commit = echo committed $HG_NODE' >> .hg/hgrc} 140.8 +$ \textbf{cat .hg/hgrc} 140.9 +[hooks] 140.10 +commit = echo committed $HG_NODE 140.11 +$ \textbf{echo a > a} 140.12 +$ \textbf{hg add a} 140.13 +$ \textbf{hg commit -m 'testing commit hook'} 140.14 +committed
141.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 141.2 +++ b/ja/examples/hook.simple.pretxncommit.out Fri Aug 14 12:10:47 2009 -0700 141.3 @@ -0,0 +1,13 @@ 141.4 +$ \textbf{cat check_bug_id} 141.5 +#!/bin/sh 141.6 +# check that a commit comment mentions a numeric bug id 141.7 +hg log -r $1 --template \{desc\} | grep -q "\textbackslash{}<bug *[0-9]" 141.8 +$ \textbf{echo 'pretxncommit.bug_id_required = ./check_bug_id $HG_NODE' >> .hg/hgrc} 141.9 +$ \textbf{echo a >> a} 141.10 +$ \textbf{hg commit -m 'i am not mentioning a bug id'} 141.11 +transaction abort! 141.12 +rollback completed 141.13 +abort: pretxncommit.bug_id_required hook exited with status 1 141.14 +$ \textbf{hg commit -m 'i refer you to bug 666'} 141.15 +committed 141.16 +
142.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 142.2 +++ b/ja/examples/hook.ws Fri Aug 14 12:10:47 2009 -0700 142.3 @@ -0,0 +1,31 @@ 142.4 +#!/bin/bash 142.5 + 142.6 +hg init a 142.7 +cd a 142.8 +echo '[hooks]' > .hg/hgrc 142.9 +echo "pretxncommit.whitespace = hg export tip | (! egrep -q '^\\+.*[ \\t]$')" >> .hg/hgrc 142.10 + 142.11 +#$ name: simple 142.12 + 142.13 +cat .hg/hgrc 142.14 +echo 'a ' > a 142.15 +hg commit -A -m 'test with trailing whitespace' 142.16 +echo 'a' > a 142.17 +hg commit -A -m 'drop trailing whitespace and try again' 142.18 + 142.19 +#$ name: 142.20 + 142.21 +echo '[hooks]' > .hg/hgrc 142.22 +echo "pretxncommit.whitespace = .hg/check_whitespace.py" >> .hg/hgrc 142.23 +cp $EXAMPLE_DIR/data/check_whitespace.py .hg 142.24 + 142.25 +#$ name: better 142.26 + 142.27 +cat .hg/hgrc 142.28 +echo 'a ' >> a 142.29 +hg commit -A -m 'add new line with trailing whitespace' 142.30 +sed -i 's, *$,,' a 142.31 +hg commit -A -m 'trimmed trailing whitespace' 142.32 + 142.33 +#$ name: 142.34 +exit 0
143.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 143.2 +++ b/ja/examples/hook.ws.better.out Fri Aug 14 12:10:47 2009 -0700 143.3 @@ -0,0 +1,17 @@ 143.4 +$ \textbf{cat .hg/hgrc} 143.5 +[hooks] 143.6 +pretxncommit.whitespace = .hg/check_whitespace.py 143.7 +$ \textbf{echo 'a ' >> a} 143.8 +$ \textbf{hg commit -A -m 'add new line with trailing whitespace'} 143.9 +a, line 2: trailing whitespace added 143.10 +commit message saved to .hg/commit.save 143.11 +transaction abort! 143.12 +rollback completed 143.13 +abort: pretxncommit.whitespace hook exited with status 1 143.14 +$ \textbf{sed -i 's, *$,,' a} 143.15 +$ \textbf{hg commit -A -m 'trimmed trailing whitespace'} 143.16 +a, line 2: trailing whitespace added 143.17 +commit message saved to .hg/commit.save 143.18 +transaction abort! 143.19 +rollback completed 143.20 +abort: pretxncommit.whitespace hook exited with status 1
144.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 144.2 +++ b/ja/examples/hook.ws.simple.out Fri Aug 14 12:10:47 2009 -0700 144.3 @@ -0,0 +1,11 @@ 144.4 +$ \textbf{cat .hg/hgrc} 144.5 +[hooks] 144.6 +pretxncommit.whitespace = hg export tip | (! egrep -q '^\textbackslash{}+.*[ \textbackslash{}t]$') 144.7 +$ \textbf{echo 'a ' > a} 144.8 +$ \textbf{hg commit -A -m 'test with trailing whitespace'} 144.9 +adding a 144.10 +transaction abort! 144.11 +rollback completed 144.12 +abort: pretxncommit.whitespace hook exited with status 1 144.13 +$ \textbf{echo 'a' > a} 144.14 +$ \textbf{hg commit -A -m 'drop trailing whitespace and try again'}
145.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 145.2 +++ b/ja/examples/issue29 Fri Aug 14 12:10:47 2009 -0700 145.3 @@ -0,0 +1,22 @@ 145.4 +#!/bin/bash 145.5 + 145.6 +#$ name: go 145.7 + 145.8 +hg init issue29 145.9 +cd issue29 145.10 +echo a > a 145.11 +hg ci -Ama 145.12 +echo b > b 145.13 +hg ci -Amb 145.14 +hg up 0 145.15 +mkdir b 145.16 +echo b > b/b 145.17 +hg ci -Amc 145.18 + 145.19 +#$ ignore: abort: Is a directory: .* 145.20 +hg merge 145.21 + 145.22 +#$ name: 145.23 +# This error is expected from the failed merge. 145.24 + 145.25 +exit 0
146.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 146.2 +++ b/ja/examples/issue29.go.out Fri Aug 14 12:10:47 2009 -0700 146.3 @@ -0,0 +1,16 @@ 146.4 +$ \textbf{hg init issue29} 146.5 +$ \textbf{cd issue29} 146.6 +$ \textbf{echo a > a} 146.7 +$ \textbf{hg ci -Ama} 146.8 +adding a 146.9 +$ \textbf{echo b > b} 146.10 +$ \textbf{hg ci -Amb} 146.11 +adding b 146.12 +$ \textbf{hg up 0} 146.13 +0 files updated, 0 files merged, 1 files removed, 0 files unresolved 146.14 +$ \textbf{mkdir b} 146.15 +$ \textbf{echo b > b/b} 146.16 +$ \textbf{hg ci -Amc} 146.17 +adding b/b 146.18 +$ \textbf{hg merge} 146.19 +
147.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 147.2 +++ b/ja/examples/mq.dodiff Fri Aug 14 12:10:47 2009 -0700 147.3 @@ -0,0 +1,14 @@ 147.4 +#!/bin/bash 147.5 + 147.6 +#$ name: diff 147.7 + 147.8 +echo 'this is my first line' > oldfile 147.9 +echo 'my first line is here' > newfile 147.10 + 147.11 +diff -u oldfile newfile > tiny.patch 147.12 + 147.13 +cat tiny.patch 147.14 + 147.15 +patch < tiny.patch 147.16 + 147.17 +cat oldfile
148.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 148.2 +++ b/ja/examples/mq.dodiff.diff.out Fri Aug 14 12:10:47 2009 -0700 148.3 @@ -0,0 +1,13 @@ 148.4 +$ \textbf{echo 'this is my first line' > oldfile} 148.5 +$ \textbf{echo 'my first line is here' > newfile} 148.6 +$ \textbf{diff -u oldfile newfile > tiny.patch} 148.7 +$ \textbf{cat tiny.patch} 148.8 + 148.9 + 148.10 +@@ -1 +1 @@ 148.11 +-this is my first line 148.12 ++my first line is here 148.13 +$ \textbf{patch < tiny.patch} 148.14 +patching file oldfile 148.15 +$ \textbf{cat oldfile} 148.16 +my first line is here
149.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 149.2 +++ b/ja/examples/mq.guards Fri Aug 14 12:10:47 2009 -0700 149.3 @@ -0,0 +1,67 @@ 149.4 +#!/bin/bash 149.5 + 149.6 +echo '[extensions]' >> $HGRC 149.7 +echo 'hgext.mq =' >> $HGRC 149.8 + 149.9 +hg init a 149.10 +cd a 149.11 + 149.12 +#$ name: init 149.13 + 149.14 +hg qinit 149.15 +hg qnew hello.patch 149.16 +echo hello > hello 149.17 +hg add hello 149.18 +hg qrefresh 149.19 +hg qnew goodbye.patch 149.20 +echo goodbye > goodbye 149.21 +hg add goodbye 149.22 +hg qrefresh 149.23 + 149.24 +#$ name: qguard 149.25 + 149.26 +hg qguard 149.27 + 149.28 +#$ name: qguard.pos 149.29 + 149.30 +hg qguard +foo 149.31 +hg qguard 149.32 + 149.33 +#$ name: qguard.neg 149.34 + 149.35 +hg qguard hello.patch -quux 149.36 +hg qguard hello.patch 149.37 + 149.38 +#$ name: series 149.39 + 149.40 +cat .hg/patches/series 149.41 + 149.42 +#$ name: qselect.foo 149.43 + 149.44 +hg qpop -a 149.45 +hg qselect 149.46 +hg qselect foo 149.47 +hg qselect 149.48 + 149.49 +#$ name: qselect.cat 149.50 + 149.51 +cat .hg/patches/guards 149.52 + 149.53 +#$ name: qselect.qpush 149.54 +hg qpush -a 149.55 + 149.56 +#$ name: qselect.error 149.57 + 149.58 +hg qselect +foo 149.59 + 149.60 +#$ name: qselect.quux 149.61 + 149.62 +hg qselect quux 149.63 +hg qpop -a 149.64 +hg qpush -a 149.65 + 149.66 +#$ name: qselect.foobar 149.67 + 149.68 +hg qselect foo bar 149.69 +hg qpop -a 149.70 +hg qpush -a
150.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 150.2 +++ b/ja/examples/mq.guards.init.out Fri Aug 14 12:10:47 2009 -0700 150.3 @@ -0,0 +1,9 @@ 150.4 +$ \textbf{hg qinit} 150.5 +$ \textbf{hg qnew hello.patch} 150.6 +$ \textbf{echo hello > hello} 150.7 +$ \textbf{hg add hello} 150.8 +$ \textbf{hg qrefresh} 150.9 +$ \textbf{hg qnew goodbye.patch} 150.10 +$ \textbf{echo goodbye > goodbye} 150.11 +$ \textbf{hg add goodbye} 150.12 +$ \textbf{hg qrefresh}
151.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 151.2 +++ b/ja/examples/mq.guards.qguard.neg.out Fri Aug 14 12:10:47 2009 -0700 151.3 @@ -0,0 +1,3 @@ 151.4 +$ \textbf{hg qguard hello.patch -quux} 151.5 +$ \textbf{hg qguard hello.patch} 151.6 +hello.patch: -quux
152.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 152.2 +++ b/ja/examples/mq.guards.qguard.out Fri Aug 14 12:10:47 2009 -0700 152.3 @@ -0,0 +1,2 @@ 152.4 +$ \textbf{hg qguard} 152.5 +goodbye.patch: unguarded
153.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 153.2 +++ b/ja/examples/mq.guards.qguard.pos.out Fri Aug 14 12:10:47 2009 -0700 153.3 @@ -0,0 +1,3 @@ 153.4 +$ \textbf{hg qguard +foo} 153.5 +$ \textbf{hg qguard} 153.6 +goodbye.patch: +foo
154.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 154.2 +++ b/ja/examples/mq.guards.qselect.cat.out Fri Aug 14 12:10:47 2009 -0700 154.3 @@ -0,0 +1,2 @@ 154.4 +$ \textbf{cat .hg/patches/guards} 154.5 +foo
155.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 155.2 +++ b/ja/examples/mq.guards.qselect.error.out Fri Aug 14 12:10:47 2009 -0700 155.3 @@ -0,0 +1,2 @@ 155.4 +$ \textbf{hg qselect +foo} 155.5 +abort: guard '+foo' starts with invalid character: '+'
156.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 156.2 +++ b/ja/examples/mq.guards.qselect.foo.out Fri Aug 14 12:10:47 2009 -0700 156.3 @@ -0,0 +1,8 @@ 156.4 +$ \textbf{hg qpop -a} 156.5 +Patch queue now empty 156.6 +$ \textbf{hg qselect} 156.7 +no active guards 156.8 +$ \textbf{hg qselect foo} 156.9 +number of unguarded, unapplied patches has changed from 1 to 2 156.10 +$ \textbf{hg qselect} 156.11 +foo
157.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 157.2 +++ b/ja/examples/mq.guards.qselect.foobar.out Fri Aug 14 12:10:47 2009 -0700 157.3 @@ -0,0 +1,8 @@ 157.4 +$ \textbf{hg qselect foo bar} 157.5 +number of unguarded, unapplied patches has changed from 0 to 2 157.6 +$ \textbf{hg qpop -a} 157.7 +no patches applied 157.8 +$ \textbf{hg qpush -a} 157.9 +applying hello.patch 157.10 +applying goodbye.patch 157.11 +Now at: goodbye.patch
158.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 158.2 +++ b/ja/examples/mq.guards.qselect.qpush.out Fri Aug 14 12:10:47 2009 -0700 158.3 @@ -0,0 +1,4 @@ 158.4 +$ \textbf{hg qpush -a} 158.5 +applying hello.patch 158.6 +applying goodbye.patch 158.7 +Now at: goodbye.patch
159.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 159.2 +++ b/ja/examples/mq.guards.qselect.quux.out Fri Aug 14 12:10:47 2009 -0700 159.3 @@ -0,0 +1,6 @@ 159.4 +$ \textbf{hg qselect quux} 159.5 +number of guarded, applied patches has changed from 0 to 2 159.6 +$ \textbf{hg qpop -a} 159.7 +Patch queue now empty 159.8 +$ \textbf{hg qpush -a} 159.9 +patch series already fully applied
160.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 160.2 +++ b/ja/examples/mq.guards.series.out Fri Aug 14 12:10:47 2009 -0700 160.3 @@ -0,0 +1,3 @@ 160.4 +$ \textbf{cat .hg/patches/series} 160.5 +hello.patch #-quux 160.6 +goodbye.patch #+foo
161.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 161.2 +++ b/ja/examples/mq.id Fri Aug 14 12:10:47 2009 -0700 161.3 @@ -0,0 +1,28 @@ 161.4 +#!/bin/sh 161.5 + 161.6 +echo '[extensions]' >> $HGRC 161.7 +echo 'hgext.mq =' >> $HGRC 161.8 + 161.9 +hg init a 161.10 +cd a 161.11 +hg qinit 161.12 +echo 'int x;' > test.c 161.13 +hg ci -Ama 161.14 + 161.15 +hg qnew first.patch 161.16 +echo 'float c;' >> test.c 161.17 +hg qrefresh 161.18 + 161.19 +hg qnew second.patch 161.20 +echo 'double u;' > other.c 161.21 +hg add other.c 161.22 +hg qrefresh 161.23 + 161.24 +#$ name: output 161.25 + 161.26 +hg qapplied 161.27 +hg log -r qbase:qtip 161.28 +hg export second.patch 161.29 + 161.30 +#$ name: 161.31 +exit 0
162.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 162.2 +++ b/ja/examples/mq.id.out.out Fri Aug 14 12:10:47 2009 -0700 162.3 @@ -0,0 +1,32 @@ 162.4 +$ \textbf{hg qapplied} 162.5 +first.patch 162.6 +second.patch 162.7 +$ \textbf{hg log -r qbase:qtip} 162.8 +changeset: 162.9 +tag: first.patch 162.10 +tag: qbase 162.11 +user: Bryan O'Sullivan <bos@serpentine.com> 162.12 + 162.13 +summary: patch queue: first.patch 162.14 + 162.15 +changeset: 162.16 +tag: second.patch 162.17 +tag: qtip 162.18 +tag: tip 162.19 +user: Bryan O'Sullivan <bos@serpentine.com> 162.20 + 162.21 +summary: patch queue: second.patch 162.22 + 162.23 +$ \textbf{hg export second.patch} 162.24 +# HG changeset patch 162.25 +# User Bryan O'Sullivan <bos@serpentine.com> 162.26 + 162.27 +# Node ID 162.28 +# Parent 162.29 +patch queue: second.patch 162.30 + 162.31 +diff -r -r other.c 162.32 + 162.33 + 162.34 +@@ -0,0 +1,1 @@ 162.35 ++double u;
163.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 163.2 +++ b/ja/examples/mq.id.output.out Fri Aug 14 12:10:47 2009 -0700 163.3 @@ -0,0 +1,32 @@ 163.4 +$ \textbf{hg qapplied} 163.5 +first.patch 163.6 +second.patch 163.7 +$ \textbf{hg log -r qbase:qtip} 163.8 +changeset: 163.9 +tag: first.patch 163.10 +tag: qbase 163.11 +user: Bryan O'Sullivan <bos@serpentine.com> 163.12 + 163.13 +summary: [mq]: first.patch 163.14 + 163.15 +changeset: 163.16 +tag: qtip 163.17 +tag: second.patch 163.18 +tag: tip 163.19 +user: Bryan O'Sullivan <bos@serpentine.com> 163.20 + 163.21 +summary: [mq]: second.patch 163.22 + 163.23 +$ \textbf{hg export second.patch} 163.24 +# HG changeset patch 163.25 +# User Bryan O'Sullivan <bos@serpentine.com> 163.26 + 163.27 +# Node ID 163.28 +# Parent 163.29 +[mq]: second.patch 163.30 + 163.31 +diff -r -r other.c 163.32 + 163.33 + 163.34 +@@ -0,0 +1,1 @@ 163.35 ++double u;
164.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 164.2 +++ b/ja/examples/mq.qinit-help Fri Aug 14 12:10:47 2009 -0700 164.3 @@ -0,0 +1,7 @@ 164.4 +#!/bin/bash 164.5 + 164.6 +echo '[extensions]' >> $HGRC 164.7 +echo 'hgext.mq =' >> $HGRC 164.8 + 164.9 +#$ name: help 164.10 +hg help qinit
165.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 165.2 +++ b/ja/examples/mq.qinit-help.help.out Fri Aug 14 12:10:47 2009 -0700 165.3 @@ -0,0 +1,16 @@ 165.4 +$ \textbf{hg help qinit} 165.5 +hg qinit [-c] 165.6 + 165.7 +init a new queue repository 165.8 + 165.9 + The queue repository is unversioned by default. If -c is 165.10 + specified, qinit will create a separate nested repository 165.11 + for patches (qinit -c may also be run later to convert 165.12 + an unversioned patch repository into a versioned one). 165.13 + You can use qcommit to commit changes to this queue repository. 165.14 + 165.15 +options: 165.16 + 165.17 + -c --create-repo create queue repository 165.18 + 165.19 +use "hg -v help qinit" to show global options
166.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 166.2 +++ b/ja/examples/mq.tarball Fri Aug 14 12:10:47 2009 -0700 166.3 @@ -0,0 +1,51 @@ 166.4 +#!/bin/bash 166.5 + 166.6 +cp $EXAMPLE_DIR/data/netplug-*.tar.bz2 . 166.7 +ln -s /bin/true download 166.8 +export PATH=`pwd`:$PATH 166.9 + 166.10 +#$ name: download 166.11 + 166.12 +download netplug-1.2.5.tar.bz2 166.13 +tar jxf netplug-1.2.5.tar.bz2 166.14 +cd netplug-1.2.5 166.15 +hg init 166.16 +hg commit -q --addremove --message netplug-1.2.5 166.17 +cd .. 166.18 +hg clone netplug-1.2.5 netplug 166.19 + 166.20 +#$ name: 166.21 + 166.22 +cd netplug 166.23 +echo '[extensions]' >> $HGRC 166.24 +echo 'hgext.mq =' >> $HGRC 166.25 +cd .. 166.26 + 166.27 +#$ name: qinit 166.28 + 166.29 +cd netplug 166.30 +hg qinit 166.31 +hg qnew -m 'fix build problem with gcc 4' build-fix.patch 166.32 +perl -pi -e 's/int addr_len/socklen_t addr_len/' netlink.c 166.33 +hg qrefresh 166.34 +hg tip -p 166.35 + 166.36 +#$ name: newsource 166.37 + 166.38 +hg qpop -a 166.39 +cd .. 166.40 +download netplug-1.2.8.tar.bz2 166.41 +hg clone netplug-1.2.5 netplug-1.2.8 166.42 +cd netplug-1.2.8 166.43 +hg locate -0 | xargs -0 rm 166.44 +cd .. 166.45 +tar jxf netplug-1.2.8.tar.bz2 166.46 +cd netplug-1.2.8 166.47 +hg commit --addremove --message netplug-1.2.8 166.48 + 166.49 +#$ name: repush 166.50 + 166.51 +cd ../netplug 166.52 +hg pull ../netplug-1.2.8 166.53 +hg qpush -a 166.54 +
167.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 167.2 +++ b/ja/examples/mq.tarball.download.out Fri Aug 14 12:10:47 2009 -0700 167.3 @@ -0,0 +1,8 @@ 167.4 +$ \textbf{download netplug-1.2.5.tar.bz2} 167.5 +$ \textbf{tar jxf netplug-1.2.5.tar.bz2} 167.6 +$ \textbf{cd netplug-1.2.5} 167.7 +$ \textbf{hg init} 167.8 +$ \textbf{hg commit -q --addremove --message netplug-1.2.5} 167.9 +$ \textbf{cd ..} 167.10 +$ \textbf{hg clone netplug-1.2.5 netplug} 167.11 +18 files updated, 0 files merged, 0 files removed, 0 files unresolved
168.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 168.2 +++ b/ja/examples/mq.tarball.newsource.out Fri Aug 14 12:10:47 2009 -0700 168.3 @@ -0,0 +1,12 @@ 168.4 +$ \textbf{hg qpop -a} 168.5 +Patch queue now empty 168.6 +$ \textbf{cd ..} 168.7 +$ \textbf{download netplug-1.2.8.tar.bz2} 168.8 +$ \textbf{hg clone netplug-1.2.5 netplug-1.2.8} 168.9 +18 files updated, 0 files merged, 0 files removed, 0 files unresolved 168.10 +$ \textbf{cd netplug-1.2.8} 168.11 +$ \textbf{hg locate -0 | xargs -0 rm} 168.12 +$ \textbf{cd ..} 168.13 +$ \textbf{tar jxf netplug-1.2.8.tar.bz2} 168.14 +$ \textbf{cd netplug-1.2.8} 168.15 +$ \textbf{hg commit --addremove --message netplug-1.2.8}
169.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 169.2 +++ b/ja/examples/mq.tarball.qinit.out Fri Aug 14 12:10:47 2009 -0700 169.3 @@ -0,0 +1,28 @@ 169.4 +$ \textbf{cd netplug} 169.5 +$ \textbf{hg qinit} 169.6 +$ \textbf{hg qnew -m 'fix build problem with gcc 4' build-fix.patch} 169.7 +$ \textbf{perl -pi -e 's/int addr_len/socklen_t addr_len/' netlink.c} 169.8 +$ \textbf{hg qrefresh} 169.9 +$ \textbf{hg tip -p} 169.10 +changeset: 169.11 +tag: qtip 169.12 +tag: build-fix.patch 169.13 +tag: tip 169.14 +tag: qbase 169.15 +user: Bryan O'Sullivan <bos@serpentine.com> 169.16 + 169.17 +summary: fix build problem with gcc 4 169.18 + 169.19 +diff -r -r netlink.c 169.20 + 169.21 + 169.22 +@@ -275,7 +275,7 @@ netlink_open(void) 169.23 + exit(1); 169.24 + \} 169.25 + 169.26 +- int addr_len = sizeof(addr); 169.27 ++ socklen_t addr_len = sizeof(addr); 169.28 + 169.29 + if (getsockname(fd, (struct sockaddr *) &addr, &addr_len) == -1) \{ 169.30 + do_log(LOG_ERR, "Could not get socket details: %m"); 169.31 +
170.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 170.2 +++ b/ja/examples/mq.tarball.repush.out Fri Aug 14 12:10:47 2009 -0700 170.3 @@ -0,0 +1,12 @@ 170.4 +$ \textbf{cd ../netplug} 170.5 +$ \textbf{hg pull ../netplug-1.2.8} 170.6 +pulling from ../netplug-1.2.8 170.7 +searching for changes 170.8 +adding changesets 170.9 +adding manifests 170.10 +adding file changes 170.11 +added 1 changesets with 12 changes to 12 files 170.12 +(run 'hg update' to get a working copy) 170.13 +$ \textbf{hg qpush -a} 170.14 +applying build-fix.patch 170.15 +Now at: build-fix.patch
171.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 171.2 +++ b/ja/examples/mq.tools Fri Aug 14 12:10:47 2009 -0700 171.3 @@ -0,0 +1,11 @@ 171.4 +#!/bin/bash 171.5 + 171.6 +cp $EXAMPLE_DIR/data/remove-redundant-null-checks.patch . 171.7 + 171.8 +#$ name: tools 171.9 +diffstat -p1 remove-redundant-null-checks.patch 171.10 + 171.11 +filterdiff -i '*/video/*' remove-redundant-null-checks.patch 171.12 + 171.13 +#$ name: lsdiff 171.14 +lsdiff -nvv remove-redundant-null-checks.patch
172.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 172.2 +++ b/ja/examples/mq.tools.lsdiff.out Fri Aug 14 12:10:47 2009 -0700 172.3 @@ -0,0 +1,21 @@ 172.4 +$ \textbf{lsdiff -nvv remove-redundant-null-checks.patch} 172.5 +22 File #1 a/drivers/char/agp/sgi-agp.c 172.6 + 24 Hunk #1 static int __devinit agp_sgi_init(void) 172.7 +37 File #2 a/drivers/char/hvcs.c 172.8 + 39 Hunk #1 static struct tty_operations hvcs_ops = 172.9 + 53 Hunk #2 static int hvcs_alloc_index_list(int n) 172.10 +69 File #3 a/drivers/message/fusion/mptfc.c 172.11 + 71 Hunk #1 mptfc_GetFcDevPage0(MPT_ADAPTER *ioc, in 172.12 +85 File #4 a/drivers/message/fusion/mptsas.c 172.13 + 87 Hunk #1 mptsas_probe_hba_phys(MPT_ADAPTER *ioc) 172.14 +98 File #5 a/drivers/net/fs_enet/fs_enet-mii.c 172.15 + 100 Hunk #1 static struct fs_enet_mii_bus *create_bu 172.16 +111 File #6 a/drivers/net/wireless/ipw2200.c 172.17 + 113 Hunk #1 static struct ipw_fw_error *ipw_alloc_er 172.18 + 126 Hunk #2 static ssize_t clear_error(struct device 172.19 + 140 Hunk #3 static void ipw_irq_tasklet(struct ipw_p 172.20 + 150 Hunk #4 static void ipw_pci_remove(struct pci_de 172.21 +164 File #7 a/drivers/scsi/libata-scsi.c 172.22 + 166 Hunk #1 int ata_cmd_ioctl(struct scsi_device *sc 172.23 +178 File #8 a/drivers/video/au1100fb.c 172.24 + 180 Hunk #1 void __exit au1100fb_cleanup(void)
173.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 173.2 +++ b/ja/examples/mq.tools.tools.out Fri Aug 14 12:10:47 2009 -0700 173.3 @@ -0,0 +1,23 @@ 173.4 +$ \textbf{diffstat -p1 remove-redundant-null-checks.patch} 173.5 + drivers/char/agp/sgi-agp.c | 5 ++--- 173.6 + drivers/char/hvcs.c | 11 +++++------ 173.7 + drivers/message/fusion/mptfc.c | 6 ++---- 173.8 + drivers/message/fusion/mptsas.c | 3 +-- 173.9 + drivers/net/fs_enet/fs_enet-mii.c | 3 +-- 173.10 + drivers/net/wireless/ipw2200.c | 22 ++++++---------------- 173.11 + drivers/scsi/libata-scsi.c | 4 +--- 173.12 + drivers/video/au1100fb.c | 3 +-- 173.13 + 8 files changed, 19 insertions(+), 38 deletions(-) 173.14 +$ \textbf{filterdiff -i '*/video/*' remove-redundant-null-checks.patch} 173.15 + 173.16 + 173.17 +@@ -743,8 +743,7 @@ void __exit au1100fb_cleanup(void) 173.18 + \{ 173.19 + driver_unregister(&au1100fb_driver); 173.20 + 173.21 +- if (drv_info.opt_mode) 173.22 +- kfree(drv_info.opt_mode); 173.23 ++ kfree(drv_info.opt_mode); 173.24 + \} 173.25 + 173.26 + module_init(au1100fb_init);
174.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 174.2 +++ b/ja/examples/mq.tutorial Fri Aug 14 12:10:47 2009 -0700 174.3 @@ -0,0 +1,74 @@ 174.4 +#!/bin/bash 174.5 + 174.6 +echo '[extensions]' >> $HGRC 174.7 +echo 'hgext.mq =' >> $HGRC 174.8 + 174.9 +#$ name: qinit 174.10 + 174.11 +hg init mq-sandbox 174.12 +cd mq-sandbox 174.13 +echo 'line 1' > file1 174.14 +echo 'another line 1' > file2 174.15 +hg add file1 file2 174.16 +hg commit -m'first change' 174.17 + 174.18 +hg qinit 174.19 + 174.20 +#$ name: qnew 174.21 + 174.22 +hg tip 174.23 +hg qnew first.patch 174.24 +hg tip 174.25 +ls .hg/patches 174.26 + 174.27 +#$ name: qrefresh 174.28 +#$ ignore: \s+200[78]-.* 174.29 + 174.30 +echo 'line 2' >> file1 174.31 +hg diff 174.32 +hg qrefresh 174.33 +hg diff 174.34 +hg tip --style=compact --patch 174.35 + 174.36 +#$ name: qrefresh2 174.37 + 174.38 +echo 'line 3' >> file1 174.39 +hg status 174.40 +hg qrefresh 174.41 +hg tip --style=compact --patch 174.42 + 174.43 +#$ name: qnew2 174.44 + 174.45 +hg qnew second.patch 174.46 +hg log --style=compact --limit=2 174.47 +echo 'line 4' >> file1 174.48 +hg qrefresh 174.49 +hg tip --style=compact --patch 174.50 +hg annotate file1 174.51 + 174.52 +#$ name: qseries 174.53 + 174.54 +hg qseries 174.55 +hg qapplied 174.56 + 174.57 +#$ name: qpop 174.58 + 174.59 +hg qapplied 174.60 +hg qpop 174.61 +hg qseries 174.62 +hg qapplied 174.63 +cat file1 174.64 + 174.65 +#$ name: qpush-a 174.66 + 174.67 +hg qpush -a 174.68 +cat file1 174.69 + 174.70 +#$ name: add 174.71 + 174.72 +echo 'file 3, line 1' >> file3 174.73 +hg qnew add-file3.patch 174.74 +hg qnew -f add-file3.patch 174.75 + 174.76 +#$ name: 174.77 +exit 0
175.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 175.2 +++ b/ja/examples/mq.tutorial.add.out Fri Aug 14 12:10:47 2009 -0700 175.3 @@ -0,0 +1,4 @@ 175.4 +$ \textbf{echo 'file 3, line 1' >> file3} 175.5 +$ \textbf{hg qnew add-file3.patch} 175.6 +$ \textbf{hg qnew -f add-file3.patch} 175.7 +abort: patch "add-file3.patch" already exists
176.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 176.2 +++ b/ja/examples/mq.tutorial.qinit.out Fri Aug 14 12:10:47 2009 -0700 176.3 @@ -0,0 +1,7 @@ 176.4 +$ \textbf{hg init mq-sandbox} 176.5 +$ \textbf{cd mq-sandbox} 176.6 +$ \textbf{echo 'line 1' > file1} 176.7 +$ \textbf{echo 'another line 1' > file2} 176.8 +$ \textbf{hg add file1 file2} 176.9 +$ \textbf{hg commit -m'first change'} 176.10 +$ \textbf{hg qinit}
177.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 177.2 +++ b/ja/examples/mq.tutorial.qnew.out Fri Aug 14 12:10:47 2009 -0700 177.3 @@ -0,0 +1,20 @@ 177.4 +$ \textbf{hg tip} 177.5 +changeset: 177.6 +tag: tip 177.7 +user: Bryan O'Sullivan <bos@serpentine.com> 177.8 + 177.9 +summary: first change 177.10 + 177.11 +$ \textbf{hg qnew first.patch} 177.12 +$ \textbf{hg tip} 177.13 +changeset: 177.14 +tag: qtip 177.15 +tag: first.patch 177.16 +tag: tip 177.17 +tag: qbase 177.18 +user: Bryan O'Sullivan <bos@serpentine.com> 177.19 + 177.20 +summary: [mq]: first.patch 177.21 + 177.22 +$ \textbf{ls .hg/patches} 177.23 +first.patch series status
178.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 178.2 +++ b/ja/examples/mq.tutorial.qnew2.out Fri Aug 14 12:10:47 2009 -0700 178.3 @@ -0,0 +1,28 @@ 178.4 +$ \textbf{hg qnew second.patch} 178.5 +$ \textbf{hg log --style=compact --limit=2} 178.6 +2[qtip,second.patch,tip] 178.7 + [mq]: second.patch 178.8 + 178.9 +1[first.patch,qbase] 178.10 + [mq]: first.patch 178.11 + 178.12 +$ \textbf{echo 'line 4' >> file1} 178.13 +$ \textbf{hg qrefresh} 178.14 +$ \textbf{hg tip --style=compact --patch} 178.15 +2[qtip,second.patch,tip] 178.16 + [mq]: second.patch 178.17 + 178.18 +diff -r -r file1 178.19 + 178.20 + 178.21 +@@ -1,3 +1,4 @@ line 1 178.22 + line 1 178.23 + line 2 178.24 + line 3 178.25 ++line 4 178.26 + 178.27 +$ \textbf{hg annotate file1} 178.28 +0: line 1 178.29 +1: line 2 178.30 +1: line 3 178.31 +2: line 4
179.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 179.2 +++ b/ja/examples/mq.tutorial.qpop.out Fri Aug 14 12:10:47 2009 -0700 179.3 @@ -0,0 +1,14 @@ 179.4 +$ \textbf{hg qapplied} 179.5 +first.patch 179.6 +second.patch 179.7 +$ \textbf{hg qpop} 179.8 +Now at: first.patch 179.9 +$ \textbf{hg qseries} 179.10 +first.patch 179.11 +second.patch 179.12 +$ \textbf{hg qapplied} 179.13 +first.patch 179.14 +$ \textbf{cat file1} 179.15 +line 1 179.16 +line 2 179.17 +line 3
180.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 180.2 +++ b/ja/examples/mq.tutorial.qpush-a.out Fri Aug 14 12:10:47 2009 -0700 180.3 @@ -0,0 +1,8 @@ 180.4 +$ \textbf{hg qpush -a} 180.5 +applying second.patch 180.6 +Now at: second.patch 180.7 +$ \textbf{cat file1} 180.8 +line 1 180.9 +line 2 180.10 +line 3 180.11 +line 4
181.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 181.2 +++ b/ja/examples/mq.tutorial.qrefresh.out Fri Aug 14 12:10:47 2009 -0700 181.3 @@ -0,0 +1,21 @@ 181.4 +$ \textbf{echo 'line 2' >> file1} 181.5 +$ \textbf{hg diff} 181.6 +diff -r file1 181.7 + 181.8 + 181.9 +@@ -1,1 +1,2 @@ line 1 181.10 + line 1 181.11 ++line 2 181.12 +$ \textbf{hg qrefresh} 181.13 +$ \textbf{hg diff} 181.14 +$ \textbf{hg tip --style=compact --patch} 181.15 +1[qtip,first.patch,tip,qbase] 181.16 + [mq]: first.patch 181.17 + 181.18 +diff -r -r file1 181.19 + 181.20 + 181.21 +@@ -1,1 +1,2 @@ line 1 181.22 + line 1 181.23 ++line 2 181.24 +
182.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 182.2 +++ b/ja/examples/mq.tutorial.qrefresh2.out Fri Aug 14 12:10:47 2009 -0700 182.3 @@ -0,0 +1,16 @@ 182.4 +$ \textbf{echo 'line 3' >> file1} 182.5 +$ \textbf{hg status} 182.6 +M file1 182.7 +$ \textbf{hg qrefresh} 182.8 +$ \textbf{hg tip --style=compact --patch} 182.9 +1[qtip,first.patch,tip,qbase] 182.10 + [mq]: first.patch 182.11 + 182.12 +diff -r -r file1 182.13 + 182.14 + 182.15 +@@ -1,1 +1,3 @@ line 1 182.16 + line 1 182.17 ++line 2 182.18 ++line 3 182.19 +
183.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 183.2 +++ b/ja/examples/mq.tutorial.qseries.out Fri Aug 14 12:10:47 2009 -0700 183.3 @@ -0,0 +1,6 @@ 183.4 +$ \textbf{hg qseries} 183.5 +first.patch 183.6 +second.patch 183.7 +$ \textbf{hg qapplied} 183.8 +first.patch 183.9 +second.patch
184.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 184.2 +++ b/ja/examples/rename.divergent Fri Aug 14 12:10:47 2009 -0700 184.3 @@ -0,0 +1,33 @@ 184.4 +#!/bin/bash 184.5 + 184.6 +hg init orig 184.7 +cd orig 184.8 +echo foo > foo 184.9 +hg ci -A -m 'First commit' 184.10 +cd .. 184.11 + 184.12 +#$ name: clone 184.13 + 184.14 +hg clone orig anne 184.15 +hg clone orig bob 184.16 + 184.17 +#$ name: rename.anne 184.18 + 184.19 +cd anne 184.20 +hg mv foo bar 184.21 +hg ci -m 'Rename foo to bar' 184.22 + 184.23 +#$ name: rename.bob 184.24 + 184.25 +cd ../bob 184.26 +hg mv foo quux 184.27 +hg ci -m 'Rename foo to quux' 184.28 + 184.29 +#$ name: merge 184.30 +# See http://www.selenic.com/mercurial/bts/issue455 184.31 + 184.32 +cd ../orig 184.33 +hg pull -u ../anne 184.34 +hg pull ../bob 184.35 +hg merge 184.36 +ls
185.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 185.2 +++ b/ja/examples/rename.divergent.clone.out Fri Aug 14 12:10:47 2009 -0700 185.3 @@ -0,0 +1,4 @@ 185.4 +$ \textbf{hg clone orig anne} 185.5 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 185.6 +$ \textbf{hg clone orig bob} 185.7 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved
186.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 186.2 +++ b/ja/examples/rename.divergent.merge.out Fri Aug 14 12:10:47 2009 -0700 186.3 @@ -0,0 +1,26 @@ 186.4 +# See http://www.selenic.com/mercurial/bts/issue455 186.5 +$ \textbf{cd ../orig} 186.6 +$ \textbf{hg pull -u ../anne} 186.7 +pulling from ../anne 186.8 +searching for changes 186.9 +adding changesets 186.10 +adding manifests 186.11 +adding file changes 186.12 +added 1 changesets with 1 changes to 1 files 186.13 +1 files updated, 0 files merged, 1 files removed, 0 files unresolved 186.14 +$ \textbf{hg pull ../bob} 186.15 +pulling from ../bob 186.16 +searching for changes 186.17 +adding changesets 186.18 +adding manifests 186.19 +adding file changes 186.20 +added 1 changesets with 1 changes to 1 files (+1 heads) 186.21 +(run 'hg heads' to see heads, 'hg merge' to merge) 186.22 +$ \textbf{hg merge} 186.23 +warning: detected divergent renames of foo to: 186.24 + bar 186.25 + quux 186.26 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 186.27 +(branch merge, don't forget to commit) 186.28 +$ \textbf{ls} 186.29 +bar quux
187.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 187.2 +++ b/ja/examples/rename.divergent.rename.anne.out Fri Aug 14 12:10:47 2009 -0700 187.3 @@ -0,0 +1,3 @@ 187.4 +$ \textbf{cd anne} 187.5 +$ \textbf{hg mv foo bar} 187.6 +$ \textbf{hg ci -m 'Rename foo to bar'}
188.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 188.2 +++ b/ja/examples/rename.divergent.rename.bob.out Fri Aug 14 12:10:47 2009 -0700 188.3 @@ -0,0 +1,3 @@ 188.4 +$ \textbf{cd ../bob} 188.5 +$ \textbf{hg mv foo quux} 188.6 +$ \textbf{hg ci -m 'Rename foo to quux'}
189.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 189.2 +++ b/ja/examples/rollback Fri Aug 14 12:10:47 2009 -0700 189.3 @@ -0,0 +1,37 @@ 189.4 +#!/bin/bash 189.5 + 189.6 +hg init a 189.7 +cd a 189.8 +echo a > a 189.9 +hg ci -A -m 'First commit' 189.10 + 189.11 +echo a >> a 189.12 + 189.13 +#$ name: tip 189.14 + 189.15 +#$ name: commit 189.16 + 189.17 +hg status 189.18 +echo b > b 189.19 +hg commit -m 'Add file b' 189.20 + 189.21 +#$ name: status 189.22 + 189.23 +hg status 189.24 +hg tip 189.25 + 189.26 +#$ name: rollback 189.27 + 189.28 +hg rollback 189.29 +hg tip 189.30 +hg status 189.31 + 189.32 +#$ name: add 189.33 + 189.34 +hg add b 189.35 +hg commit -m 'Add file b, this time for real' 189.36 + 189.37 +#$ name: twice 189.38 + 189.39 +hg rollback 189.40 +hg rollback
190.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 190.2 +++ b/ja/examples/rollback.add.out Fri Aug 14 12:10:47 2009 -0700 190.3 @@ -0,0 +1,2 @@ 190.4 +$ \textbf{hg add b} 190.5 +$ \textbf{hg commit -m 'Add file b, this time for real'}
191.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 191.2 +++ b/ja/examples/rollback.commit.out Fri Aug 14 12:10:47 2009 -0700 191.3 @@ -0,0 +1,4 @@ 191.4 +$ \textbf{hg status} 191.5 +M a 191.6 +$ \textbf{echo b > b} 191.7 +$ \textbf{hg commit -m 'Add file b'}
192.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 192.2 +++ b/ja/examples/rollback.rollback.out Fri Aug 14 12:10:47 2009 -0700 192.3 @@ -0,0 +1,12 @@ 192.4 +$ \textbf{hg rollback} 192.5 +rolling back last transaction 192.6 +$ \textbf{hg tip} 192.7 +changeset: 192.8 +tag: tip 192.9 +user: Bryan O'Sullivan <bos@serpentine.com> 192.10 + 192.11 +summary: First commit 192.12 + 192.13 +$ \textbf{hg status} 192.14 +M a 192.15 +? b
193.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 193.2 +++ b/ja/examples/rollback.status.out Fri Aug 14 12:10:47 2009 -0700 193.3 @@ -0,0 +1,9 @@ 193.4 +$ \textbf{hg status} 193.5 +? b 193.6 +$ \textbf{hg tip} 193.7 +changeset: 193.8 +tag: tip 193.9 +user: Bryan O'Sullivan <bos@serpentine.com> 193.10 + 193.11 +summary: Add file b 193.12 +
194.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 194.2 +++ b/ja/examples/rollback.twice.out Fri Aug 14 12:10:47 2009 -0700 194.3 @@ -0,0 +1,4 @@ 194.4 +$ \textbf{hg rollback} 194.5 +rolling back last transaction 194.6 +$ \textbf{hg rollback} 194.7 +no rollback information available
195.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 195.2 +++ b/ja/examples/run-example Fri Aug 14 12:10:47 2009 -0700 195.3 @@ -0,0 +1,391 @@ 195.4 +#!/usr/bin/env python 195.5 +# 195.6 +# This program takes something that resembles a shell script and runs 195.7 +# it, spitting input (commands from the script) and output into text 195.8 +# files, for use in examples. 195.9 + 195.10 +import cStringIO 195.11 +import errno 195.12 +import getopt 195.13 +import os 195.14 +import pty 195.15 +import re 195.16 +import select 195.17 +import shutil 195.18 +import signal 195.19 +import stat 195.20 +import sys 195.21 +import tempfile 195.22 +import time 195.23 + 195.24 +tex_subs = { 195.25 + '\\': '\\textbackslash{}', 195.26 + '{': '\\{', 195.27 + '}': '\\}', 195.28 + } 195.29 + 195.30 +def gensubs(s): 195.31 + start = 0 195.32 + for i, c in enumerate(s): 195.33 + sub = tex_subs.get(c) 195.34 + if sub: 195.35 + yield s[start:i] 195.36 + start = i + 1 195.37 + yield sub 195.38 + yield s[start:] 195.39 + 195.40 +def tex_escape(s): 195.41 + return ''.join(gensubs(s)) 195.42 + 195.43 +def maybe_unlink(name): 195.44 + try: 195.45 + os.unlink(name) 195.46 + return True 195.47 + except OSError, err: 195.48 + if err.errno != errno.ENOENT: 195.49 + raise 195.50 + return False 195.51 + 195.52 +def find_path_to(program): 195.53 + for p in os.environ.get('PATH', os.defpath).split(os.pathsep): 195.54 + name = os.path.join(p, program) 195.55 + if os.access(name, os.X_OK): 195.56 + return p 195.57 + return None 195.58 + 195.59 +class example: 195.60 + shell = '/usr/bin/env bash' 195.61 + ps1 = '__run_example_ps1__ ' 195.62 + ps2 = '__run_example_ps2__ ' 195.63 + pi_re = re.compile(r'#\$\s*(name|ignore):\s*(.*)$') 195.64 + 195.65 + timeout = 10 195.66 + 195.67 + def __init__(self, name, verbose): 195.68 + self.name = name 195.69 + self.verbose = verbose 195.70 + self.poll = select.poll() 195.71 + 195.72 + def parse(self): 195.73 + '''yield each hunk of input from the file.''' 195.74 + fp = open(self.name) 195.75 + cfp = cStringIO.StringIO() 195.76 + for line in fp: 195.77 + cfp.write(line) 195.78 + if not line.rstrip().endswith('\\'): 195.79 + yield cfp.getvalue() 195.80 + cfp.seek(0) 195.81 + cfp.truncate() 195.82 + 195.83 + def status(self, s): 195.84 + sys.stdout.write(s) 195.85 + if not s.endswith('\n'): 195.86 + sys.stdout.flush() 195.87 + 195.88 + def send(self, s): 195.89 + if self.verbose: 195.90 + print >> sys.stderr, '>', self.debugrepr(s) 195.91 + while s: 195.92 + count = os.write(self.cfd, s) 195.93 + s = s[count:] 195.94 + 195.95 + def debugrepr(self, s): 195.96 + rs = repr(s) 195.97 + limit = 60 195.98 + if len(rs) > limit: 195.99 + return ('%s%s ... [%d bytes]' % (rs[:limit], rs[0], len(s))) 195.100 + else: 195.101 + return rs 195.102 + 195.103 + timeout = 5 195.104 + 195.105 + def read(self, hint): 195.106 + events = self.poll.poll(self.timeout * 1000) 195.107 + if not events: 195.108 + print >> sys.stderr, ('[%stimed out after %d seconds]' % 195.109 + (hint, self.timeout)) 195.110 + os.kill(self.pid, signal.SIGHUP) 195.111 + return '' 195.112 + return os.read(self.cfd, 1024) 195.113 + 195.114 + def receive(self, hint): 195.115 + out = cStringIO.StringIO() 195.116 + while True: 195.117 + try: 195.118 + if self.verbose: 195.119 + sys.stderr.write('< ') 195.120 + s = self.read(hint) 195.121 + except OSError, err: 195.122 + if err.errno == errno.EIO: 195.123 + return '', '' 195.124 + raise 195.125 + if self.verbose: 195.126 + print >> sys.stderr, self.debugrepr(s) 195.127 + out.write(s) 195.128 + s = out.getvalue() 195.129 + if s.endswith(self.ps1): 195.130 + return self.ps1, s.replace('\r\n', '\n')[:-len(self.ps1)] 195.131 + if s.endswith(self.ps2): 195.132 + return self.ps2, s.replace('\r\n', '\n')[:-len(self.ps2)] 195.133 + 195.134 + def sendreceive(self, s, hint): 195.135 + self.send(s) 195.136 + ps, r = self.receive(hint) 195.137 + if r.startswith(s): 195.138 + r = r[len(s):] 195.139 + return ps, r 195.140 + 195.141 + def run(self): 195.142 + ofp = None 195.143 + basename = os.path.basename(self.name) 195.144 + self.status('running %s ' % basename) 195.145 + tmpdir = tempfile.mkdtemp(prefix=basename) 195.146 + 195.147 + # remove the marker file that we tell make to use to see if 195.148 + # this run succeeded 195.149 + maybe_unlink(self.name + '.run') 195.150 + 195.151 + rcfile = os.path.join(tmpdir, '.hgrc') 195.152 + rcfp = open(rcfile, 'w') 195.153 + print >> rcfp, '[ui]' 195.154 + print >> rcfp, "username = Bryan O'Sullivan <bos@serpentine.com>" 195.155 + 195.156 + rcfile = os.path.join(tmpdir, '.bashrc') 195.157 + rcfp = open(rcfile, 'w') 195.158 + print >> rcfp, 'PS1="%s"' % self.ps1 195.159 + print >> rcfp, 'PS2="%s"' % self.ps2 195.160 + print >> rcfp, 'unset HISTFILE' 195.161 + path = ['/usr/bin', '/bin'] 195.162 + hg = find_path_to('hg') 195.163 + if hg and hg not in path: 195.164 + path.append(hg) 195.165 + def re_export(envar): 195.166 + v = os.getenv(envar) 195.167 + if v is not None: 195.168 + print >> rcfp, 'export ' + envar + '=' + v 195.169 + print >> rcfp, 'export PATH=' + ':'.join(path) 195.170 + re_export('PYTHONPATH') 195.171 + print >> rcfp, 'export EXAMPLE_DIR="%s"' % os.getcwd() 195.172 + print >> rcfp, 'export HGMERGE=merge' 195.173 + print >> rcfp, 'export LANG=C' 195.174 + print >> rcfp, 'export LC_ALL=C' 195.175 + print >> rcfp, 'export TZ=GMT' 195.176 + print >> rcfp, 'export HGRC="%s/.hgrc"' % tmpdir 195.177 + print >> rcfp, 'export HGRCPATH=$HGRC' 195.178 + print >> rcfp, 'cd %s' % tmpdir 195.179 + rcfp.close() 195.180 + sys.stdout.flush() 195.181 + sys.stderr.flush() 195.182 + self.pid, self.cfd = pty.fork() 195.183 + if self.pid == 0: 195.184 + cmdline = ['/usr/bin/env', '-i', 'bash', '--noediting', 195.185 + '--noprofile', '--norc'] 195.186 + try: 195.187 + os.execv(cmdline[0], cmdline) 195.188 + except OSError, err: 195.189 + print >> sys.stderr, '%s: %s' % (cmdline[0], err.strerror) 195.190 + sys.stderr.flush() 195.191 + os._exit(0) 195.192 + self.poll.register(self.cfd, select.POLLIN | select.POLLERR | 195.193 + select.POLLHUP) 195.194 + 195.195 + prompts = { 195.196 + '': '', 195.197 + self.ps1: '$', 195.198 + self.ps2: '>', 195.199 + } 195.200 + 195.201 + ignore = [ 195.202 + r'\d+:[0-9a-f]{12}', # changeset number:hash 195.203 + r'[0-9a-f]{40}', # long changeset hash 195.204 + r'[0-9a-f]{12}', # short changeset hash 195.205 + r'^(?:---|\+\+\+) .*', # diff header with dates 195.206 + r'^date:.*', # date 195.207 + #r'^diff -r.*', # "diff -r" is followed by hash 195.208 + r'^# Date \d+ \d+', # hg patch header 195.209 + ] 195.210 + 195.211 + err = False 195.212 + read_hint = '' 195.213 + 195.214 + try: 195.215 + try: 195.216 + # eat first prompt string from shell 195.217 + self.read(read_hint) 195.218 + # setup env and prompt 195.219 + ps, output = self.sendreceive('source %s\n' % rcfile, 195.220 + read_hint) 195.221 + for hunk in self.parse(): 195.222 + # is this line a processing instruction? 195.223 + m = self.pi_re.match(hunk) 195.224 + if m: 195.225 + pi, rest = m.groups() 195.226 + if pi == 'name': 195.227 + self.status('.') 195.228 + out = rest 195.229 + if out in ('err', 'lxo', 'out', 'run', 'tmp'): 195.230 + print >> sys.stderr, ('%s: illegal section ' 195.231 + 'name %r' % 195.232 + (self.name, out)) 195.233 + return 1 195.234 + assert os.sep not in out 195.235 + if ofp is not None: 195.236 + ofp.close() 195.237 + err |= self.rename_output(ofp_basename, ignore) 195.238 + if out: 195.239 + ofp_basename = '%s.%s' % (self.name, out) 195.240 + read_hint = ofp_basename + ' ' 195.241 + ofp = open(ofp_basename + '.tmp', 'w') 195.242 + else: 195.243 + ofp = None 195.244 + elif pi == 'ignore': 195.245 + ignore.append(rest) 195.246 + elif hunk.strip(): 195.247 + # it's something we should execute 195.248 + newps, output = self.sendreceive(hunk, read_hint) 195.249 + if not ofp: 195.250 + continue 195.251 + # first, print the command we ran 195.252 + if not hunk.startswith('#'): 195.253 + nl = hunk.endswith('\n') 195.254 + hunk = ('%s \\textbf{%s}' % 195.255 + (prompts[ps], 195.256 + tex_escape(hunk.rstrip('\n')))) 195.257 + if nl: hunk += '\n' 195.258 + ofp.write(hunk) 195.259 + # then its output 195.260 + ofp.write(tex_escape(output)) 195.261 + ps = newps 195.262 + self.status('\n') 195.263 + except: 195.264 + print >> sys.stderr, '(killed)' 195.265 + os.kill(self.pid, signal.SIGKILL) 195.266 + pid, rc = os.wait() 195.267 + raise 195.268 + else: 195.269 + try: 195.270 + ps, output = self.sendreceive('exit\n', read_hint) 195.271 + if ofp is not None: 195.272 + ofp.write(output) 195.273 + ofp.close() 195.274 + err |= self.rename_output(ofp_basename, ignore) 195.275 + os.close(self.cfd) 195.276 + except IOError: 195.277 + pass 195.278 + os.kill(self.pid, signal.SIGTERM) 195.279 + pid, rc = os.wait() 195.280 + err = err or rc 195.281 + if err: 195.282 + if os.WIFEXITED(rc): 195.283 + print >> sys.stderr, '(exit %s)' % os.WEXITSTATUS(rc) 195.284 + elif os.WIFSIGNALED(rc): 195.285 + print >> sys.stderr, '(signal %s)' % os.WTERMSIG(rc) 195.286 + else: 195.287 + open(self.name + '.run', 'w') 195.288 + return err 195.289 + finally: 195.290 + shutil.rmtree(tmpdir) 195.291 + 195.292 + def rename_output(self, base, ignore): 195.293 + mangle_re = re.compile('(?:' + '|'.join(ignore) + ')') 195.294 + def mangle(s): 195.295 + return mangle_re.sub('', s) 195.296 + def matchfp(fp1, fp2): 195.297 + while True: 195.298 + s1 = mangle(fp1.readline()) 195.299 + s2 = mangle(fp2.readline()) 195.300 + if cmp(s1, s2): 195.301 + break 195.302 + if not s1: 195.303 + return True 195.304 + return False 195.305 + 195.306 + oldname = base + '.out' 195.307 + tmpname = base + '.tmp' 195.308 + errname = base + '.err' 195.309 + errfp = open(errname, 'w+') 195.310 + for line in open(tmpname): 195.311 + errfp.write(mangle_re.sub('', line)) 195.312 + os.rename(tmpname, base + '.lxo') 195.313 + errfp.seek(0) 195.314 + try: 195.315 + oldfp = open(oldname) 195.316 + except IOError, err: 195.317 + if err.errno != errno.ENOENT: 195.318 + raise 195.319 + os.rename(errname, oldname) 195.320 + return False 195.321 + if matchfp(oldfp, errfp): 195.322 + os.unlink(errname) 195.323 + return False 195.324 + else: 195.325 + print >> sys.stderr, '\nOutput of %s has changed!' % base 195.326 + os.system('diff -u %s %s 1>&2' % (oldname, errname)) 195.327 + return True 195.328 + 195.329 +def print_help(exit, msg=None): 195.330 + if msg: 195.331 + print >> sys.stderr, 'Error:', msg 195.332 + print >> sys.stderr, 'Usage: run-example [options] [test...]' 195.333 + print >> sys.stderr, 'Options:' 195.334 + print >> sys.stderr, ' -a --all run all tests in this directory' 195.335 + print >> sys.stderr, ' -h --help print this help message' 195.336 + print >> sys.stderr, ' -v --verbose display extra debug output' 195.337 + sys.exit(exit) 195.338 + 195.339 +def main(path='.'): 195.340 + opts, args = getopt.getopt(sys.argv[1:], '?ahv', 195.341 + ['all', 'help', 'verbose']) 195.342 + verbose = False 195.343 + run_all = False 195.344 + for o, a in opts: 195.345 + if o in ('-h', '-?', '--help'): 195.346 + print_help(0) 195.347 + if o in ('-a', '--all'): 195.348 + run_all = True 195.349 + if o in ('-v', '--verbose'): 195.350 + verbose = True 195.351 + errs = 0 195.352 + if args: 195.353 + for a in args: 195.354 + try: 195.355 + st = os.lstat(a) 195.356 + except OSError, err: 195.357 + print >> sys.stderr, '%s: %s' % (a, err.strerror) 195.358 + errs += 1 195.359 + continue 195.360 + if stat.S_ISREG(st.st_mode) and st.st_mode & 0111: 195.361 + if example(a, verbose).run(): 195.362 + errs += 1 195.363 + else: 195.364 + print >> sys.stderr, '%s: not a file, or not executable' % a 195.365 + errs += 1 195.366 + elif run_all: 195.367 + names = os.listdir(path) 195.368 + names.sort() 195.369 + for name in names: 195.370 + if name == 'run-example' or name.startswith('.'): continue 195.371 + if name.endswith('.out') or name.endswith('~'): continue 195.372 + if name.endswith('.run'): continue 195.373 + pathname = os.path.join(path, name) 195.374 + try: 195.375 + st = os.lstat(pathname) 195.376 + except OSError, err: 195.377 + # could be an output file that was removed while we ran 195.378 + if err.errno != errno.ENOENT: 195.379 + raise 195.380 + continue 195.381 + if stat.S_ISREG(st.st_mode) and st.st_mode & 0111: 195.382 + if example(pathname, verbose).run(): 195.383 + errs += 1 195.384 + print >> open(os.path.join(path, '.run'), 'w'), time.asctime() 195.385 + else: 195.386 + print_help(1, msg='no test names given, and --all not provided') 195.387 + return errs 195.388 + 195.389 +if __name__ == '__main__': 195.390 + try: 195.391 + sys.exit(main()) 195.392 + except KeyboardInterrupt: 195.393 + print >> sys.stderr, 'interrupted!' 195.394 + sys.exit(1)
196.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 196.2 +++ b/ja/examples/svn-long.txt Fri Aug 14 12:10:47 2009 -0700 196.3 @@ -0,0 +1,11 @@ 196.4 +------------------------------------------------------------------------ 196.5 +r9653 | sean.hefty | 2006-09-27 14:39:55 -0700 (Wed, 27 Sep 2006) | 5 lines 196.6 +Changed paths: 196.7 + M /gen2/trunk/src/linux-kernel/infiniband/core/cma.c 196.8 + 196.9 +On reporting a route error, also include the status for the error, 196.10 +rather than indicating a status of 0 when an error has occurred. 196.11 + 196.12 +Signed-off-by: Sean Hefty <sean.hefty@intel.com> 196.13 + 196.14 +------------------------------------------------------------------------
197.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 197.2 +++ b/ja/examples/svn-short.txt Fri Aug 14 12:10:47 2009 -0700 197.3 @@ -0,0 +1,9 @@ 197.4 +------------------------------------------------------------------------ 197.5 +r9653 | sean.hefty | 2006-09-27 14:39:55 -0700 (Wed, 27 Sep 2006) | 5 lines 197.6 + 197.7 +On reporting a route error, also include the status for the error, 197.8 +rather than indicating a status of 0 when an error has occurred. 197.9 + 197.10 +Signed-off-by: Sean Hefty <sean.hefty@intel.com> 197.11 + 197.12 +------------------------------------------------------------------------
198.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 198.2 +++ b/ja/examples/svn.style Fri Aug 14 12:10:47 2009 -0700 198.3 @@ -0,0 +1,2 @@ 198.4 +header = '------------------------------------------------------------------------\n\n' 198.5 +changeset = svn.template
199.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 199.2 +++ b/ja/examples/svn.template Fri Aug 14 12:10:47 2009 -0700 199.3 @@ -0,0 +1,5 @@ 199.4 +r{rev} | {author|user} | {date|isodate} ({date|rfc822date}) 199.5 + 199.6 +{desc|strip|fill76} 199.7 + 199.8 +------------------------------------------------------------------------
200.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 200.2 +++ b/ja/examples/tag Fri Aug 14 12:10:47 2009 -0700 200.3 @@ -0,0 +1,44 @@ 200.4 +#!/bin/bash 200.5 + 200.6 +#$ name: init 200.7 + 200.8 +hg init mytag 200.9 +cd mytag 200.10 + 200.11 +echo hello > myfile 200.12 +hg commit -A -m 'Initial commit' 200.13 + 200.14 +#$ name: tag 200.15 + 200.16 +hg tag v1.0 200.17 + 200.18 +#$ name: tags 200.19 + 200.20 +hg tags 200.21 + 200.22 +#$ name: log 200.23 + 200.24 +hg log 200.25 + 200.26 +#$ name: log.v1.0 200.27 + 200.28 +echo goodbye > myfile2 200.29 +hg commit -A -m 'Second commit' 200.30 +hg log -r v1.0 200.31 + 200.32 +#$ name: remove 200.33 + 200.34 +hg tag --remove v1.0 200.35 +hg tags 200.36 + 200.37 +#$ name: replace 200.38 + 200.39 +hg tag -r 1 v1.1 200.40 +hg tags 200.41 +hg tag -r 2 v1.1 200.42 +hg tag -f -r 2 v1.1 200.43 +hg tags 200.44 + 200.45 +#$ name: tip 200.46 + 200.47 +hg tip
201.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 201.2 +++ b/ja/examples/tag.init.out Fri Aug 14 12:10:47 2009 -0700 201.3 @@ -0,0 +1,5 @@ 201.4 +$ \textbf{hg init mytag} 201.5 +$ \textbf{cd mytag} 201.6 +$ \textbf{echo hello > myfile} 201.7 +$ \textbf{hg commit -A -m 'Initial commit'} 201.8 +adding myfile
202.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 202.2 +++ b/ja/examples/tag.log.out Fri Aug 14 12:10:47 2009 -0700 202.3 @@ -0,0 +1,13 @@ 202.4 +$ \textbf{hg log} 202.5 +changeset: 202.6 +tag: tip 202.7 +user: Bryan O'Sullivan <bos@serpentine.com> 202.8 + 202.9 +summary: Added tag v1.0 for changeset 202.10 + 202.11 +changeset: 202.12 +tag: v1.0 202.13 +user: Bryan O'Sullivan <bos@serpentine.com> 202.14 + 202.15 +summary: Initial commit 202.16 +
203.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 203.2 +++ b/ja/examples/tag.log.v1.0.out Fri Aug 14 12:10:47 2009 -0700 203.3 @@ -0,0 +1,10 @@ 203.4 +$ \textbf{echo goodbye > myfile2} 203.5 +$ \textbf{hg commit -A -m 'Second commit'} 203.6 +adding myfile2 203.7 +$ \textbf{hg log -r v1.0} 203.8 +changeset: 203.9 +tag: v1.0 203.10 +user: Bryan O'Sullivan <bos@serpentine.com> 203.11 + 203.12 +summary: Initial commit 203.13 +
204.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 204.2 +++ b/ja/examples/tag.remove.out Fri Aug 14 12:10:47 2009 -0700 204.3 @@ -0,0 +1,3 @@ 204.4 +$ \textbf{hg tag --remove v1.0} 204.5 +$ \textbf{hg tags} 204.6 +tip
205.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 205.2 +++ b/ja/examples/tag.replace.out Fri Aug 14 12:10:47 2009 -0700 205.3 @@ -0,0 +1,10 @@ 205.4 +$ \textbf{hg tag -r 1 v1.1} 205.5 +$ \textbf{hg tags} 205.6 +tip 205.7 +v1.1 205.8 +$ \textbf{hg tag -r 2 v1.1} 205.9 +abort: a tag named v1.1 already exists (use -f to force) 205.10 +$ \textbf{hg tag -f -r 2 v1.1} 205.11 +$ \textbf{hg tags} 205.12 +tip 205.13 +v1.1
206.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 206.2 +++ b/ja/examples/tag.tag.out Fri Aug 14 12:10:47 2009 -0700 206.3 @@ -0,0 +1,1 @@ 206.4 +$ \textbf{hg tag v1.0}
207.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 207.2 +++ b/ja/examples/tag.tags.out Fri Aug 14 12:10:47 2009 -0700 207.3 @@ -0,0 +1,3 @@ 207.4 +$ \textbf{hg tags} 207.5 +tip 207.6 +v1.0
208.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 208.2 +++ b/ja/examples/tag.tip.out Fri Aug 14 12:10:47 2009 -0700 208.3 @@ -0,0 +1,7 @@ 208.4 +$ \textbf{hg tip} 208.5 +changeset: 208.6 +tag: tip 208.7 +user: Bryan O'Sullivan <bos@serpentine.com> 208.8 + 208.9 +summary: Added tag v1.1 for changeset 208.10 +
209.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 209.2 +++ b/ja/examples/template.simple Fri Aug 14 12:10:47 2009 -0700 209.3 @@ -0,0 +1,96 @@ 209.4 +#!/bin/bash 209.5 + 209.6 +# So many different bits of random output, it would be a nightmare to 209.7 +# ignore each individually. 209.8 +#$ ignore: .* 209.9 + 209.10 +hg init myrepo 209.11 +cd myrepo 209.12 +echo hello > hello 209.13 +hg commit -Am'added hello' 209.14 + 209.15 +echo hello >> hello 209.16 +echo goodbye > goodbye 209.17 +echo ' added line to end of <<hello>> file.' > ../msg 209.18 +echo '' >> ../msg 209.19 +echo 'in addition, added a file with the helpful name (at least i hope that some might consider it so) of goodbye.' >> ../msg 209.20 + 209.21 +hg commit -Al../msg 209.22 + 209.23 +hg tag mytag 209.24 +hg tag v0.1 209.25 + 209.26 +#$ name: normal 209.27 + 209.28 +hg log -r1 209.29 + 209.30 +#$ name: compact 209.31 + 209.32 +hg log --style compact 209.33 + 209.34 +#$ name: changelog 209.35 + 209.36 +hg log --style changelog 209.37 + 209.38 +#$ name: simplest 209.39 + 209.40 +hg log -r1 --template 'i saw a changeset\n' 209.41 + 209.42 +#$ name: simplesub 209.43 + 209.44 +hg log --template 'i saw a changeset: {desc}\n' 209.45 + 209.46 +#$ name: keywords 209.47 + 209.48 +hg log -r1 --template 'author: {author}\n' 209.49 +hg log -r1 --template 'desc:\n{desc}\n' 209.50 +hg log -r1 --template 'files: {files}\n' 209.51 +hg log -r1 --template 'file_adds: {file_adds}\n' 209.52 +hg log -r1 --template 'file_dels: {file_dels}\n' 209.53 +hg log -r1 --template 'node: {node}\n' 209.54 +hg log -r1 --template 'parents: {parents}\n' 209.55 +hg log -r1 --template 'rev: {rev}\n' 209.56 +hg log -r1 --template 'tags: {tags}\n' 209.57 + 209.58 +#$ name: datekeyword 209.59 + 209.60 +hg log -r1 --template 'date: {date}\n' 209.61 +hg log -r1 --template 'date: {date|isodate}\n' 209.62 + 209.63 +#$ name: manyfilters 209.64 + 209.65 +hg log -r1 --template '{author}\n' 209.66 +hg log -r1 --template '{author|domain}\n' 209.67 +hg log -r1 --template '{author|email}\n' 209.68 +hg log -r1 --template '{author|obfuscate}\n' | cut -c-76 209.69 +hg log -r1 --template '{author|person}\n' 209.70 +hg log -r1 --template '{author|user}\n' 209.71 + 209.72 +hg log -r1 --template 'looks almost right, but actually garbage: {date}\n' 209.73 +hg log -r1 --template '{date|age}\n' 209.74 +hg log -r1 --template '{date|date}\n' 209.75 +hg log -r1 --template '{date|hgdate}\n' 209.76 +hg log -r1 --template '{date|isodate}\n' 209.77 +hg log -r1 --template '{date|rfc822date}\n' 209.78 +hg log -r1 --template '{date|shortdate}\n' 209.79 + 209.80 +hg log -r1 --template '{desc}\n' | cut -c-76 209.81 +hg log -r1 --template '{desc|addbreaks}\n' | cut -c-76 209.82 +hg log -r1 --template '{desc|escape}\n' | cut -c-76 209.83 +hg log -r1 --template '{desc|fill68}\n' 209.84 +hg log -r1 --template '{desc|fill76}\n' 209.85 +hg log -r1 --template '{desc|firstline}\n' 209.86 +hg log -r1 --template '{desc|strip}\n' | cut -c-76 209.87 +hg log -r1 --template '{desc|tabindent}\n' | expand | cut -c-76 209.88 + 209.89 +hg log -r1 --template '{node}\n' 209.90 +hg log -r1 --template '{node|short}\n' 209.91 + 209.92 +#$ name: combine 209.93 + 209.94 +hg log -r1 --template 'description:\n\t{desc|strip|fill68|tabindent}\n' 209.95 + 209.96 +#$ name: rev 209.97 + 209.98 +echo 'changeset = "rev: {rev}\n"' > rev 209.99 +hg log -l1 --style ./rev
210.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 210.2 +++ b/ja/examples/template.simple.changelog.out Fri Aug 14 12:10:47 2009 -0700 210.3 @@ -0,0 +1,22 @@ 210.4 + 210.5 + 210.6 + 210.7 + 210.8 + 210.9 + 210.10 + 210.11 + 210.12 + 210.13 + 210.14 + 210.15 + 210.16 + 210.17 + 210.18 + 210.19 + 210.20 + 210.21 + 210.22 + 210.23 + 210.24 + 210.25 +
211.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 211.2 +++ b/ja/examples/template.simple.combine.out Fri Aug 14 12:10:47 2009 -0700 211.3 @@ -0,0 +1,6 @@ 211.4 + 211.5 + 211.6 + 211.7 + 211.8 + 211.9 +
212.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 212.2 +++ b/ja/examples/template.simple.compact.out Fri Aug 14 12:10:47 2009 -0700 212.3 @@ -0,0 +1,13 @@ 212.4 + 212.5 + 212.6 + 212.7 + 212.8 + 212.9 + 212.10 + 212.11 + 212.12 + 212.13 + 212.14 + 212.15 + 212.16 +
213.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 213.2 +++ b/ja/examples/template.simple.datekeyword.out Fri Aug 14 12:10:47 2009 -0700 213.3 @@ -0,0 +1,4 @@ 213.4 + 213.5 + 213.6 + 213.7 +
214.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 214.2 +++ b/ja/examples/template.simple.keywords.out Fri Aug 14 12:10:47 2009 -0700 214.3 @@ -0,0 +1,21 @@ 214.4 + 214.5 + 214.6 + 214.7 + 214.8 + 214.9 + 214.10 + 214.11 + 214.12 + 214.13 + 214.14 + 214.15 + 214.16 + 214.17 + 214.18 + 214.19 + 214.20 + 214.21 + 214.22 + 214.23 + 214.24 +
215.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 215.2 +++ b/ja/examples/template.simple.manyfilters.out Fri Aug 14 12:10:47 2009 -0700 215.3 @@ -0,0 +1,62 @@ 215.4 + 215.5 + 215.6 + 215.7 + 215.8 + 215.9 + 215.10 + 215.11 + 215.12 + 215.13 + 215.14 + 215.15 + 215.16 + 215.17 + 215.18 + 215.19 + 215.20 + 215.21 + 215.22 + 215.23 + 215.24 + 215.25 + 215.26 + 215.27 + 215.28 + 215.29 + 215.30 + 215.31 + 215.32 + 215.33 + 215.34 + 215.35 + 215.36 + 215.37 + 215.38 + 215.39 + 215.40 + 215.41 + 215.42 + 215.43 + 215.44 + 215.45 + 215.46 + 215.47 + 215.48 + 215.49 + 215.50 + 215.51 + 215.52 + 215.53 + 215.54 + 215.55 + 215.56 + 215.57 + 215.58 + 215.59 + 215.60 + 215.61 + 215.62 + 215.63 + 215.64 + 215.65 +
216.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 216.2 +++ b/ja/examples/template.simple.normal.out Fri Aug 14 12:10:47 2009 -0700 216.3 @@ -0,0 +1,7 @@ 216.4 + 216.5 + 216.6 + 216.7 + 216.8 + 216.9 + 216.10 +
217.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 217.2 +++ b/ja/examples/template.simple.rev.out Fri Aug 14 12:10:47 2009 -0700 217.3 @@ -0,0 +1,3 @@ 217.4 + 217.5 + 217.6 +
218.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 218.2 +++ b/ja/examples/template.simple.simplest.out Fri Aug 14 12:10:47 2009 -0700 218.3 @@ -0,0 +1,2 @@ 218.4 + 218.5 +
219.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 219.2 +++ b/ja/examples/template.simple.simplesub.out Fri Aug 14 12:10:47 2009 -0700 219.3 @@ -0,0 +1,7 @@ 219.4 + 219.5 + 219.6 + 219.7 + 219.8 + 219.9 + 219.10 +
220.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 220.2 +++ b/ja/examples/template.svnstyle Fri Aug 14 12:10:47 2009 -0700 220.3 @@ -0,0 +1,70 @@ 220.4 +#!/bin/bash 220.5 + 220.6 +svn() { 220.7 + cat $EXAMPLE_DIR/svn-short.txt 220.8 +} 220.9 + 220.10 +#$ name: short 220.11 + 220.12 +svn log -r9653 220.13 + 220.14 +#$ name: 220.15 + 220.16 +hg init myrepo 220.17 +cd myrepo 220.18 + 220.19 +echo hello > hello 220.20 +hg commit -Am'added hello' 220.21 + 220.22 +echo hello >> hello 220.23 +echo goodbye > goodbye 220.24 +echo ' added line to end of <<hello>> file.' > ../msg 220.25 +echo '' >> ../msg 220.26 +echo 'in addition, added a file with the helpful name (at least i hope that some might consider it so) of goodbye.' >> ../msg 220.27 + 220.28 +hg commit -Al../msg 220.29 + 220.30 +hg tag mytag 220.31 +hg tag v0.1 220.32 + 220.33 +echo 'changeset = "{node|short}\n"' > svn.style 220.34 + 220.35 +#$ name: id 220.36 + 220.37 +hg log -r0 --template '{node}' 220.38 + 220.39 +#$ name: simplest 220.40 + 220.41 +cat svn.style 220.42 +hg log -r1 --style svn.style 220.43 + 220.44 +#$ name: 220.45 + 220.46 +echo 'changeset =' > broken.style 220.47 + 220.48 +#$ name: syntax.input 220.49 + 220.50 +cat broken.style 220.51 + 220.52 +#$ name: syntax.error 220.53 + 220.54 +hg log -r1 --style broken.style 220.55 + 220.56 +#$ name: 220.57 + 220.58 +cp $EXAMPLE_DIR/svn.style . 220.59 +cp $EXAMPLE_DIR/svn.template . 220.60 + 220.61 +#$ name: template 220.62 + 220.63 +cat svn.template 220.64 + 220.65 +#$ name: style 220.66 + 220.67 +cat svn.style 220.68 + 220.69 +#$ name: result 220.70 +#$ ignore: \| 200[78].* 220.71 + 220.72 +hg log -r1 --style svn.style 220.73 +
221.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 221.2 +++ b/ja/examples/template.svnstyle.id.out Fri Aug 14 12:10:47 2009 -0700 221.3 @@ -0,0 +1,1 @@ 221.4 +$ \textbf{hg log -r0 --template '\{node\}'}
222.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 222.2 +++ b/ja/examples/template.svnstyle.result.out Fri Aug 14 12:10:47 2009 -0700 222.3 @@ -0,0 +1,11 @@ 222.4 +$ \textbf{hg log -r1 --style svn.style} 222.5 +------------------------------------------------------------------------ 222.6 + 222.7 +r1 | bos 222.8 + 222.9 +added line to end of <<hello>> file. 222.10 + 222.11 +in addition, added a file with the helpful name (at least i hope that some 222.12 +might consider it so) of goodbye. 222.13 + 222.14 +------------------------------------------------------------------------
223.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 223.2 +++ b/ja/examples/template.svnstyle.short.out Fri Aug 14 12:10:47 2009 -0700 223.3 @@ -0,0 +1,10 @@ 223.4 +$ \textbf{svn log -r9653} 223.5 +------------------------------------------------------------------------ 223.6 +r9653 | sean.hefty | 2006-09-27 14:39:55 -0700 (Wed, 27 Sep 2006) | 5 lines 223.7 + 223.8 +On reporting a route error, also include the status for the error, 223.9 +rather than indicating a status of 0 when an error has occurred. 223.10 + 223.11 +Signed-off-by: Sean Hefty <sean.hefty@intel.com> 223.12 + 223.13 +------------------------------------------------------------------------
224.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 224.2 +++ b/ja/examples/template.svnstyle.simplest.out Fri Aug 14 12:10:47 2009 -0700 224.3 @@ -0,0 +1,4 @@ 224.4 +$ \textbf{cat svn.style} 224.5 +changeset = "\{node|short\}\textbackslash{}n" 224.6 +$ \textbf{hg log -r1 --style svn.style} 224.7 +
225.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 225.2 +++ b/ja/examples/template.svnstyle.style.out Fri Aug 14 12:10:47 2009 -0700 225.3 @@ -0,0 +1,3 @@ 225.4 +$ \textbf{cat svn.style} 225.5 +header = '------------------------------------------------------------------------\textbackslash{}n\textbackslash{}n' 225.6 +changeset = svn.template
226.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 226.2 +++ b/ja/examples/template.svnstyle.syntax.error.out Fri Aug 14 12:10:47 2009 -0700 226.3 @@ -0,0 +1,2 @@ 226.4 +$ \textbf{hg log -r1 --style broken.style} 226.5 +abort: broken.style:1: parse error
227.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 227.2 +++ b/ja/examples/template.svnstyle.syntax.input.out Fri Aug 14 12:10:47 2009 -0700 227.3 @@ -0,0 +1,2 @@ 227.4 +$ \textbf{cat broken.style} 227.5 +changeset =
228.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 228.2 +++ b/ja/examples/template.svnstyle.template.out Fri Aug 14 12:10:47 2009 -0700 228.3 @@ -0,0 +1,6 @@ 228.4 +$ \textbf{cat svn.template} 228.5 +r\{rev\} | \{author|user\} | \{date|isodate\} (\{date|rfc822date\}) 228.6 + 228.7 +\{desc|strip|fill76\} 228.8 + 228.9 +------------------------------------------------------------------------
229.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 229.2 +++ b/ja/examples/tour Fri Aug 14 12:10:47 2009 -0700 229.3 @@ -0,0 +1,178 @@ 229.4 +#!/bin/bash 229.5 + 229.6 +#$ name: version 229.7 + 229.8 +hg version 229.9 + 229.10 +#$ name: help 229.11 + 229.12 +hg help init 229.13 + 229.14 +#$ name: clone 229.15 + 229.16 +hg clone http://hg.serpentine.com/tutorial/hello 229.17 + 229.18 +#$ name: ls 229.19 +#$ ignore: ^drwx.* 229.20 +#$ ignore: ^total \d+ 229.21 + 229.22 +ls -l 229.23 +ls hello 229.24 + 229.25 +#$ name: ls-a 229.26 + 229.27 +cd hello 229.28 +ls -a 229.29 + 229.30 +#$ name: log 229.31 + 229.32 +hg log 229.33 + 229.34 +#$ name: log-r 229.35 + 229.36 +hg log -r 3 229.37 +hg log -r ff5d7b70a2a9 229.38 +hg log -r 1 -r 4 229.39 + 229.40 +#$ name: log.range 229.41 + 229.42 +hg log -r 2:4 229.43 + 229.44 +#$ name: log-v 229.45 + 229.46 +hg log -v -r 3 229.47 + 229.48 +#$ name: log-vp 229.49 + 229.50 +hg log -v -p -r 2 229.51 + 229.52 +#$ name: reclone 229.53 + 229.54 +cd .. 229.55 +hg clone hello my-hello 229.56 +cd my-hello 229.57 + 229.58 +#$ name: sed 229.59 + 229.60 +sed -i '/printf/a\\tprintf("hello again!\\n");' hello.c 229.61 + 229.62 +#$ name: status 229.63 + 229.64 +ls 229.65 +hg status 229.66 + 229.67 +#$ name: diff 229.68 + 229.69 +hg diff 229.70 + 229.71 +#$ name: 229.72 + 229.73 +export HGEDITOR='echo Added an extra line of output >' 229.74 + 229.75 +#$ name: commit 229.76 + 229.77 +hg commit 229.78 + 229.79 +#$ name: tip 229.80 + 229.81 +hg tip -vp 229.82 + 229.83 +#$ name: clone-pull 229.84 + 229.85 +cd .. 229.86 +hg clone hello hello-pull 229.87 + 229.88 +#$ name: incoming 229.89 + 229.90 +cd hello-pull 229.91 +hg incoming ../my-hello 229.92 + 229.93 +#$ name: pull 229.94 + 229.95 +hg tip 229.96 +hg pull ../my-hello 229.97 +hg tip 229.98 + 229.99 +#$ name: update 229.100 + 229.101 +grep printf hello.c 229.102 +hg update tip 229.103 +grep printf hello.c 229.104 + 229.105 +#$ name: parents 229.106 + 229.107 +hg parents 229.108 + 229.109 +#$ name: older 229.110 + 229.111 +hg update 2 229.112 +hg parents 229.113 +hg update 229.114 + 229.115 +#$ name: clone-push 229.116 + 229.117 +cd .. 229.118 +hg clone hello hello-push 229.119 + 229.120 +#$ name: outgoing 229.121 + 229.122 +cd my-hello 229.123 +hg outgoing ../hello-push 229.124 + 229.125 +#$ name: push 229.126 + 229.127 +hg push ../hello-push 229.128 + 229.129 +#$ name: push.nothing 229.130 + 229.131 +hg push ../hello-push 229.132 + 229.133 +#$ name: outgoing.net 229.134 + 229.135 +hg outgoing http://hg.serpentine.com/tutorial/hello 229.136 + 229.137 +#$ name: push.net 229.138 + 229.139 +hg push http://hg.serpentine.com/tutorial/hello 229.140 + 229.141 +#$ name: merge.clone 229.142 + 229.143 +cd .. 229.144 +hg clone hello my-new-hello 229.145 +cd my-new-hello 229.146 +sed -i '/printf/i\\tprintf("once more, hello.\\n");' hello.c 229.147 +hg commit -m 'A new hello for a new day.' 229.148 + 229.149 +#$ name: merge.cat 229.150 + 229.151 +cat hello.c 229.152 +cat ../my-hello/hello.c 229.153 + 229.154 +#$ name: merge.pull 229.155 + 229.156 +hg pull ../my-hello 229.157 + 229.158 +#$ name: merge.heads 229.159 + 229.160 +hg heads 229.161 + 229.162 +#$ name: merge.update 229.163 + 229.164 +hg update 229.165 + 229.166 +#$ name: merge.merge 229.167 + 229.168 +hg merge 229.169 + 229.170 +#$ name: merge.parents 229.171 + 229.172 +hg parents 229.173 +cat hello.c 229.174 + 229.175 +#$ name: merge.commit 229.176 + 229.177 +hg commit -m 'Merged changes' 229.178 + 229.179 +#$ name: merge.tip 229.180 + 229.181 +hg tip
230.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 230.2 +++ b/ja/examples/tour-merge-conflict Fri Aug 14 12:10:47 2009 -0700 230.3 @@ -0,0 +1,72 @@ 230.4 +#!/bin/bash 230.5 + 230.6 +hg init scam 230.7 +cd scam 230.8 + 230.9 +#$ name: wife 230.10 + 230.11 +cat > letter.txt <<EOF 230.12 +Greetings! 230.13 + 230.14 +I am Mariam Abacha, the wife of former 230.15 +Nigerian dictator Sani Abacha. 230.16 +EOF 230.17 + 230.18 +hg add letter.txt 230.19 +hg commit -m '419 scam, first draft' 230.20 + 230.21 +#$ name: cousin 230.22 + 230.23 +cd .. 230.24 +hg clone scam scam-cousin 230.25 +cd scam-cousin 230.26 + 230.27 +cat > letter.txt <<EOF 230.28 +Greetings! 230.29 + 230.30 +I am Shehu Musa Abacha, cousin to the former 230.31 +Nigerian dictator Sani Abacha. 230.32 +EOF 230.33 + 230.34 +hg commit -m '419 scam, with cousin' 230.35 + 230.36 +#$ name: son 230.37 + 230.38 +cd .. 230.39 +hg clone scam scam-son 230.40 +cd scam-son 230.41 + 230.42 +cat > letter.txt <<EOF 230.43 +Greetings! 230.44 + 230.45 +I am Alhaji Abba Abacha, son of the former 230.46 +Nigerian dictator Sani Abacha. 230.47 +EOF 230.48 + 230.49 +hg commit -m '419 scam, with son' 230.50 + 230.51 +#$ name: pull 230.52 + 230.53 +cd .. 230.54 +hg clone scam-cousin scam-merge 230.55 +cd scam-merge 230.56 +hg pull -u ../scam-son 230.57 + 230.58 +#$ name: merge 230.59 +#$ ignore: [<>]{7} /tmp/.* 230.60 + 230.61 +export HGMERGE=merge 230.62 +hg merge 230.63 +cat letter.txt 230.64 + 230.65 +#$ name: commit 230.66 + 230.67 +cat > letter.txt <<EOF 230.68 +Greetings! 230.69 + 230.70 +I am Bryan O'Sullivan, no relation of the former 230.71 +Nigerian dictator Sani Abacha. 230.72 +EOF 230.73 + 230.74 +hg commit -m 'Send me your money' 230.75 +hg tip
231.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 231.2 +++ b/ja/examples/tour-merge-conflict.commit.out Fri Aug 14 12:10:47 2009 -0700 231.3 @@ -0,0 +1,15 @@ 231.4 +$ \textbf{cat > letter.txt <<EOF} 231.5 +> \textbf{Greetings!} 231.6 +> \textbf{I am Bryan O'Sullivan, no relation of the former} 231.7 +> \textbf{Nigerian dictator Sani Abacha.} 231.8 +> \textbf{EOF} 231.9 +$ \textbf{hg commit -m 'Send me your money'} 231.10 +$ \textbf{hg tip} 231.11 +changeset: 231.12 +tag: tip 231.13 +parent: 231.14 +parent: 231.15 +user: Bryan O'Sullivan <bos@serpentine.com> 231.16 + 231.17 +summary: Send me your money 231.18 +
232.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 232.2 +++ b/ja/examples/tour-merge-conflict.cousin.out Fri Aug 14 12:10:47 2009 -0700 232.3 @@ -0,0 +1,10 @@ 232.4 +$ \textbf{cd ..} 232.5 +$ \textbf{hg clone scam scam-cousin} 232.6 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 232.7 +$ \textbf{cd scam-cousin} 232.8 +$ \textbf{cat > letter.txt <<EOF} 232.9 +> \textbf{Greetings!} 232.10 +> \textbf{I am Shehu Musa Abacha, cousin to the former} 232.11 +> \textbf{Nigerian dictator Sani Abacha.} 232.12 +> \textbf{EOF} 232.13 +$ \textbf{hg commit -m '419 scam, with cousin'}
233.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 233.2 +++ b/ja/examples/tour-merge-conflict.merge.out Fri Aug 14 12:10:47 2009 -0700 233.3 @@ -0,0 +1,17 @@ 233.4 +$ \textbf{export HGMERGE=merge} 233.5 +$ \textbf{hg merge} 233.6 +merging letter.txt 233.7 +merge: warning: conflicts during merge 233.8 +merging letter.txt failed! 233.9 +0 files updated, 0 files merged, 0 files removed, 1 files unresolved 233.10 +There are unresolved merges, you can redo the full merge using: 233.11 + hg update -C 1 233.12 + hg merge 2 233.13 +$ \textbf{cat letter.txt} 233.14 +Greetings! 233.15 + 233.16 +I am Shehu Musa Abacha, cousin to the former 233.17 +======= 233.18 +I am Alhaji Abba Abacha, son of the former 233.19 + 233.20 +Nigerian dictator Sani Abacha.
234.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 234.2 +++ b/ja/examples/tour-merge-conflict.pull.out Fri Aug 14 12:10:47 2009 -0700 234.3 @@ -0,0 +1,13 @@ 234.4 +$ \textbf{cd ..} 234.5 +$ \textbf{hg clone scam-cousin scam-merge} 234.6 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 234.7 +$ \textbf{cd scam-merge} 234.8 +$ \textbf{hg pull -u ../scam-son} 234.9 +pulling from ../scam-son 234.10 +searching for changes 234.11 +adding changesets 234.12 +adding manifests 234.13 +adding file changes 234.14 +added 1 changesets with 1 changes to 1 files (+1 heads) 234.15 +not updating, since new heads added 234.16 +(run 'hg heads' to see heads, 'hg merge' to merge)
235.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 235.2 +++ b/ja/examples/tour-merge-conflict.son.out Fri Aug 14 12:10:47 2009 -0700 235.3 @@ -0,0 +1,10 @@ 235.4 +$ \textbf{cd ..} 235.5 +$ \textbf{hg clone scam scam-son} 235.6 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 235.7 +$ \textbf{cd scam-son} 235.8 +$ \textbf{cat > letter.txt <<EOF} 235.9 +> \textbf{Greetings!} 235.10 +> \textbf{I am Alhaji Abba Abacha, son of the former} 235.11 +> \textbf{Nigerian dictator Sani Abacha.} 235.12 +> \textbf{EOF} 235.13 +$ \textbf{hg commit -m '419 scam, with son'}
236.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 236.2 +++ b/ja/examples/tour-merge-conflict.wife.out Fri Aug 14 12:10:47 2009 -0700 236.3 @@ -0,0 +1,7 @@ 236.4 +$ \textbf{cat > letter.txt <<EOF} 236.5 +> \textbf{Greetings!} 236.6 +> \textbf{I am Mariam Abacha, the wife of former} 236.7 +> \textbf{Nigerian dictator Sani Abacha.} 236.8 +> \textbf{EOF} 236.9 +$ \textbf{hg add letter.txt} 236.10 +$ \textbf{hg commit -m '419 scam, first draft'}
237.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 237.2 +++ b/ja/examples/tour.clone-pull.out Fri Aug 14 12:10:47 2009 -0700 237.3 @@ -0,0 +1,3 @@ 237.4 +$ \textbf{cd ..} 237.5 +$ \textbf{hg clone hello hello-pull} 237.6 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved
238.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 238.2 +++ b/ja/examples/tour.clone-push.out Fri Aug 14 12:10:47 2009 -0700 238.3 @@ -0,0 +1,3 @@ 238.4 +$ \textbf{cd ..} 238.5 +$ \textbf{hg clone hello hello-push} 238.6 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved
239.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 239.2 +++ b/ja/examples/tour.clone.out Fri Aug 14 12:10:47 2009 -0700 239.3 @@ -0,0 +1,8 @@ 239.4 +$ \textbf{hg clone http://hg.serpentine.com/tutorial/hello} 239.5 +destination directory: hello 239.6 +requesting all changes 239.7 +adding changesets 239.8 +adding manifests 239.9 +adding file changes 239.10 +added 5 changesets with 5 changes to 2 files 239.11 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved
240.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 240.2 +++ b/ja/examples/tour.commit.out Fri Aug 14 12:10:47 2009 -0700 240.3 @@ -0,0 +1,1 @@ 240.4 +$ \textbf{hg commit}
241.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 241.2 +++ b/ja/examples/tour.diff.out Fri Aug 14 12:10:47 2009 -0700 241.3 @@ -0,0 +1,11 @@ 241.4 +$ \textbf{hg diff} 241.5 +diff -r hello.c 241.6 + 241.7 + 241.8 +@@ -8,5 +8,6 @@ int main(int argc, char **argv) 241.9 + int main(int argc, char **argv) 241.10 + \{ 241.11 + printf("hello, world!\textbackslash{}"); 241.12 ++ printf("hello again!\textbackslash{}n"); 241.13 + return 0; 241.14 + \}
242.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 242.2 +++ b/ja/examples/tour.help.out Fri Aug 14 12:10:47 2009 -0700 242.3 @@ -0,0 +1,20 @@ 242.4 +$ \textbf{hg help init} 242.5 +hg init [-e CMD] [--remotecmd CMD] [DEST] 242.6 + 242.7 +create a new repository in the given directory 242.8 + 242.9 + Initialize a new repository in the given directory. If the given 242.10 + directory does not exist, it is created. 242.11 + 242.12 + If no directory is given, the current directory is used. 242.13 + 242.14 + It is possible to specify an ssh:// URL as the destination. 242.15 + Look at the help text for the pull command for important details 242.16 + about ssh:// URLs. 242.17 + 242.18 +options: 242.19 + 242.20 + -e --ssh specify ssh command to use 242.21 + --remotecmd specify hg command to run on the remote side 242.22 + 242.23 +use "hg -v help init" to show global options
243.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 243.2 +++ b/ja/examples/tour.incoming.out Fri Aug 14 12:10:47 2009 -0700 243.3 @@ -0,0 +1,10 @@ 243.4 +$ \textbf{cd hello-pull} 243.5 +$ \textbf{hg incoming ../my-hello} 243.6 +comparing with ../my-hello 243.7 +searching for changes 243.8 +changeset: 243.9 +tag: tip 243.10 +user: Bryan O'Sullivan <bos@serpentine.com> 243.11 + 243.12 +summary: Added an extra line of output 243.13 +
244.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 244.2 +++ b/ja/examples/tour.log-r.out Fri Aug 14 12:10:47 2009 -0700 244.3 @@ -0,0 +1,24 @@ 244.4 +$ \textbf{hg log -r 3} 244.5 +changeset: 244.6 +user: Bryan O'Sullivan <bos@serpentine.com> 244.7 + 244.8 +summary: Get make to generate the final binary from a .o file. 244.9 + 244.10 +$ \textbf{hg log -r } 244.11 +changeset: 244.12 +user: Bryan O'Sullivan <bos@serpentine.com> 244.13 + 244.14 +summary: Get make to generate the final binary from a .o file. 244.15 + 244.16 +$ \textbf{hg log -r 1 -r 4} 244.17 +changeset: 244.18 +user: mpm@selenic.com 244.19 + 244.20 +summary: Create a makefile 244.21 + 244.22 +changeset: 244.23 +tag: tip 244.24 +user: Bryan O'Sullivan <bos@serpentine.com> 244.25 + 244.26 +summary: Trim comments. 244.27 +
245.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 245.2 +++ b/ja/examples/tour.log-v.out Fri Aug 14 12:10:47 2009 -0700 245.3 @@ -0,0 +1,9 @@ 245.4 +$ \textbf{hg log -v -r 3} 245.5 +changeset: 245.6 +user: Bryan O'Sullivan <bos@serpentine.com> 245.7 + 245.8 +files: Makefile 245.9 +description: 245.10 +Get make to generate the final binary from a .o file. 245.11 + 245.12 +
246.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 246.2 +++ b/ja/examples/tour.log-vp.out Fri Aug 14 12:10:47 2009 -0700 246.3 @@ -0,0 +1,21 @@ 246.4 +$ \textbf{hg log -v -p -r 2} 246.5 +changeset: 246.6 +user: Bryan O'Sullivan <bos@serpentine.com> 246.7 + 246.8 +files: hello.c 246.9 +description: 246.10 +Introduce a typo into hello.c. 246.11 + 246.12 + 246.13 +diff -r -r hello.c 246.14 + 246.15 + 246.16 +@@ -11,6 +11,6 @@ 246.17 + 246.18 + int main(int argc, char **argv) 246.19 + \{ 246.20 +- printf("hello, world!\textbackslash{}n"); 246.21 ++ printf("hello, world!\textbackslash{}"); 246.22 + return 0; 246.23 + \} 246.24 +
247.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 247.2 +++ b/ja/examples/tour.log.out Fri Aug 14 12:10:47 2009 -0700 247.3 @@ -0,0 +1,27 @@ 247.4 +$ \textbf{hg log} 247.5 +changeset: 247.6 +tag: tip 247.7 +user: Bryan O'Sullivan <bos@serpentine.com> 247.8 + 247.9 +summary: Trim comments. 247.10 + 247.11 +changeset: 247.12 +user: Bryan O'Sullivan <bos@serpentine.com> 247.13 + 247.14 +summary: Get make to generate the final binary from a .o file. 247.15 + 247.16 +changeset: 247.17 +user: Bryan O'Sullivan <bos@serpentine.com> 247.18 + 247.19 +summary: Introduce a typo into hello.c. 247.20 + 247.21 +changeset: 247.22 +user: mpm@selenic.com 247.23 + 247.24 +summary: Create a makefile 247.25 + 247.26 +changeset: 247.27 +user: mpm@selenic.com 247.28 + 247.29 +summary: Create a standard "hello, world" program 247.30 +
248.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 248.2 +++ b/ja/examples/tour.log.range.out Fri Aug 14 12:10:47 2009 -0700 248.3 @@ -0,0 +1,17 @@ 248.4 +$ \textbf{hg log -r 2:4} 248.5 +changeset: 248.6 +user: Bryan O'Sullivan <bos@serpentine.com> 248.7 + 248.8 +summary: Introduce a typo into hello.c. 248.9 + 248.10 +changeset: 248.11 +user: Bryan O'Sullivan <bos@serpentine.com> 248.12 + 248.13 +summary: Get make to generate the final binary from a .o file. 248.14 + 248.15 +changeset: 248.16 +tag: tip 248.17 +user: Bryan O'Sullivan <bos@serpentine.com> 248.18 + 248.19 +summary: Trim comments. 248.20 +
249.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 249.2 +++ b/ja/examples/tour.ls-a.out Fri Aug 14 12:10:47 2009 -0700 249.3 @@ -0,0 +1,3 @@ 249.4 +$ \textbf{cd hello} 249.5 +$ \textbf{ls -a} 249.6 +. .. .hg Makefile hello.c
250.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 250.2 +++ b/ja/examples/tour.ls.out Fri Aug 14 12:10:47 2009 -0700 250.3 @@ -0,0 +1,5 @@ 250.4 +$ \textbf{ls -l} 250.5 +total 4 250.6 + 250.7 +$ \textbf{ls hello} 250.8 +Makefile hello.c
251.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 251.2 +++ b/ja/examples/tour.merge.cat.out Fri Aug 14 12:10:47 2009 -0700 251.3 @@ -0,0 +1,28 @@ 251.4 +$ \textbf{cat hello.c} 251.5 +/* 251.6 + * Placed in the public domain by Bryan O'Sullivan. This program is 251.7 + * not covered by patents in the United States or other countries. 251.8 + */ 251.9 + 251.10 +#include <stdio.h> 251.11 + 251.12 +int main(int argc, char **argv) 251.13 +\{ 251.14 + printf("once more, hello.\textbackslash{}n"); 251.15 + printf("hello, world!\textbackslash{}"); 251.16 + return 0; 251.17 +\} 251.18 +$ \textbf{cat ../my-hello/hello.c} 251.19 +/* 251.20 + * Placed in the public domain by Bryan O'Sullivan. This program is 251.21 + * not covered by patents in the United States or other countries. 251.22 + */ 251.23 + 251.24 +#include <stdio.h> 251.25 + 251.26 +int main(int argc, char **argv) 251.27 +\{ 251.28 + printf("hello, world!\textbackslash{}"); 251.29 + printf("hello again!\textbackslash{}n"); 251.30 + return 0; 251.31 +\}
252.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 252.2 +++ b/ja/examples/tour.merge.clone.out Fri Aug 14 12:10:47 2009 -0700 252.3 @@ -0,0 +1,6 @@ 252.4 +$ \textbf{cd ..} 252.5 +$ \textbf{hg clone hello my-new-hello} 252.6 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved 252.7 +$ \textbf{cd my-new-hello} 252.8 +$ \textbf{sed -i '/printf/i\textbackslash{}\textbackslash{}tprintf("once more, hello.\textbackslash{}\textbackslash{}n");' hello.c} 252.9 +$ \textbf{hg commit -m 'A new hello for a new day.'}
253.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 253.2 +++ b/ja/examples/tour.merge.commit.out Fri Aug 14 12:10:47 2009 -0700 253.3 @@ -0,0 +1,1 @@ 253.4 +$ \textbf{hg commit -m 'Merged changes'}
254.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 254.2 +++ b/ja/examples/tour.merge.heads.out Fri Aug 14 12:10:47 2009 -0700 254.3 @@ -0,0 +1,13 @@ 254.4 +$ \textbf{hg heads} 254.5 +changeset: 254.6 +tag: tip 254.7 +parent: 254.8 +user: Bryan O'Sullivan <bos@serpentine.com> 254.9 + 254.10 +summary: Added an extra line of output 254.11 + 254.12 +changeset: 254.13 +user: Bryan O'Sullivan <bos@serpentine.com> 254.14 + 254.15 +summary: A new hello for a new day. 254.16 +
255.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 255.2 +++ b/ja/examples/tour.merge.merge.out Fri Aug 14 12:10:47 2009 -0700 255.3 @@ -0,0 +1,4 @@ 255.4 +$ \textbf{hg merge} 255.5 +merging hello.c 255.6 +0 files updated, 1 files merged, 0 files removed, 0 files unresolved 255.7 +(branch merge, don't forget to commit)
256.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 256.2 +++ b/ja/examples/tour.merge.parents.out Fri Aug 14 12:10:47 2009 -0700 256.3 @@ -0,0 +1,28 @@ 256.4 +$ \textbf{hg parents} 256.5 +changeset: 256.6 +user: Bryan O'Sullivan <bos@serpentine.com> 256.7 + 256.8 +summary: A new hello for a new day. 256.9 + 256.10 +changeset: 256.11 +tag: tip 256.12 +parent: 256.13 +user: Bryan O'Sullivan <bos@serpentine.com> 256.14 + 256.15 +summary: Added an extra line of output 256.16 + 256.17 +$ \textbf{cat hello.c} 256.18 +/* 256.19 + * Placed in the public domain by Bryan O'Sullivan. This program is 256.20 + * not covered by patents in the United States or other countries. 256.21 + */ 256.22 + 256.23 +#include <stdio.h> 256.24 + 256.25 +int main(int argc, char **argv) 256.26 +\{ 256.27 + printf("once more, hello.\textbackslash{}n"); 256.28 + printf("hello, world!\textbackslash{}"); 256.29 + printf("hello again!\textbackslash{}n"); 256.30 + return 0; 256.31 +\}
257.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 257.2 +++ b/ja/examples/tour.merge.pull.out Fri Aug 14 12:10:47 2009 -0700 257.3 @@ -0,0 +1,8 @@ 257.4 +$ \textbf{hg pull ../my-hello} 257.5 +pulling from ../my-hello 257.6 +searching for changes 257.7 +adding changesets 257.8 +adding manifests 257.9 +adding file changes 257.10 +added 1 changesets with 1 changes to 1 files (+1 heads) 257.11 +(run 'hg heads' to see heads, 'hg merge' to merge)
258.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 258.2 +++ b/ja/examples/tour.merge.tip.out Fri Aug 14 12:10:47 2009 -0700 258.3 @@ -0,0 +1,9 @@ 258.4 +$ \textbf{hg tip} 258.5 +changeset: 258.6 +tag: tip 258.7 +parent: 258.8 +parent: 258.9 +user: Bryan O'Sullivan <bos@serpentine.com> 258.10 + 258.11 +summary: Merged changes 258.12 +
259.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 259.2 +++ b/ja/examples/tour.merge.update.out Fri Aug 14 12:10:47 2009 -0700 259.3 @@ -0,0 +1,2 @@ 259.4 +$ \textbf{hg update} 259.5 +abort: update spans branches, use 'hg merge' or 'hg update -C' to lose changes
260.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 260.2 +++ b/ja/examples/tour.older.out Fri Aug 14 12:10:47 2009 -0700 260.3 @@ -0,0 +1,10 @@ 260.4 +$ \textbf{hg update 2} 260.5 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved 260.6 +$ \textbf{hg parents} 260.7 +changeset: 260.8 +user: Bryan O'Sullivan <bos@serpentine.com> 260.9 + 260.10 +summary: Introduce a typo into hello.c. 260.11 + 260.12 +$ \textbf{hg update} 260.13 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved
261.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 261.2 +++ b/ja/examples/tour.outgoing.net.out Fri Aug 14 12:10:47 2009 -0700 261.3 @@ -0,0 +1,9 @@ 261.4 +$ \textbf{hg outgoing http://hg.serpentine.com/tutorial/hello} 261.5 +comparing with http://hg.serpentine.com/tutorial/hello 261.6 +searching for changes 261.7 +changeset: 261.8 +tag: tip 261.9 +user: Bryan O'Sullivan <bos@serpentine.com> 261.10 + 261.11 +summary: Added an extra line of output 261.12 +
262.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 262.2 +++ b/ja/examples/tour.outgoing.out Fri Aug 14 12:10:47 2009 -0700 262.3 @@ -0,0 +1,10 @@ 262.4 +$ \textbf{cd my-hello} 262.5 +$ \textbf{hg outgoing ../hello-push} 262.6 +comparing with ../hello-push 262.7 +searching for changes 262.8 +changeset: 262.9 +tag: tip 262.10 +user: Bryan O'Sullivan <bos@serpentine.com> 262.11 + 262.12 +summary: Added an extra line of output 262.13 +
263.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 263.2 +++ b/ja/examples/tour.parents.out Fri Aug 14 12:10:47 2009 -0700 263.3 @@ -0,0 +1,7 @@ 263.4 +$ \textbf{hg parents} 263.5 +changeset: 263.6 +tag: tip 263.7 +user: Bryan O'Sullivan <bos@serpentine.com> 263.8 + 263.9 +summary: Added an extra line of output 263.10 +
264.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 264.2 +++ b/ja/examples/tour.pull.out Fri Aug 14 12:10:47 2009 -0700 264.3 @@ -0,0 +1,22 @@ 264.4 +$ \textbf{hg tip} 264.5 +changeset: 264.6 +tag: tip 264.7 +user: Bryan O'Sullivan <bos@serpentine.com> 264.8 + 264.9 +summary: Trim comments. 264.10 + 264.11 +$ \textbf{hg pull ../my-hello} 264.12 +pulling from ../my-hello 264.13 +searching for changes 264.14 +adding changesets 264.15 +adding manifests 264.16 +adding file changes 264.17 +added 1 changesets with 1 changes to 1 files 264.18 +(run 'hg update' to get a working copy) 264.19 +$ \textbf{hg tip} 264.20 +changeset: 264.21 +tag: tip 264.22 +user: Bryan O'Sullivan <bos@serpentine.com> 264.23 + 264.24 +summary: Added an extra line of output 264.25 +
265.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 265.2 +++ b/ja/examples/tour.push.net.out Fri Aug 14 12:10:47 2009 -0700 265.3 @@ -0,0 +1,4 @@ 265.4 +$ \textbf{hg push http://hg.serpentine.com/tutorial/hello} 265.5 +pushing to http://hg.serpentine.com/tutorial/hello 265.6 +searching for changes 265.7 +ssl required
266.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 266.2 +++ b/ja/examples/tour.push.nothing.out Fri Aug 14 12:10:47 2009 -0700 266.3 @@ -0,0 +1,4 @@ 266.4 +$ \textbf{hg push ../hello-push} 266.5 +pushing to ../hello-push 266.6 +searching for changes 266.7 +no changes found
267.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 267.2 +++ b/ja/examples/tour.push.out Fri Aug 14 12:10:47 2009 -0700 267.3 @@ -0,0 +1,7 @@ 267.4 +$ \textbf{hg push ../hello-push} 267.5 +pushing to ../hello-push 267.6 +searching for changes 267.7 +adding changesets 267.8 +adding manifests 267.9 +adding file changes 267.10 +added 1 changesets with 1 changes to 1 files
268.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 268.2 +++ b/ja/examples/tour.reclone.out Fri Aug 14 12:10:47 2009 -0700 268.3 @@ -0,0 +1,4 @@ 268.4 +$ \textbf{cd ..} 268.5 +$ \textbf{hg clone hello my-hello} 268.6 +2 files updated, 0 files merged, 0 files removed, 0 files unresolved 268.7 +$ \textbf{cd my-hello}
269.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 269.2 +++ b/ja/examples/tour.sed.out Fri Aug 14 12:10:47 2009 -0700 269.3 @@ -0,0 +1,1 @@ 269.4 +$ \textbf{sed -i '/printf/a\textbackslash{}\textbackslash{}tprintf("hello again!\textbackslash{}\textbackslash{}n");' hello.c}
270.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 270.2 +++ b/ja/examples/tour.status.out Fri Aug 14 12:10:47 2009 -0700 270.3 @@ -0,0 +1,4 @@ 270.4 +$ \textbf{ls} 270.5 +Makefile hello.c 270.6 +$ \textbf{hg status} 270.7 +M hello.c
271.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 271.2 +++ b/ja/examples/tour.tip.out Fri Aug 14 12:10:47 2009 -0700 271.3 @@ -0,0 +1,21 @@ 271.4 +$ \textbf{hg tip -vp} 271.5 +changeset: 271.6 +tag: tip 271.7 +user: Bryan O'Sullivan <bos@serpentine.com> 271.8 + 271.9 +files: hello.c 271.10 +description: 271.11 +Added an extra line of output 271.12 + 271.13 + 271.14 +diff -r -r hello.c 271.15 + 271.16 + 271.17 +@@ -8,5 +8,6 @@ int main(int argc, char **argv) 271.18 + int main(int argc, char **argv) 271.19 + \{ 271.20 + printf("hello, world!\textbackslash{}"); 271.21 ++ printf("hello again!\textbackslash{}n"); 271.22 + return 0; 271.23 + \} 271.24 +
272.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 272.2 +++ b/ja/examples/tour.update.out Fri Aug 14 12:10:47 2009 -0700 272.3 @@ -0,0 +1,7 @@ 272.4 +$ \textbf{grep printf hello.c} 272.5 + printf("hello, world!\textbackslash{}"); 272.6 +$ \textbf{hg update tip} 272.7 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved 272.8 +$ \textbf{grep printf hello.c} 272.9 + printf("hello, world!\textbackslash{}"); 272.10 + printf("hello again!\textbackslash{}n");
273.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 273.2 +++ b/ja/examples/tour.version.out Fri Aug 14 12:10:47 2009 -0700 273.3 @@ -0,0 +1,6 @@ 273.4 +$ \textbf{hg version} 273.5 +Mercurial Distributed SCM (version ) 273.6 + 273.7 +Copyright (C) 2005-2007 Matt Mackall <mpm@selenic.com> and others 273.8 +This is free software; see the source for copying conditions. There is NO 273.9 +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
274.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 274.2 +++ b/ja/feature-branches.dot Fri Aug 14 12:10:47 2009 -0700 274.3 @@ -0,0 +1,8 @@ 274.4 +digraph feature_branches { 274.5 + master -> crypto; 274.6 + master -> filesystems; 274.7 + master -> ipc; 274.8 + master -> memory; 274.9 + master -> network; 274.10 + master -> security; 274.11 +}
275.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 275.2 +++ b/ja/filelog.svg Fri Aug 14 12:10:47 2009 -0700 275.3 @@ -0,0 +1,371 @@ 275.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 275.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 275.6 +<svg 275.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 275.8 + xmlns:cc="http://web.resource.org/cc/" 275.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 275.10 + xmlns:svg="http://www.w3.org/2000/svg" 275.11 + xmlns="http://www.w3.org/2000/svg" 275.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 275.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 275.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 275.15 + width="744.09448819" 275.16 + height="1052.3622047" 275.17 + id="svg2" 275.18 + sodipodi:version="0.32" 275.19 + inkscape:version="0.44.1" 275.20 + sodipodi:docname="filelog.svg"> 275.21 + <defs 275.22 + id="defs4"> 275.23 + <marker 275.24 + inkscape:stockid="Arrow1Mend" 275.25 + orient="auto" 275.26 + refY="0.0" 275.27 + refX="0.0" 275.28 + id="Arrow1Mend" 275.29 + style="overflow:visible;"> 275.30 + <path 275.31 + id="path3128" 275.32 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 275.33 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 275.34 + transform="scale(0.4) rotate(180) translate(10,0)" /> 275.35 + </marker> 275.36 + <linearGradient 275.37 + id="linearGradient2887"> 275.38 + <stop 275.39 + style="stop-color:#91cfcf;stop-opacity:1;" 275.40 + offset="0" 275.41 + id="stop2889" /> 275.42 + <stop 275.43 + style="stop-color:aqua;stop-opacity:0;" 275.44 + offset="1" 275.45 + id="stop2891" /> 275.46 + </linearGradient> 275.47 + <linearGradient 275.48 + id="linearGradient2795"> 275.49 + <stop 275.50 + style="stop-color:#ccc;stop-opacity:1;" 275.51 + offset="0" 275.52 + id="stop2797" /> 275.53 + <stop 275.54 + style="stop-color:#ccc;stop-opacity:0;" 275.55 + offset="1" 275.56 + id="stop2799" /> 275.57 + </linearGradient> 275.58 + <linearGradient 275.59 + inkscape:collect="always" 275.60 + xlink:href="#linearGradient2795" 275.61 + id="linearGradient3170" 275.62 + gradientUnits="userSpaceOnUse" 275.63 + gradientTransform="translate(121.2183,94.95434)" 275.64 + x1="81.322357" 275.65 + y1="404.34424" 275.66 + x2="201.52036" 275.67 + y2="373.03967" /> 275.68 + <linearGradient 275.69 + inkscape:collect="always" 275.70 + xlink:href="#linearGradient2887" 275.71 + id="linearGradient3172" 275.72 + gradientUnits="userSpaceOnUse" 275.73 + gradientTransform="translate(0,12)" 275.74 + x1="62.634491" 275.75 + y1="503.3392" 275.76 + x2="248.49242" 275.77 + y2="462.94327" /> 275.78 + <linearGradient 275.79 + inkscape:collect="always" 275.80 + xlink:href="#linearGradient2795" 275.81 + id="linearGradient3174" 275.82 + gradientUnits="userSpaceOnUse" 275.83 + gradientTransform="matrix(1.001035,0,0,0.653159,236.7075,153.0415)" 275.84 + x1="81.322357" 275.85 + y1="404.34424" 275.86 + x2="201.52036" 275.87 + y2="373.03967" /> 275.88 + <linearGradient 275.89 + inkscape:collect="always" 275.90 + xlink:href="#linearGradient2887" 275.91 + id="linearGradient3176" 275.92 + gradientUnits="userSpaceOnUse" 275.93 + gradientTransform="translate(0,12)" 275.94 + x1="62.634491" 275.95 + y1="503.3392" 275.96 + x2="248.49242" 275.97 + y2="462.94327" /> 275.98 + <linearGradient 275.99 + inkscape:collect="always" 275.100 + xlink:href="#linearGradient2795" 275.101 + id="linearGradient3208" 275.102 + gradientUnits="userSpaceOnUse" 275.103 + gradientTransform="matrix(1.001035,0,0,0.653159,236.7075,153.0415)" 275.104 + x1="81.322357" 275.105 + y1="404.34424" 275.106 + x2="201.52036" 275.107 + y2="373.03967" /> 275.108 + <linearGradient 275.109 + inkscape:collect="always" 275.110 + xlink:href="#linearGradient2887" 275.111 + id="linearGradient3210" 275.112 + gradientUnits="userSpaceOnUse" 275.113 + gradientTransform="translate(0,12)" 275.114 + x1="62.634491" 275.115 + y1="503.3392" 275.116 + x2="248.49242" 275.117 + y2="462.94327" /> 275.118 + <linearGradient 275.119 + inkscape:collect="always" 275.120 + xlink:href="#linearGradient2795" 275.121 + id="linearGradient3212" 275.122 + gradientUnits="userSpaceOnUse" 275.123 + gradientTransform="translate(121.2183,94.95434)" 275.124 + x1="81.322357" 275.125 + y1="404.34424" 275.126 + x2="201.52036" 275.127 + y2="373.03967" /> 275.128 + <linearGradient 275.129 + inkscape:collect="always" 275.130 + xlink:href="#linearGradient2887" 275.131 + id="linearGradient3214" 275.132 + gradientUnits="userSpaceOnUse" 275.133 + gradientTransform="translate(0,12)" 275.134 + x1="62.634491" 275.135 + y1="503.3392" 275.136 + x2="248.49242" 275.137 + y2="462.94327" /> 275.138 + <linearGradient 275.139 + inkscape:collect="always" 275.140 + xlink:href="#linearGradient2795" 275.141 + id="linearGradient3256" 275.142 + gradientUnits="userSpaceOnUse" 275.143 + gradientTransform="translate(121.2183,94.95434)" 275.144 + x1="81.322357" 275.145 + y1="404.34424" 275.146 + x2="201.52036" 275.147 + y2="373.03967" /> 275.148 + <linearGradient 275.149 + inkscape:collect="always" 275.150 + xlink:href="#linearGradient2887" 275.151 + id="linearGradient3258" 275.152 + gradientUnits="userSpaceOnUse" 275.153 + gradientTransform="translate(0,12)" 275.154 + x1="62.634491" 275.155 + y1="503.3392" 275.156 + x2="248.49242" 275.157 + y2="462.94327" /> 275.158 + <linearGradient 275.159 + inkscape:collect="always" 275.160 + xlink:href="#linearGradient2795" 275.161 + id="linearGradient3260" 275.162 + gradientUnits="userSpaceOnUse" 275.163 + gradientTransform="matrix(1.001035,0,0,0.653159,236.7075,153.0415)" 275.164 + x1="81.322357" 275.165 + y1="404.34424" 275.166 + x2="201.52036" 275.167 + y2="373.03967" /> 275.168 + <linearGradient 275.169 + inkscape:collect="always" 275.170 + xlink:href="#linearGradient2887" 275.171 + id="linearGradient3262" 275.172 + gradientUnits="userSpaceOnUse" 275.173 + gradientTransform="translate(0,12)" 275.174 + x1="62.634491" 275.175 + y1="503.3392" 275.176 + x2="248.49242" 275.177 + y2="462.94327" /> 275.178 + </defs> 275.179 + <sodipodi:namedview 275.180 + id="base" 275.181 + pagecolor="#ffffff" 275.182 + bordercolor="#666666" 275.183 + borderopacity="1.0" 275.184 + gridtolerance="10000" 275.185 + guidetolerance="10" 275.186 + objecttolerance="10" 275.187 + inkscape:pageopacity="0.0" 275.188 + inkscape:pageshadow="2" 275.189 + inkscape:zoom="0.98994949" 275.190 + inkscape:cx="455.8122" 275.191 + inkscape:cy="520" 275.192 + inkscape:document-units="px" 275.193 + inkscape:current-layer="layer1" 275.194 + inkscape:window-width="906" 275.195 + inkscape:window-height="620" 275.196 + inkscape:window-x="5" 275.197 + inkscape:window-y="49" /> 275.198 + <metadata 275.199 + id="metadata7"> 275.200 + <rdf:RDF> 275.201 + <cc:Work 275.202 + rdf:about=""> 275.203 + <dc:format>image/svg+xml</dc:format> 275.204 + <dc:type 275.205 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 275.206 + </cc:Work> 275.207 + </rdf:RDF> 275.208 + </metadata> 275.209 + <g 275.210 + inkscape:label="Layer 1" 275.211 + inkscape:groupmode="layer" 275.212 + id="layer1"> 275.213 + <rect 275.214 + style="opacity:1;fill:#abadf8;fill-opacity:1;stroke:#595959;stroke-width:0.86781615;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 275.215 + id="rect3180" 275.216 + width="234.48758" 275.217 + height="199.13225" 275.218 + x="322.67767" 275.219 + y="351.75531" /> 275.220 + <rect 275.221 + style="opacity:1;fill:#a2f69c;fill-opacity:1;stroke:#595959;stroke-width:0.86781615;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 275.222 + id="rect3178" 275.223 + width="234.48756" 275.224 + height="199.13223" 275.225 + x="72.664886" 275.226 + y="351.75531" /> 275.227 + <g 275.228 + id="g3144" 275.229 + transform="translate(34,0.71578)"> 275.230 + <g 275.231 + id="g2940"> 275.232 + <rect 275.233 + style="fill:url(#linearGradient3260);fill-opacity:1;stroke:black;stroke-width:0.80860078;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 275.234 + id="rect2914" 275.235 + width="185.04932" 275.236 + height="39.587399" 275.237 + x="311.53635" 275.238 + y="395.04291" /> 275.239 + <text 275.240 + xml:space="preserve" 275.241 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 275.242 + x="323.72824" 275.243 + y="416.7626" 275.244 + id="text2918"><tspan 275.245 + sodipodi:role="line" 275.246 + id="tspan2920" 275.247 + x="323.72824" 275.248 + y="416.7626" 275.249 + style="font-family:Courier">.hg/data/README.i</tspan></text> 275.250 + </g> 275.251 + <g 275.252 + transform="translate(3.79093e-5,-80.1853)" 275.253 + id="g2945"> 275.254 + <g 275.255 + id="g2955"> 275.256 + <rect 275.257 + y="475.44327" 275.258 + x="63.134491" 275.259 + height="39.395935" 275.260 + width="184.85793" 275.261 + id="rect2947" 275.262 + style="fill:url(#linearGradient3262);fill-opacity:1;stroke:black;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 275.263 + <text 275.264 + id="text2949" 275.265 + y="498.35123" 275.266 + x="75.230644" 275.267 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 275.268 + xml:space="preserve"><tspan 275.269 + style="font-family:Courier" 275.270 + y="498.35123" 275.271 + x="75.230644" 275.272 + id="tspan2951" 275.273 + sodipodi:role="line">README</tspan></text> 275.274 + </g> 275.275 + </g> 275.276 + <path 275.277 + inkscape:connection-end="#g2940" 275.278 + inkscape:connection-start="#g2945" 275.279 + inkscape:connector-type="polyline" 275.280 + id="path2960" 275.281 + d="M 248.49245,414.91131 L 311.13205,414.88123" 275.282 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 275.283 + </g> 275.284 + <g 275.285 + id="g3156" 275.286 + transform="translate(34,0.71578)"> 275.287 + <g 275.288 + transform="translate(116,0)" 275.289 + id="g2831"> 275.290 + <rect 275.291 + style="fill:url(#linearGradient3256);fill-opacity:1;stroke:black;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 275.292 + id="rect1906" 275.293 + width="184.85793" 275.294 + height="60.609138" 275.295 + x="195.96959" 275.296 + y="465.46356" /> 275.297 + <g 275.298 + id="g2803" 275.299 + transform="translate(-0.893671,1.833581)"> 275.300 + <text 275.301 + id="text1884" 275.302 + y="483.92801" 275.303 + x="208.95944" 275.304 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 275.305 + xml:space="preserve"><tspan 275.306 + style="font-family:Courier" 275.307 + y="483.92801" 275.308 + x="208.95944" 275.309 + id="tspan1886" 275.310 + sodipodi:role="line">.hg/data/src/hello.c.d</tspan></text> 275.311 + <text 275.312 + id="text1888" 275.313 + y="507.79309" 275.314 + x="208.95944" 275.315 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 275.316 + xml:space="preserve"><tspan 275.317 + style="font-family:Courier" 275.318 + y="507.79309" 275.319 + x="208.95944" 275.320 + id="tspan1890" 275.321 + sodipodi:role="line">.hg/data/src/hello.c.i</tspan></text> 275.322 + </g> 275.323 + </g> 275.324 + <g 275.325 + id="g2907"> 275.326 + <rect 275.327 + style="fill:url(#linearGradient3258);fill-opacity:1;stroke:black;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 275.328 + id="rect2843" 275.329 + width="184.85793" 275.330 + height="39.395935" 275.331 + x="63.134491" 275.332 + y="475.44327" /> 275.333 + <text 275.334 + xml:space="preserve" 275.335 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 275.336 + x="75.230644" 275.337 + y="498.35123" 275.338 + id="text2847"><tspan 275.339 + sodipodi:role="line" 275.340 + id="tspan2849" 275.341 + x="75.230644" 275.342 + y="498.35123" 275.343 + style="font-family:Courier">src/hello.c</tspan></text> 275.344 + </g> 275.345 + <path 275.346 + inkscape:connection-end="#g2831" 275.347 + inkscape:connection-start="#g2907" 275.348 + inkscape:connector-type="polyline" 275.349 + id="path2962" 275.350 + d="M 248.49242,495.37535 L 311.46959,495.53401" 275.351 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 275.352 + </g> 275.353 + <text 275.354 + xml:space="preserve" 275.355 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 275.356 + x="96.476799" 275.357 + y="373.96353" 275.358 + id="text3216"><tspan 275.359 + sodipodi:role="line" 275.360 + id="tspan3218" 275.361 + x="96.476799" 275.362 + y="373.96353">Working directory</tspan></text> 275.363 + <text 275.364 + xml:space="preserve" 275.365 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 275.366 + x="344.92493" 275.367 + y="373.96353" 275.368 + id="text3228"><tspan 275.369 + sodipodi:role="line" 275.370 + id="tspan3230" 275.371 + x="344.92493" 275.372 + y="373.96353">Repository</tspan></text> 275.373 + </g> 275.374 +</svg>
276.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 276.2 +++ b/ja/filenames.tex Fri Aug 14 12:10:47 2009 -0700 276.3 @@ -0,0 +1,414 @@ 276.4 +\chapter{File names and pattern matching} 276.5 +\label{chap:names} 276.6 + 276.7 +Mercurial $B$O!"(B 276.8 +$B0l4S@-$HI=8=NO$r7s$MHw$($?J}K!$G%U%!%$%kL>$r07$&;EAH$_$rDs6!$7$F$$$^$9!#(B 276.9 + 276.10 +\section{Simple file naming} 276.11 + 276.12 +Mercurial $B$O(B 276.13 +``under the hood''$B$K$*$$$F!"(B 276.14 +$B%U%!%$%kL>$r<h$j07$&E}0l$5$l$?;EAH$_$rMQ$$$F$$$^$9!#(B 276.15 +$B%U%!%$%kL>$K4X$9$kA4$F$N%3%^%s%I$N5sF0$OE}0l$5$l$F$$$^$9!#(B 276.16 +$B%U%!%$%kL>$KBP$9$k%3%^%s%I$N5sF0$O!"0J2<$N$h$&$K$J$C$F$$$^$9!#(B 276.17 + 276.18 +$B%3%^%s%I9T$G<B%U%!%$%kL>$rL@<(E*$K;XDj$7$?>l9g!"(B 276.19 +Mercurial $B$O;XDj$5$l$?%U%!%$%kL>$K87L)$K:nMQ$7$^$9!#(B 276.20 + 276.21 +\interaction{filenames.files} 276.22 + 276.23 +$B%G%#%l%/%H%jL>$r;XDj$7$?>l9g!"(B 276.24 +Mercurial $B$O$=$N;XDj$r!"(B 276.25 +``$BEv3:%G%#%l%/%H%j$J$i$S$K%5%V%G%#%l%/%H%jCf$NA4$F$N%U%!%$%k(B'' 276.26 +$B$H$_$J$7$^$9!#(B 276.27 +Mercurial $B$OEv3:%G%#%l%/%H%jG[2<$N%U%!%$%k!&%5%V%G%#%l%/%H%j$r!"(B 276.28 +$B%"%k%U%!%Y%C%H=g$KAv::$7$^$9!#(B 276.29 +$B$"$k%G%#%l%/%H%j$NAv::Cf$K%5%V%G%#%l%/%H%j$KAx6x$7$?>l9g!"(B 276.30 +$BEv3:%G%#%l%/%H%j$NAv::$h$j$b@h$K!"(B 276.31 +$B%5%V%G%#%l%/%H%j$NAv::$r<B;\$7$^$9(B\footnote{$BLuCm(B: $B?<$5M%@h!J(Bdepth first$B!K(B}$B!#(B 276.32 + 276.33 +\interaction{filenames.dirs} 276.34 + 276.35 +\section{Running commands without any file names} 276.36 + 276.37 +$B%U%!%$%kL>$r0z?t$K<h$k(B Mercurial $B%3%^%s%I$O!"(B 276.38 +$B0z?t$J$$$7%Q%?!<%s;XDjL5$7$G5/F0$5$l$?>l9g$b!"(B 276.39 +$BM-MQ$J4pDl;~F0:n$,Dj$a$i$l$F$$$^$9!#(B 276.40 +$B%3%^%s%I$K4|BT$5$l$k?6$kIq$$$O!"(B 276.41 +$B%3%^%s%I$NMQES$K0MB8$7$^$9!#(B 276.42 +$B%U%!%$%kL>;XDjL5$7$N5/F0$K$*$$$F!"(B 276.43 +$B%3%^%s%I$,$I$N$h$&$K?6Iq$&$N$+$r?dB,$9$k$?$a$N!"(B 276.44 +$B0lHLE*$JL\0B$H$J$k4v$D$+$N%k!<%k$r0J2<$K<($7$^$9!#(B 276.45 + 276.46 +\begin{itemize} 276.47 +\item $BKX$I$N%3%^%s%I$O:n6HNN0h%G%#%l%/%H%jA4BN$K:nMQ$7$^$9!#(B 276.48 + $BNc$($P!"(B\hgcmd{add} $B%3%^%s%I$J$I$,$=$&$G$9!#(B 276.49 + 276.50 +\item $BI|5l$,:$Fq$"$k$$$OIT2DG=$J:nMQ$r5Z$\$9%3%^%s%I$N>l9g!"(B 276.51 + $B>/$J$/$H$b#1$D0J>e$NL>A0$J$$$7%Q%?!<%s!J8e=R$7$^$9!K(B 276.52 + $B$NL@<(E*$J;XDj$r5a$a$kH&$G$9!#(B 276.53 + $B$3$N5sF0$K$h$j!"(B 276.54 + $BNc$($P0z?tL5$7$N(B \hgcmd{remove} $B5/F0$N$h$&$J!"(B 276.55 + $BITN8$N;vBV$K$h$k%U%!%$%k$N:o=|Ey$rKI$0$3$H$,$G$-$^$9!#(B 276.56 + 276.57 +\end{itemize} 276.58 + 276.59 +$B$3$N?6$kIq$$$,$=$0$o$J$$>u67$G$"$l$P!"(B 276.60 +$B4JC1$K?6$kIq$$$rJQ$($k$3$H$,$G$-$^$9!#(B 276.61 +$B:n6HNN0h%G%#%l%/%H%jA4BN$K:nMQ$9$k%3%^%s%I$G$"$l$P!"(B 276.62 +``\dirname{.}'' $B$r;XDj$9$k$3$H$G!"(B 276.63 +$B%3%^%s%I$N:nMQ$r8=:_$N%G%#%l%/%H%j$*$h$S$=$NG[2<$K8BDj$9$k$3$H$,$G$-$^$9!#(B 276.64 + 276.65 +\interaction{filenames.wdir-subdir} 276.66 + 276.67 +$B%k!<%H0J30$N%G%#%l%/%H%j$G%3%^%s%I$r<B9T$7$?>l9g$G$b!"(B 276.68 +$B%j%]%8%H%j$N%k!<%H$KBP$9$kAjBPE*$J%U%!%$%kL>$rI=<($9$k%3%^%s%I$b$"$j$^$9!#(B 276.69 +$B$3$N$h$&$J%3%^%s%I$O!"(B 276.70 +$BL@<(E*$JL>A0$r;XDj$9$k$3$H$G!"(B 276.71 +$B8=:_$N%G%#%l%/%H%j0LCV$KBP$9$kAjBPE*$J%U%!%$%kL>$rI=<($9$k$h$&$K$J$j$^$9!#(B 276.72 +$BHs%k!<%H%G%#%l%/%H%j$G$N(B \hgcmd{status} $B5/F0$N:]$K(B 276.73 +\hgcmd{root} $B%3%^%s%I$N=PNO$r;XDj$9$k$3$H$G!"(B 276.74 +$BBP>]$r:n6HNN0h%G%#%l%/%H%jA4BN$K0];}$7$?$^$^!"(B 276.75 +$B8=:_$N%G%#%l%/%H%j0LCV$KBP$9$kAjBPE*$J%U%!%$%kL>$rI=<($5$;$k$3$H$,$G$-$^$9!#(B 276.76 + 276.77 +\interaction{filenames.wdir-relname} 276.78 + 276.79 +\section{Telling you what's going on} 276.80 + 276.81 +$B@h$N@a$K$*$1$k(B \hgcmd{add} $B%3%^%s%I<B9TNc$O!"(B 276.82 +Mercurial $B%3%^%s%I$K4X$9$k$b$&0l$D$NM-1W$J;vJA$r<($7$F$$$^$9!#(B 276.83 +$B%3%^%s%I9T$GL@<(E*$J;XDj$r$7$F$$$J$$%U%!%$%k$KBP$7$F%3%^%s%I$,:nMQ$9$k>l9g!"(B 276.84 +$BDL>o$OBP>]%U%!%$%kL>$rI=<($7$^$9$N$G!"(B 276.85 +$B;W$o$L%3%^%s%I$N<B9T7k2L$K8e$+$i6C$+$5$l$k$3$H$O$"$j$^$;$s!#(B 276.86 + 276.87 +$B$3$l$O(B\emph{$B6C$-$r:G>.(B}$B$K$9$k86B'$KB'$C$?$b$N$G$9!#(B 276.88 +$B%3%^%s%I9T$G87L)$J%U%!%$%kL>$r;XDj$7$?>l9g$K$O!"(B 276.89 +$B$=$l$rI|>'$9$kI,MW$OL5$$$G$7$g$&!#(B 276.90 +$B%U%!%$%kL>!&%G%#%l%/%H%jL>$J$$$7%Q%?!<%s!J8e=R$7$^$9!K(B 276.91 +$B$r;XDj$7$J$$$3$H$G(B\emph{$B0E$K;XDj$5$l$?(B}$BBP>]%U%!%$%k$K(B 276.92 +Mercurial $B$,:nMQ$9$k>l9g!"(B 276.93 +$B$I$N%U%!%$%k$rBP>]$H$9$k$N$+$rDLCN$9$k$N$O0BA4@-$N>e$GM-MQ$G$9!#(B 276.94 + 276.95 +$B>e5-J}?K$K1h$C$F?6Iq$&%3%^%s%I72$O!"(B 276.96 +\hggopt{-q} $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B 276.97 +$B$=$N=PNO$rM^;_$9$k$3$H$,$G$-$^$9!#(B 276.98 +$BL@<(E*$K%U%!%$%kL>Ey$r;XDj$7$?>l9g$G$b!"(B 276.99 +\hggopt{-v} $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B 276.100 +$BA4$F$NBP>]%U%!%$%kL>$rI=<($5$;$k$3$H$,$G$-$^$9!#(B 276.101 + 276.102 +\section{Using patterns to identify files} 276.103 + 276.104 +$B%U%!%$%kL>!&%G%#%l%/%H%jL>$K$h$k;XDj$K2C$($F!"(B 276.105 +Mercurial $B$G$O(B\emph{$B%Q%?!<%s(B}$B$K$h$k%U%!%$%k;XDj5!G=$,;HMQ$G$-$^$9!#(B 276.106 +Mercurial $B$N%Q%?!<%sA`:n$OI=8=NO$KIY$s$@$b$N$G$9!#(B 276.107 + 276.108 +Linux $B$d(B MacOS $B$N$h$&$J(B Unix $BE*%7%9%F%`$G$O!"(B 276.109 +$B%U%!%$%kL>$H%Q%?!<%s$H$N4V$NFM9g$;$ODL>o%7%'%k$,$=$NLrL\$rIi$$$^$9!#(B 276.110 +$B$3$l$i$N%7%9%F%`$G$O!"(B 276.111 +$B%Q%?!<%s$r;XDj$7$F$$$k;]$r(B 276.112 +Mercurial $B$KBP$7$FL@<(E*$K;X<($9$kI,MW$,$"$j$^$9(B\footnote{$BLuCm(B: 276.113 +$B%7%'%k$K$h$kFC<lJ8;zE83+$NM^;_$NOC$G$"$l$P!"(B 276.114 +``Mercurial $B$KBP$7$F(B''$B$G$O$J$/!"(B 276.115 +``$B%7%'%k$KBP$7$F(B''$B$J$N$G$O!)(B 276.116 +$B$=$l$H$b(B Windows $B%P%$%J%jHG$G$O?6$kIq$$$,0[$J$k!)(B}$B!#(B 276.117 +Windows $B$K$*$$$F$O!"(B 276.118 +$B%7%'%k$K$h$k%Q%?!<%s$NE83+$,9T$o$l$^$;$s$N$G!"(B 276.119 +Mercurial $B$O<+F0E*$K;XDj$5$l$?$b$N$,%Q%?!<%s$G$"$k$HG'<1$7!"(B 276.120 +$B%U%!%$%kL>$X$HE83+$7$^$9!#(B 276.121 + 276.122 +$B%3%^%s%I9T$K$*$$$F!"(B 276.123 +$B%U%!%$%kL>$r;XDj$9$k>l=j$G%Q%?!<%s$r;HMQ$9$k$K$O!"(B 276.124 +$B0J2<$N$h$&$K5-=R$7$^$9!#(B 276.125 + 276.126 +\begin{codesample2} 276.127 + syntax:patternbody 276.128 +\end{codesample2} 276.129 + 276.130 +$B%Q%?!<%s$N5-=R$O!"(B 276.131 +$B%Q%?!<%s$N<oN`$r<1JL$9$k$?$a$NC;$$J8;zNs!"%3%m%s!"(B 276.132 +$B$=$7$F<B:]$N%Q%?!<%s$rO"7k$7$?$b$N$G$9!#(B 276.133 + 276.134 +Mercurial $B$O#2<oN`$N%Q%?!<%s7A<0$KBP1~$7$F$$$^$9!#(B 276.135 +$B:G$bMxMQIQEY$,9b$$$b$N$O(B \texttt{glob} $B$H8F$P$l!"(B 276.136 +Unix $B$N%7%'%k$K$h$k%Q%?!<%s%^%C%A%s%0$HF1MM$N5!G=$r;}$D$b$N$G!"(B 276.137 +$B$=$N?6$kIq$$$O(B Windows $B$N%3%^%s%I%W%m%s%W%H%f!<%6$K$bFk@w$_$,$"$k$3$H$G$7$g$&!#(B 276.138 + 276.139 +Windows $B$K$*$$$F(B 276.140 +Mercurial $B$,<+F0E*$K%Q%?!<%s%^%C%A%s%0$r9T$&>l9g!"(B 276.141 +\texttt{glob} $B7A<0$H$_$J$5$l$^$9!#(B 276.142 +$B$=$N$?$a!"(B 276.143 +Windows $B$K$*$$$F$O(B ``\texttt{glob:}'' $B@\F,<-$r>JN,2DG=$G$9$,!"(B 276.144 +$BL@<(E*$K;XDj$9$k$3$H$b2DG=$G$9!#(B 276.145 + 276.146 +\texttt{re} $B7A<0$O!"(B 276.147 +\texttt{glob} $B7A<0$h$j$b6/NO$G!"(B 276.148 +regexps $B$H$7$F$bCN$i$l$k@55,I=8=$r;HMQ$7$?%Q%?!<%s$N5-=R$,2DG=$G$9!#(B 276.149 + 276.150 +$B$A$J$_$K!"0J9_$NNc$G$O!"(B 276.151 +$BA4$F$N%Q%?!<%s;XDj$rCm0U?<$/0zMQId$G0O$`$3$H$G!"(B 276.152 +Mercurial $B$N=hM}$NA0$K%7%'%k$K$h$C$FE83+$5$l$F$7$^$&$3$H$rKI$$$G$$$k!"(B 276.153 +$B$H$$$&E@$KCm0U$7$F$/$@$5$$!#(B 276.154 + 276.155 +\subsection{Shell-style \texttt{glob} patterns} 276.156 + 276.157 +\texttt{glob} $B7A<0$K$h$k%^%C%A%s%0$N:]$K!"(B 276.158 +$B;HMQ2DG=$J%Q%?!<%s$K$D$$$F$N35MW$r0J2<$K<($7$^$9!#(B 276.159 + 276.160 +$B%Q%?!<%s(B ``\texttt{*}'' $B$O!"(B 276.161 +$BF10l%G%#%l%/%H%jFb$GG$0U$NJ8;zNs$K9gCW$7$^$9!#(B 276.162 + 276.163 +\interaction{filenames.glob.star} 276.164 + 276.165 +$B%Q%?!<%s(B ``\texttt{**}'' $B$O!"(B 276.166 +$B%G%#%l%/%H%j6-3&$rD6$($FG$0U$NJ8;zNs$K9gCW$7$^$9!#(B 276.167 +$B$3$N%Q%?!<%s$O(B Unix $B$K$*$1$kI8=`E*$J$b$N$G$O$"$j$^$;$s$,!"(B 276.168 +$B4v$D$+$NCxL>$J%7%'%k<BAu$G:NMQ$5$l$F$*$j!"(B 276.169 +$BHs>o$KJXMx$G$9!#(B 276.170 + 276.171 +\interaction{filenames.glob.starstar} 276.172 + 276.173 +$B%Q%?!<%s(B ``\texttt{?}'' $B$O!"(B 276.174 +$BC10l$NJ8;z$K9gCW$7$^$9!#(B 276.175 + 276.176 +\interaction{filenames.glob.question} 276.177 + 276.178 +$B%Q%?!<%s(B ``\texttt{[}'' $B$O!"(B 276.179 +\emph{$BJ8;z=89g(B}$B!J(Bcharacter class$B!K$N3+;O$r0UL#$7$^$9!#(B 276.180 +$B$3$N%Q%?!<%s$OEv3:=89g$KB0$9$kG$0U$N0lJ8;z$K9gCW$7$^$9!#(B 276.181 +$B=89g;XDj$O(B ``\texttt{]}'' $B$K$h$C$F=*N;$7$^$9!#(B 276.182 +$B=89g;XDj$K$O!"(B 276.183 +``\texttt{abcdef}'' $B$N>JN,;XDj$G$"$k(B 276.184 +``\texttt{a-f}'' $B7A<0$N(B\emph{$BHO0O(B}$B;XDj$r!"(B 276.185 +$BJ#?t4^$a$k$3$H$,2DG=$G$9!#(B 276.186 + 276.187 +\interaction{filenames.glob.range} 276.188 + 276.189 +$BJ8;z=89g;XDj$K$*$$$F(B 276.190 +``\texttt{[}'' $B$ND>8e$NJ8;z$,(B ``\texttt{!}'' \footnote{$BLuCm(B: 276.191 +$B@55,I=8=$K$*$1$k(B ``\texttt{\^}'' $B$K$h$kH?E>$H0[$J$kE@$KCm0U(B}$B$N>l9g!"(B 276.192 +$B=89g;XDj$O(B\emph{$BH?E>(B}$B$5$l!"(B 276.193 +$B=89g$KB0$5$J$$G$0U$N0lJ8;z$K9gCW$7$^$9!#(B 276.194 + 276.195 +$B%Q%?!<%s(B ``\texttt{\{}'' $B$O%5%V%Q%?!<%s$N%0%k!<%W2=$N3+;O$r0UL#$7!"(B 276.196 +$B%0%k!<%WCf$N2?$l$+$N%5%V%Q%?!<%s$,9gCW$7$?>l9g$O!"(B 276.197 +$B%0%k!<%WA4BN$,9gCW$7$?$b$N$H$_$J$5$l$^$9!#(B 276.198 +$B%0%k!<%W;XDj$K$*$1$k%5%V%Q%?!<%s$N6h@Z$j$K$O(B 276.199 +``\texttt{,}'' $B$,;HMQ$5$l!"(B 276.200 +``\texttt{\}}'' $B$,%0%k!<%W$N=*N;$r0UL#$7$^$9!#(B 276.201 + 276.202 +\interaction{filenames.glob.group} 276.203 + 276.204 +\subsubsection{Watch out!} 276.205 + 276.206 +$BG$0U$N%G%#%l%/%H%j$K$*$1$k%Q%?!<%s9gCW$,I,MW$J>l9g$O!"(B 276.207 +$BC10l%G%#%l%/%H%jFb$G$N%^%C%A%s%0$7$+9T$o$J$$(B 276.208 +``\texttt{*}'' $B$r;HMQ$9$Y$-$G$OL5$$!"(B 276.209 +$B$H$$$&E@$OK:$l$J$$$h$&$K$7$F$/$@$5$$!#(B 276.210 +``\texttt{*}'' $B$NBe$o$j$K(B ``\texttt{**}'' $B$r;HMQ$7$^$7$g$&!#(B 276.211 +$BN><T$N0c$$$r0J2<$G@bL@$7$^$9!#(B 276.212 + 276.213 +\interaction{filenames.glob.star-starstar} 276.214 + 276.215 +\subsection{Regular expression matching with \texttt{re} patterns} 276.216 + 276.217 +Mercurial $B$O!J(BPython $B$NFbItE*$J@55,I=8=%(%s%8%s$rMxMQ$7$F$$$k$N$G!K(B 276.218 +Python $B$,<u$1IU$1$k$N$HF1$8@55,I=8=$r<u$1IU$1$^$9!#(B 276.219 +$B$3$N@55,I=8=$O(B Perl $B$N@55,I=8=J8K!$r4p$K$7$F$*$j!"(B 276.220 +$B:G$bB?MQ$5$l$F$$$k!JNc$($P(B Java $B$G$b;HMQ$5$l$F$$$^$9!KJ}8@$G$9!#(B 276.221 + 276.222 +$B@55,I=8=%Q%?!<%s$O$=$l$[$IB?MQ$5$l$k$b$N$G$O$J$$$N$G!"(B 276.223 +Mercurial $B$N@55,I=8=$N>\:Y$K4X$7$F$3$3$G$O@bL@$7$^$;$s!#(B 276.224 +Perl $B7A<0$N@55,I=8=$OMM!9$J7A<0$G!"(B 276.225 +$BB?$/$N%&%'%V%5%$%H$d=PHGJ*$K$*$$$FM>$9=jL5$/@bL@$5$l$F$$$^$9!#(B 276.226 +$B$=$NBe$o$j$3$3$G$O!"(B 276.227 +Mercurial $B$G@55,I=8=$r;HMQ$9$kI,MW$KGw$i$l$?:]$K!"(B 276.228 +$BCN$C$F$*$/$Y$-4v$D$+$N;vJA$K$D$$$F@bL@$7$h$&$H$*$b$$$^$9!#(B 276.229 + 276.230 +$B@55,I=8=$O!"(B 276.231 +$B%j%]%8%H%j%k!<%H$+$i$NAjBPE*$J%U%!%$%kL>A4BN$KBP$7$FE,MQ$5$l$^$9!#(B 276.232 +$B8@$$49$($k$J$i!"(B 276.233 +\dirname{foo} $B%5%V%G%#%l%/%H%j$G:n6H$7$F$$$k>l9g$G$b!"(B 276.234 +$B$3$N%G%#%l%/%H%jG[2<$N%U%!%$%k$KBP$7$F%^%C%A%s%0$r9T$&$J$i!"(B 276.235 +$B;XDj$9$k%Q%?!<%s$O(B 276.236 +``\texttt{foo/}'' $B$G;O$^$C$F$$$J$1$l$P$J$j$^$;$s!#(B 276.237 + 276.238 +Perl $B7A<0$N@55,I=8=$KFk@w$s$G$$$k>l9g!"(B 276.239 +Mercurial $B$N@55,I=8=$O(B \emph{rooted} $B$G$"$kE@$KCm0U$7$F$/$@$5$$(B\footnote{$BLuCm(B: 276.240 +$B0EL[$N$&$A$K(B ``\texttt{\^}'' $B$,IUM?$5$l$k!"$HM}2r$9$l$PNI$$$G$7$g$&!#(B}$B!#(B 276.241 +$B@55,I=8=$OJ8;zNs@hF,$+$i%^%C%A%s%0$r<B;\$7$^$9$N$G!"(B 276.242 +$BJ8;zNsESCf$KBP$9$k%^%C%A%s%0$O9T$o$l$^$;$s!#(B 276.243 +$BG$0U$N0LCV$KBP$7$F%^%C%A%s%0$r<B;\$5$;$?$$>l9g!"(B 276.244 +$B%Q%?!<%s$N5-=R$r(B ``\texttt{.*}'' $B$G;O$a$kI,MW$,$"$j$^$9!#(B 276.245 + 276.246 +\section{Filtering files} 276.247 + 276.248 +Mercurial $B$,B?MM$JJ}K!$rDs6!$7$F$$$k$b$N$O!"(B 276.249 +$B%U%!%$%k$N;XDjJ}K!$@$1$G$O$"$j$^$;$s!#(B 276.250 +Mercurial $B$O(B\emph{$B%U%#%k%?(B}$B$K$h$k%U%!%$%kA*JL$N5!G=$bDs6!$7$F$$$^$9!#(B 276.251 +$B%U%!%$%kL>;XDj$r<u$1IU$1$k%3%^%s%I$O!"(B 276.252 +$B0J2<$N#2$D$N%U%#%k%?%j%s%0%*%W%7%g%s$b<u$1IU$1$^$9!#(B 276.253 + 276.254 +\begin{itemize} 276.255 +\item \hggopt{-I} $B$J$$$7(B \hggopt{--include} $B$K$h$j!"(B 276.256 + $B9gCW$7$?%U%!%$%k$N$_$r=hM}BP>]$H$_$J$9%Q%?!<%s$r;XDj$G$-$^$9!#(B 276.257 + 276.258 +\item \hggopt{-X} $B$J$$$7(B \hggopt{--exclude} $B$K$h$j!"(B 276.259 + $B9gCW$7$?%U%!%$%k$r=hM}BP>]$+$i(B\emph{$B=|30(B}$B$9$k%Q%?!<%s$r;XDj$G$-$^$9!#(B 276.260 + 276.261 +\end{itemize} 276.262 + 276.263 +$BJ#?t$N(B \hggopt{-I} $B$*$h$S(B \hggopt{-X} $B%*%W%7%g%s$r!"(B 276.264 +$B%3%^%s%I9T$G9%$-$J$h$&$K:.:_$5$;$k$3$H$,$G$-$^$9!#(B 276.265 +Mercurial $B$N4pDlF0$O!"(B 276.266 +$B;XDj$5$l$?%Q%?!<%s$r(B ``\texttt{glob}'' $B7A<0$H$_$J$7$F2r<a$7$^$9(B 276.267 +$B!JI,MW$G$"$l$PL@<(E*$K(B ``\texttt{glob}'' $B$r;XDj$9$k$3$H$b2DG=$G$9!K!#(B 276.268 + 276.269 +\hggopt{-I} $B%U%#%k%?$O!"(B 276.270 +``$B9gCW$7$?%U%!%$%k$N$_$r=hM}BP>]$H$9$k(B'' 276.271 +$B$b$N$H2r<a$9$l$PNI$$$G$7$g$&!#(B 276.272 + 276.273 +\interaction{filenames.filter.include} 276.274 + 276.275 +\hggopt{-X} $B%U%#%k%?$O!"(B 276.276 +``$B9gCW$7$J$$$b$N$r=hM}BP>]$H$9$k(B'' 276.277 +$B$b$N$H2r<a$9$k$3$H$,$G$-$^$9!#(B 276.278 + 276.279 +\interaction{filenames.filter.exclude} 276.280 + 276.281 +\section{Ignoring unwanted files and directories} 276.282 + 276.283 +$B"((B $B86J8L$9F(B 276.284 + 276.285 +\section{Case sensitivity} 276.286 +\label{sec:names:case} 276.287 + 276.288 +Linux$B!J$J$$$7B>$N(B Unix $B7O(B OS$B!K$H!"(B 276.289 +MacOS $B$J$$$7(B Windows $B$,:.:_$9$k3+H/4D6-$G:n6H$9$k>l9g!"(B 276.290 +$B%U%!%$%kL>$K$*$1$kJ8;z$NBg>.!J(B``N'' $B$H(B ``n''$B!K$N07$$J}?K$,A4$/0[$J$k!"(B 276.291 +$B$H$$$&CN<1$r?4$KN1$a$F$*$/I,MW$,$"$j$^$9!#(B 276.292 +$BNI$/$"$k;v$G$OL5$$$+$b$7$l$^$;$s$7!"(B 276.293 +$BMF0W$K2r7h$G$-$k2DG=@-$b$"$j$^$9$,!"(B 276.294 +$BCN$i$J$$>u67$GAx6x$7$?>l9g!"(B 276.295 +$BHs>o$K6C$+$5$l$kLdBj$G$b$"$j$^$9!#(B 276.296 + 276.297 +OS $B$*$h$S%U%!%$%k%7%9%F%`$K1~$8$F!"(B 276.298 +$B%U%!%$%k$*$h$S%G%#%l%/%H%jL>$N(B\emph{$BJ8;z$NBg>.(B}$B$N07$$$O0[$J$j$^$9!#(B 276.299 +$BL>A0$K$*$1$kJ8;z$NBg>.$N0lHLE*$J07$$J}$r!"(B 276.300 +$B0J2<$K#3$D<($7$^$9!#(B 276.301 + 276.302 +\begin{itemize} 276.303 +\item $B40A4$KJ8;z$NBg>.$rL5;k(B: 276.304 + $B%U%!%$%k$N@8@.$*$h$S$=$N8e$N07$$$K$*$$$F!"(B 276.305 + $BJ8;z$NBgJ8;z!&>.J8;z$OF1$8$b$N$H$7$F07$o$l$^$9!#(B 276.306 + $B8E$$(B DOS $BIw$N%7%9%F%`$G0lHLE*$J07$$J}$G$9!#(B 276.307 + 276.308 +\item $BJ8;z$NBg>.$OJ];}$5$l$k$,L5;k(B: 276.309 + $B%U%!%$%k$J$$$7%G%#%l%/%H%j@8@.$N:]$K$O!"(B 276.310 + $BL>A0$K$*$1$kJ8;z$NBg>.$OJ]B8$5$l!"(B 276.311 + OS $B$K$h$k8!:w$dI=<($,2DG=$G$9!#(B 276.312 + $BB8:_$9$k%U%!%$%k$,8!:w$5$l$k>l9g!"J8;z$NBg>.$OL5;k$5$l$^$9!#(B 276.313 + Windows $B$d(B MacOS $B$G$OI8=`E*$J;EMM$G$9!#(B 276.314 + \filename{foo} $B$H(B \filename{FoO} $B$OF1$8%U%!%$%k$H$_$J$5$l$^$9!#(B 276.315 + $BBgJ8;z$H>.J8;z$N8_49@-$"$k07$$$O!"(B 276.316 + \emph{$B%1!<%9%U%)!<%k%G%#%s%0(B}$B!J(Bcase folding$B!K$H$b8F$P$l$^$9!#(B 276.317 + 276.318 +\item $BJ8;z$NBg>.$r6hJL(B: 276.319 + $BL>A0$K$*$1$kJ8;z$NBg>.$O>o$K0UL#$r;}$A$^$9!#(B 276.320 + \filename{foo} $B$H(B \filename{FoO} $B$O0[$J$k%U%!%$%k$H$7$F6hJL$5$l$^$9!#(B 276.321 + $B$3$l$O(B Linux $B$d(B Unix $B$K$*$1$kDL>o$N?6$kIq$$$G$9!#(B 276.322 + 276.323 +\end{itemize} 276.324 + 276.325 +Unix $BE*$J%7%9%F%`$N>e$G$O!"(B 276.326 +$B>e5-$NBgJ8;z!&>.J8;z$N<h$j07$$7A<0$N$&$A$N(B``$BG$0U(B''$B$N$b$N$,(B 276.327 +$B!J$"$k$$$OA4$F$,F1;~$K!KMW5a$5$l$k2DG=@-$,$"$j$^$9!#(B 276.328 +$BNc$($P!"(B 276.329 +FAT32 $B%U%!%$%k%7%9%F%`$G%U%)!<%^%C%H$5$l$?(B 276.330 +USB $B>.7?%a%b%j%b%8%e!<%k$r(B Linux $B$G;HMQ$9$k>l9g!"(B 276.331 +$B$=$N%U%!%$%k%7%9%F%`>e$G$N(B Linux $B$N?6$kIq$$$O!"(B 276.332 +$BJ8;z$NBg>.$OJ];}$7$D$DL5;k$9$k$b$N$H$J$j$^$9!#(B 276.333 + 276.334 +\subsection{Safe, portable repository storage} 276.335 + 276.336 +Mercurial $B$N%j%]%8%H%j3JG<5!G=$O!"(B 276.337 +$BJ8;zBg>.$N6hJL$N2DH]$K(B\emph{$B1F6A$r<u$1$^$;$s(B}$B!#(B 276.338 +$B%j%]%8%H%j$NJ]B8@h%U%!%$%kL>$O85%U%!%$%kL>$rJQ49$7$?$b$N$J$N$G!"(B 276.339 +$B%U%!%$%k%7%9%F%`$K$*$1$kBgJ8;z>.J8;z$N6hJL$N2DH]$K4X$o$jL5$/!"(B 276.340 +$B9=@.4IM}>pJs$r3JG<$G$-$^$9!#(B 276.341 +$B$D$^$j!"(BOS $B$NI8=`E*$JJ#@=%D!<%k$r;HMQ$7$F!"(B 276.342 +Mercurial $B$N%j%]%8%H%j$rNc$($P(B USB $B>.7?%a%b%j%b%8%e!<%k$KJ#@=$7!"(B 276.343 +Mac$B!"(BWindows PC $B$*$h$S(B Linux $B$N4V$G;}$A1?$V$3$H$,$G$-$^$9!#(B 276.344 + 276.345 +\subsection{Detecting case conflicts} 276.346 + 276.347 +$B:n6HNN0h%G%#%l%/%H%j$K$*$1$kA`:n$N:]$K$O!"(B 276.348 +Mercurial $B$O:n6HNN0h$r:\$;$F$$$k%U%!%$%k%7%9%F%`$NL?L>J}?K$K=>$$$^$9!#(B 276.349 +$B%U%!%$%k%7%9%F%`$,J8;z$NBg>.$OJ];}$7$D$DL5;k$9$k$b$N$G$"$C$?>l9g!"(B 276.350 +$BJ8;z$NBg>.$N$_$,0[$J$kL>A0$r(B Mercurial $B$OF1$8$b$N$H$_$J$7$^$9!#(B 276.351 + 276.352 +$B$3$NJ}?K$N=EMW$JE@$O!"(B 276.353 +$BJ8;zBg>.$r6hJL$9$k!J0lHLE*$J(B Linux $B$d(B Unix $B$K$*$1$k!K(B 276.354 +$B%U%!%$%k%7%9%F%`$K$*$$$F!"(B 276.355 +$BJ8;zBg>.$r6hJL$G$-$J$$!J(BWindows $B$d(B MacOS $B$N!K(B 276.356 +$B%f!<%6$,<h$j07$($J$$$h$&$J%A%'%s%8%;%C%H$r%3%_%C%H$9$k$3$H$,2DG=$G$"$kE@$G$9!#(B 276.357 +Linux $B$NMxMQ<T$,(B 276.358 +\filename{myfile.c} $B$H(B 276.359 +\filename{MyFile.C} 276.360 +$B$H$$$&L>A0$N#2$D$N%U%!%$%k$KBP$9$kJQ99$r%3%_%C%H$7$?>l9g!"(B 276.361 +$BJQ99FbMF$O%j%]%8%H%j$K@5$7$/J]B8$5$l$^$9!#(B 276.362 +$BB>$N(B Linux $BMxMQ<T$N:n6HNN0h%G%#%l%/%H%j$K$*$$$F$b!"(B 276.363 +$B$3$l$i$N%U%!%$%k$O0[$J$k%U%!%$%k$H$7$F@5$7$/B8:_$7$^$9!#(B 276.364 + 276.365 +Mercurial $B$N%j%]%8%H%j3JG<5!9=$,J8;zBg>.$N07$$$N2DH]$K1F6A$r<u$1$J$$$?$a!"(B 276.366 +Windows $B$J$$$7(B MacOS $BMxMQ<T$,$3$NJQ99$r<h$j9~$s$G$b!"(B 276.367 +$B:G=i$OLdBj$,H/@8$7$^$;$s!#(B 276.368 +$B$7$+$7!"(B 276.369 +$B:n6HNN0h%G%#%l%/%H%j$rEv3:%A%'%s%8%;%C%H$G(B \hgcmd{update} 276.370 +$B$7$h$&$H$7$?>l9g!"(B 276.371 +$B$"$k$$$OEv3:%A%'%s%8%;%C%H$H(B 276.372 +\hgcmd{merge} $B$7$h$&$H$7$?>l9g!"(B 276.373 +$B%U%!%$%k%7%9%F%`$,F1$8%U%!%$%k$H$7$F07$$D$N%U%!%$%k$N>WFM$r8+$D$1$?(B 276.374 +Mercurial $B$K$h$C$F!"(B 276.375 +\hgcmd{update} $B$J$$$7(B \hgcmd{merge} $B$O6X;_$5$l$^$9!#(B 276.376 + 276.377 +\subsection{Fixing a case conflict} 276.378 + 276.379 +$BB>$N%a%s%P!<$,(B Linux $B$d(B Unix $B$r;HMQ$7$F$$$k:.:_4D6-$G(B 276.380 +Windows $B$J$$$7(B MacOS $B$r;HMQ$7$F$$$F!"(B 276.381 +\hgcmd{update} $B$"$k$$$O(B \hgcmd{merge} $B$N:]$K(B 276.382 +Mercurial $B$,J8;zBg>.$N>WFM$rJs9p$9$k>l9g!"(B 276.383 +$BLdBj$N2r7h<j=g$O4JC1$G$9!#(B 276.384 + 276.385 +$B<j6a$J(B Linux $B$J$$$7(B Unix $BMxMQ<T$rC5$7!"(B 276.386 +$BLdBj$N%j%]%8%H%j$r(B \hgcmd{clone} $B$7$F$+$i!"(B 276.387 +$BLdBj$N%U%!%$%k$J$$$7%G%#%l%/%H%j$rBgJ8;z>.J8;z$N>WFM$,H/@8$7$J$$$h$&$K!"(B 276.388 +Mercurial $B$N(B \hgcmd{rename} $B%3%^%s%I$G2~L>$r$9$l$PNI$$$N$G$9!#(B 276.389 +$B$=$N8e!"(B 276.390 +$BJQ99$r%3%_%C%H$7!"(B 276.391 +\hgcmd{pull} $B$J$$$7(B \hgcmd{push} $B$G(B 276.392 +Windows $B$d(B MacOS $B$KJQ99$r<h$j9~$_!"(B 276.393 +\hgcmd{update} $B$K$h$C$F>WFM$7$J$$L>A0$GJQ99FbMF$r<h$j=P$7$^$9!#(B 276.394 + 276.395 +$BBgJ8;z>.J8;z$N>WFM$r@8$8$5$;$k%A%'%s%8%;%C%H$=$N$b$N$O!"(B 276.396 +$B%W%m%8%'%/%H$NMzNr$K;D$C$F$*$j!"(B 276.397 +$BEv3:%A%'%s%8%;%C%H$r(B Windows $B$d(B 276.398 +MacOS $B>e$G:n6HNN0h%G%#%l%/%H%j$K<h$j=P$9$3$H$O$G$-$^$;$s$,!"(B 276.399 +$B3+H/$r7QB3$9$k$3$H$O2DG=$G$9(B\footnote{$BLuCm(B: 276.400 +$BJ8;z$NBg>.$H$O4X78$"$j$^$;$s$,!"(B 276.401 +Windows $B$O(B ``\texttt{con}'' $B$d(B 276.402 +``\texttt{aux}'' $B$,FCJL07$$$5$l$k$?$a!"(B 276.403 +$BNc$($P$3$l$i$NL>A0$rMxMQ$7$?%G%#%l%/%H%j$,$"$k>l9g$J$I$O!"(B 276.404 +$B%j%]%8%H%j$N(B \hgcmd{pull} $B$=$N$b$N$,$G$-$^$;$s!#(B}$B!#(B 276.405 + 276.406 +\begin{note} 276.407 + 0.9.3 $BHG0JA0$N(B Mercurial $B$O!"(B 276.408 + $BBgJ8;z>.J8;z$K1F6A$r<u$1$J$$%j%]%8%H%j3JG<5!9=$b!"(B 276.409 + $BBgJ8;z>.J8;z$NL>A0>WFM8!CN5!G=$b$"$j$^$;$s$G$7$?!#(B 276.410 + Mercurial $B$N5lHG$r(B Windows $B$d(B MacOS $B$G;HMQ$7$F$$$k>l9g!"(B 276.411 + Mercurial $B$N99?7$r$*A&$a$7$^$9!#(B 276.412 +\end{note} 276.413 + 276.414 +%%% Local Variables: 276.415 +%%% mode: latex 276.416 +%%% TeX-master: "00book" 276.417 +%%% End:
277.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 277.2 +++ b/ja/fixhtml.py Fri Aug 14 12:10:47 2009 -0700 277.3 @@ -0,0 +1,50 @@ 277.4 +#!/usr/bin/env python 277.5 +# 277.6 +# This script attempts to work around some of the more bizarre and 277.7 +# quirky behaviours of htlatex. 277.8 +# 277.9 +# - We've persuaded htlatex to produce UTF-8, which unfortunately 277.10 +# causes it to use huge character sequences to represent even the 277.11 +# safe 7-bit ASCII subset of UTF-8. We fix that up. 277.12 +# 277.13 +# - BUT we have to treat angle brackets (for example, redirections in 277.14 +# shell script snippets) specially, otherwise they'll break the 277.15 +# generated HTML. (Reported by Johannes Hoff.) 277.16 +# 277.17 +# - For some reason, htlatex gives a unique ID to each fancyvrb 277.18 +# environment, which makes writing a sane, small CSS stylesheet 277.19 +# impossible. We squish all those IDs down to nothing. 277.20 + 277.21 +import os 277.22 +import sys 277.23 +import re 277.24 + 277.25 +angle_re = re.compile(r'([CE];)') 277.26 +unicode_re = re.compile(r'�([0-7][0-9A-F]);') 277.27 +fancyvrb_re = re.compile(r'id="fancyvrb\d+"', re.I) 277.28 +ligature_re = re.compile(r'ྰ([0-4]);') 277.29 + 277.30 +tmpsuffix = '.tmp.' + str(os.getpid()) 277.31 + 277.32 +def hide_angle(m): 277.33 + return m.group(1).lower() 277.34 + 277.35 +def fix_ascii(m): 277.36 + return chr(int(m.group(1), 16)) 277.37 + 277.38 +ligatures = ['ff', 'fi', 'fl', 'ffi', 'ffl'] 277.39 + 277.40 +def expand_ligature(m): 277.41 + return ligatures[int(m.group(1))] 277.42 + 277.43 +for name in sys.argv[1:]: 277.44 + tmpname = name + tmpsuffix 277.45 + ofp = file(tmpname, 'w') 277.46 + for line in file(name): 277.47 + line = angle_re.sub(hide_angle, line) 277.48 + line = unicode_re.sub(fix_ascii, line) 277.49 + line = ligature_re.sub(expand_ligature, line) 277.50 + line = fancyvrb_re.sub('id="fancyvrb"', line) 277.51 + ofp.write(line) 277.52 + ofp.close() 277.53 + os.rename(tmpname, name)
278.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 278.2 +++ b/ja/hgbook.css Fri Aug 14 12:10:47 2009 -0700 278.3 @@ -0,0 +1,441 @@ 278.4 +body { 278.5 + font: 12px/1.5 Verdana, sans-serif; 278.6 + padding-top: 50px; 278.7 + padding-left: 80px; 278.8 + padding-right: 80px; 278.9 + padding-bottom: 90px; 278.10 +} 278.11 +.ptmr7t- { 278.12 + font-family: monospace; 278.13 +} 278.14 +.ptmr7t-x-x-172 { 278.15 + font-size: 172%; 278.16 + font-family: monospace; 278.17 +} 278.18 +.ptmr7t-x-x-120 { 278.19 + font-size: 120%; 278.20 +} 278.21 +.zpzccmry-x-x-120 { 278.22 + font-size: 120%; 278.23 + font-weight: bold; 278.24 + font-style: italic; 278.25 +} 278.26 +.zpzccmry-x-x-120 { 278.27 + font-weight: bold; 278.28 + font-style: italic; 278.29 +} 278.30 +.pcrr7tn- { 278.31 + font-family: monospace; 278.32 +} 278.33 +.ptmri7t- { 278.34 + font-style: italic; 278.35 +} 278.36 +.ptmr7t-x-x-50 { 278.37 + font-size: 50%; 278.38 + font-family: monospace; 278.39 +} 278.40 +.ptmb7t- { 278.41 + font-weight: bold; 278.42 +} 278.43 +.zptmcmr- { 278.44 + font-style: italic; 278.45 +} 278.46 +.zptmcmrm- { 278.47 + font-style: italic; 278.48 +} 278.49 +.zpzccmry- { 278.50 + font-weight: bold; 278.51 + font-style: italic; 278.52 +} 278.53 +.pcrb7t- { 278.54 + font-family: monospace; 278.55 + font-weight: bold; 278.56 +} 278.57 +.pcrro7t- { 278.58 + font-family: monospace; 278.59 + font-style: oblique; 278.60 +} 278.61 +p.noindent { 278.62 + text-indent: 0em; 278.63 + margin: 0em; 278.64 +} 278.65 +p.nopar { 278.66 + text-indent: 0em; 278.67 +} 278.68 +p.indent { 278.69 + text-indent: 1.5em; 278.70 + margin: 0em; 278.71 +} 278.72 +a img { 278.73 + border-top: 0; 278.74 + border-left: 0; 278.75 + border-right: 0; 278.76 +} 278.77 +center { 278.78 + margin-top: 1em; 278.79 + margin-bottom: 1em; 278.80 +} 278.81 +td center { 278.82 + margin-top: 0em; 278.83 + margin-bottom: 0em; 278.84 +} 278.85 +.Canvas { 278.86 + position: relative; 278.87 +} 278.88 +img.math { 278.89 + vertical-align: middle; 278.90 +} 278.91 +li p.indent { 278.92 + text-indent: 0em; 278.93 +} 278.94 +.enumerate1 { 278.95 + list-style-type: decimal; 278.96 +} 278.97 +.enumerate2 { 278.98 + list-style-type: lower-alpha; 278.99 +} 278.100 +.enumerate3 { 278.101 + list-style-type: lower-roman; 278.102 +} 278.103 +.enumerate4 { 278.104 + list-style-type: upper-alpha; 278.105 +} 278.106 +div.newtheorem { 278.107 + margin-bottom: 2em; 278.108 + margin-top: 2em; 278.109 +} 278.110 +.obeylines-h,.obeylines-v { 278.111 + white-space: nowrap; 278.112 +} 278.113 +div.obeylines-v p { 278.114 + margin-top: 0; 278.115 + margin-bottom: 0; 278.116 +} 278.117 +.overline { 278.118 + text-decoration: overline; 278.119 +} 278.120 +.overline img { 278.121 + border-top: 1px solid black; 278.122 +} 278.123 +td.displaylines { 278.124 + text-align: center; 278.125 + white-space: nowrap; 278.126 +} 278.127 +.centerline { 278.128 + text-align: center; 278.129 +} 278.130 +.rightline { 278.131 + text-align: right; 278.132 +} 278.133 +div.verbatim { 278.134 + font-family: monospace; 278.135 + white-space: nowrap; 278.136 +} 278.137 +table.verbatim { 278.138 + width: 100%; 278.139 +} 278.140 +.fbox { 278.141 + background: url(note.png) no-repeat #cec; 278.142 + padding-left: 65px; 278.143 + padding-top: 1em; 278.144 + padding-bottom: 1em; 278.145 + padding-right: 1em; 278.146 + text-indent: 0pt; 278.147 + border: dotted black 1px; 278.148 +} 278.149 +div.center div.fbox { 278.150 + text-align: center; 278.151 + clear: both; 278.152 + padding-left: 3.0pt; 278.153 + padding-right: 3.0pt; 278.154 + text-indent: 0pt; 278.155 + border: solid black 0.4pt; 278.156 +} 278.157 +table.minipage { 278.158 + width: 100%; 278.159 +} 278.160 +div.center, div.center div.center { 278.161 + text-align: center; 278.162 + margin-left: 1em; 278.163 + margin-right: 1em; 278.164 +} 278.165 +div.center div { 278.166 + text-align: left; 278.167 +} 278.168 +div.flushright, div.flushright div.flushright { 278.169 + text-align: right; 278.170 +} 278.171 +div.flushright div { 278.172 + text-align: left; 278.173 +} 278.174 +div.flushleft { 278.175 + text-align: left; 278.176 +} 278.177 +.underline { 278.178 + text-decoration: underline; 278.179 +} 278.180 +.underline img { 278.181 + border-bottom: 1px solid black; 278.182 + margin-bottom: 1pt; 278.183 +} 278.184 +.framebox-c, .framebox-l, .framebox-r { 278.185 + padding-left: 3.0pt; 278.186 + padding-right: 3.0pt; 278.187 + text-indent: 0pt; 278.188 + border: solid black 0.4pt; 278.189 +} 278.190 +.framebox-c { 278.191 + text-align: center; 278.192 +} 278.193 +.framebox-l { 278.194 + text-align: left; 278.195 +} 278.196 +.framebox-r { 278.197 + text-align: right; 278.198 +} 278.199 +span.thank-mark { 278.200 + vertical-align: super 278.201 +} 278.202 +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript { 278.203 + font-size: 80%; 278.204 +} 278.205 +div.tabular, div.center div.tabular { 278.206 + text-align: center; 278.207 + margin-top: 0.5em; 278.208 + margin-bottom: 0.5em; 278.209 +} 278.210 +table.tabular td p { 278.211 + margin-top: 0em; 278.212 +} 278.213 +table.tabular { 278.214 + margin-left: auto; 278.215 + margin-right: auto; 278.216 +} 278.217 +div.td00 { 278.218 + margin-left: 0pt; 278.219 + margin-right: 0pt; 278.220 +} 278.221 +div.td01 { 278.222 + margin-left: 0pt; 278.223 + margin-right: 5pt; 278.224 +} 278.225 +div.td10 { 278.226 + margin-left: 5pt; 278.227 + margin-right: 0pt; 278.228 +} 278.229 +div.td11 { 278.230 + margin-left: 5pt; 278.231 + margin-right: 5pt; 278.232 +} 278.233 +table[rules] { 278.234 + border-left: solid black 0.4pt; 278.235 + border-right: solid black 0.4pt; 278.236 +} 278.237 +td.td00 { 278.238 + padding-left: 0pt; 278.239 + padding-right: 0pt; 278.240 +} 278.241 +td.td01 { 278.242 + padding-left: 0pt; 278.243 + padding-right: 5pt; 278.244 +} 278.245 +td.td10 { 278.246 + padding-left: 5pt; 278.247 + padding-right: 0pt; 278.248 +} 278.249 +td.td11 { 278.250 + padding-left: 5pt; 278.251 + padding-right: 5pt; 278.252 +} 278.253 +table[rules] { 278.254 + border-left: solid black 0.4pt; 278.255 + border-right: solid black 0.4pt; 278.256 +} 278.257 +.hline hr, .cline hr { 278.258 + height : 1px; 278.259 + margin: 0px; 278.260 +} 278.261 +.tabbing-right { 278.262 + text-align: right; 278.263 +} 278.264 +span.TEX { 278.265 + letter-spacing: -0.125em; 278.266 +} 278.267 +span.TEX span.E { 278.268 + position: relative;top: 0.5ex;left: -0.0417em; 278.269 +} 278.270 +a span.TEX span.E { 278.271 + text-decoration: none; 278.272 +} 278.273 +span.LATEX span.A { 278.274 + position: relative; 278.275 + top: -0.5ex; 278.276 + left: -0.4em; 278.277 + font-size: 85%; 278.278 +} 278.279 +span.LATEX span.TEX { 278.280 + position: relative; 278.281 + left: -0.4em; 278.282 +} 278.283 +div.float img, div.float .caption { 278.284 + text-align: center; 278.285 +} 278.286 +div.figure img, div.figure .caption { 278.287 + text-align: center; 278.288 +} 278.289 +.marginpar { 278.290 + width: 20%; 278.291 + float: right; 278.292 + text-align: left; 278.293 + margin-left: auto; 278.294 + margin-top: 0.5em; 278.295 + font-size: 85%; 278.296 + text-decoration: underline; 278.297 +} 278.298 +.marginpar p { 278.299 + margin-top: 0.4em; 278.300 + margin-bottom: 0.4em; 278.301 +} 278.302 +table.equation { 278.303 + width: 100%; 278.304 +} 278.305 +.equation td { 278.306 + text-align: center; 278.307 +} 278.308 +td.equation { 278.309 + margin-top: 1em; 278.310 + margin-bottom: 1em; 278.311 +} 278.312 +td.equation-label { 278.313 + width: 5%; 278.314 + text-align: center; 278.315 +} 278.316 +td.eqnarray4 { 278.317 + width: 5%; 278.318 + white-space: normal; 278.319 +} 278.320 +td.eqnarray2 { 278.321 + width: 5%; 278.322 +} 278.323 +table.eqnarray-star, table.eqnarray { 278.324 + width: 100%; 278.325 +} 278.326 +div.eqnarray { 278.327 + text-align: center; 278.328 +} 278.329 +div.array { 278.330 + text-align: center; 278.331 +} 278.332 +div.pmatrix { 278.333 + text-align: center; 278.334 +} 278.335 +table.pmatrix { 278.336 + width: 100%; 278.337 +} 278.338 +span.pmatrix img { 278.339 + vertical-align: middle; 278.340 +} 278.341 +div.pmatrix { 278.342 + text-align: center; 278.343 +} 278.344 +table.pmatrix { 278.345 + width: 100%; 278.346 +} 278.347 +img.cdots { 278.348 + vertical-align: middle; 278.349 +} 278.350 +.partToc a, .partToc, .likepartToc a, .likepartToc { 278.351 + line-height: 200%; 278.352 + font-weight: bold; 278.353 + font-size: 110%; 278.354 +} 278.355 +.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc { 278.356 + line-height: 200%; 278.357 + font-weight: bold; 278.358 +} 278.359 +.caption td.id { 278.360 + font-weight: bold; 278.361 + white-space: nowrap; 278.362 +} 278.363 +table.caption { 278.364 + text-align: center; 278.365 +} 278.366 +h1.partHead { 278.367 + text-align: center; 278.368 +} 278.369 +p.bibitem { 278.370 + text-indent: -2em; 278.371 + margin-left: 2em; 278.372 + margin-top: 0.6em; 278.373 + margin-bottom: 0.6em; 278.374 +} 278.375 +p.bibitem-p { 278.376 + text-indent: 0em; 278.377 + margin-left: 2em; 278.378 + margin-top: 0.6em; 278.379 + margin-bottom: 0.6em; 278.380 +} 278.381 +.paragraphHead, .likeparagraphHead { 278.382 + margin-top: 2em; 278.383 + font-weight: bold; 278.384 +} 278.385 +.subparagraphHead, .likesubparagraphHead { 278.386 + font-weight: bold; 278.387 +} 278.388 +.quote { 278.389 + margin-bottom: 0.25em; 278.390 + margin-top: 0.25em; 278.391 + margin-left: 1em; 278.392 + margin-right: 1em; 278.393 + text-align: justify; 278.394 +} 278.395 +.verse { 278.396 + white-space: nowrap; 278.397 + margin-left: 2em} 278.398 +div.maketitle { 278.399 + text-align: center; 278.400 +} 278.401 +h2.titleHead { 278.402 + text-align: center; 278.403 +} 278.404 +div.maketitle { 278.405 + margin-bottom: 2em; 278.406 +} 278.407 +div.author, div.date { 278.408 + text-align: center; 278.409 +} 278.410 +div.thanks { 278.411 + text-align: left; 278.412 + margin-left: 10%; 278.413 + font-size: 85%; 278.414 + font-style: italic; 278.415 +} 278.416 +div.author { 278.417 + white-space: nowrap; 278.418 +} 278.419 +.quotation { 278.420 + margin-bottom: 0.25em; 278.421 + margin-top: 0.25em; 278.422 + margin-left: 1em; 278.423 +} 278.424 +h1.partHead { 278.425 + text-align: center; 278.426 +} 278.427 +img.graphics { 278.428 + margin-left: 10%; 278.429 +} 278.430 +.figure { 278.431 + width: 100%; 278.432 +} 278.433 +P.fancyvrb { 278.434 + white-space: nowrap; 278.435 +} 278.436 +hr { 278.437 + border: 0; 278.438 + height: 1px; 278.439 +} 278.440 +div#fancyvrb { 278.441 + white-space: nowrap; 278.442 + background: #eee; 278.443 + padding: 1em; 278.444 +}
279.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 279.2 +++ b/ja/hgext.tex Fri Aug 14 12:10:47 2009 -0700 279.3 @@ -0,0 +1,591 @@ 279.4 +\chapter{Adding functionality with extensions} 279.5 +\label{chap:hgext} 279.6 + 279.7 +Mercurial $B$O5!G=@-$N8+CO$+$i8+$?>l9g$K$O?=$7J,L5$$0lJ}$G!"(B 279.8 +$BJQ$j<o$N5!G=72$O8N0U$K=|30$5$l$F$$$^$9!#(B 279.9 +$B4J7i$5$rJ]$D8/$jJ}$O!"(B 279.10 +$BJ]<iC4Ev$HMxMQ<T$NN>J}$KBP$7$F%=%U%H%&%'%"$N07$$$d$9$5$r0];}$7$^$9!#(B 279.11 + 279.12 +$B$7$+$7(B Mercurial $B$O!"(B 279.13 +$BMxMQ<T$r<];RDj5,$J%3%^%s%I72$NB~Cf$KMxMQ<T$rJD$89~$a$k$h$&$J$3$H$O$7$^$;$s!#(B 279.14 +\emph{$B%$%/%9%F%s%7%g%s(B} 279.15 +$B!J$3$N<o$N$b$N$O(B\emph{$B%W%i%0%$%s(B}$B$H8F$P$l$k$3$H$b$"$j$^$9!K(B 279.16 +$B$H$7$F5!G=$rDI2C$9$k$3$H$,$G$-$k$N$G$9!#(B 279.17 +$B4v$D$+$N%$%/%9%F%s%7%g%s$K$D$$$F$O!"(B 279.18 +$B4{$KA0$N>O$GOCBj$K$7$F$$$^$9!#(B 279.19 + 279.20 +\begin{itemize} 279.21 +\item \ref{sec:tour-merge:fetch}~$B@a$G$O(B 279.22 + \hgext{fetch} $B%$%/%9%F%s%7%g%s$r<h$j>e$2$F$$$^$9!#(B 279.23 + $B$3$N%$%/%9%F%s%7%g%s$O!"?7$?$JJQ99$N<hF@$H<j85$NJQ99$X$N%^!<%8$r!"(B 279.24 + $BC10l$N%3%^%s%I(B \hgxcmd{fetch}{fetch} $B$G<B;\$7$^$9!#(B 279.25 + 279.26 +\item \hgext{bisect} $B$O!"(B 279.27 + $B%P%0$N860x$H$J$kJQ99$r8zN(E*$K8!:w$9$k%$%/%9%F%s%7%g%s$G!"(B 279.28 + \ref{sec:undo:bisect}~$B@a$G<h$j>e$2$^$7$?!#(B 279.29 + 279.30 +\item \ref{chap:hook}~$B>O$G$O!"(B 279.31 + $B%U%C%/$K4XO"$7$?M-MQ$J5!G=$r;}$D%$%/%9%F%s%7%g%s$r<h$j>e$2$^$7$?!#(B 279.32 + \hgext{acl} $B$O%"%/%;%9%3%s%H%m!<%k%j%9%H$N5!G=$r!"(B 279.33 + \hgext{bugzilla} $B$O(B Bugzilla $B%P%0DI@W%7%9%F%`$H$NE}9g$r!"(B 279.34 + \hgext{notify} $B$OJQ99DI2C;~$K$*$1$kEE;R%a!<%kDLCN$N5!G=$r!"(B 279.35 + Mercurial $B$KDI2C$7$^$9!#(B 279.36 + 279.37 +\item Mercurial Queues $B%Q%C%A4IM}%$%/%9%F%s%7%g%s$O!"(B 279.38 + $B#2$D$N>O$H#1$D$N(B appendix $B$r4]!9Hq$d$9$KCM$9$k2ACM$r;}$C$F$$$^$9!#(B 279.39 + \ref{chap:mq}~$B>O$O4pK\$r!"(B 279.40 + \ref{chap:mq-collab}~$B>O$O$h$j?J$s$@OCBj$r!"(B 279.41 + $B$=$7$F(B appendix~\ref{chap:mqref} $B$O3F%3%^%s%I$N>\:Y$r<h$j>e$2$F$$$^$9!#(B 279.42 + 279.43 +\end{itemize} 279.44 + 279.45 +$BK\>O$G$O!"(B 279.46 +$B>e5-0J30$N(B Mercurial $B$GMxMQ2DG=$J4v$D$+$N%$%/%9%F%s%7%g%s$K$D$$$F<h$j>e$2!"(B 279.47 +$B$=$N>e$G!"(B 279.48 +$B<+J,$G%$%/%9%F%s%7%g%s$r<BAu$9$k:]$KI,MW$H;W$o$l$k;EAH$_$K$D$$$F!"(B 279.49 +$B4JC1$K?($l$h$&$H;W$$$^$9!#(B 279.50 + 279.51 +\begin{itemize} 279.52 +\item \ref{sec:hgext:inotify}~$B@a$G$O!"(B 279.53 + \hgext{inotify} 279.54 + $B%$%/%9%F%s%7%g%s$K$h$k(B\emph{$B@dBg$J(B}$B@-G=2~A1$N2DG=@-$K$D$$$F<h$j>e$2$^$9!#(B 279.55 + 279.56 +\end{itemize} 279.57 + 279.58 +\section{Improve performance with the \hgext{inotify} extension} 279.59 +\label{sec:hgext:inotify} 279.60 + 279.61 +$B0lHLE*$J(B Mercurial $B$NA`:n$,(B 100 $BG\B.$/$J$k$3$H$K6=L#$,$"$k$N$G$7$?$i!"(B 279.62 +$B$<$R$3$N@a$rFI$s$G$/$@$5$$!#(B 279.63 + 279.64 +Mercurial $B$ODL>o$N4D6-$G$"$C$F$b9b$$@-G=$G$rH/4x$7$^$9!#(B 279.65 +XXXX $BH]Dj$N@\B3$NH&(B XXXX 279.66 +$BNc$($P(B \hgcmd{status} $B%3%^%s%I$N<B9T$N:]$K$O!"(B 279.67 +$B%U%!%$%k$N>uBV$rI=<($9$k$?$a$K!"(B 279.68 +$B%j%]%8%H%jG[2<$NKX$IA4$F$N%G%#%l%/%H%j$H%U%!%$%k$KBP$9$kAv::$,I,MW$G$9!#(B 279.69 +$BB>$NB?$/$N(B Mercurial $B%3%^%s%I$b!"(B 279.70 +$BIqBfN"$G$OF1MM$N:n6H$rI,MW$H$7$F$$$^$9!#(B 279.71 +$BNc$($P(B \hgcmd{diff} $B%3%^%s%I$O!"(B 279.72 +$B>uBVHf3S5!9=(B\footnote{$BLuCm(B: \ref{sec:concepts:dirstate}~$B@a;2>H(B 279.73 +}$B$rMQ$$$k$3$H$G!"(B 279.74 +$BL@$i$+$KJQ99$5$l$F$$$J$$%U%!%$%k$KBP$7$F!"(B 279.75 +$B<B9T%3%9%H$N9b$$Hf3S=hM}$,<B;\$5$l$k$3$H$r2sHr$7$F$$$^$9!#(B 279.76 + 279.77 +$B%U%!%$%k>uBV$N<hF@$O@-G=3NJ]>e=EMW$J$3$H$J$N$G!"(B 279.78 +Mercurial $B$N3+H/<TC#$O!"(B 279.79 +$B%.%j%.%j$N$H$3$m$^$G$3$NItJ,$N<BAu$r:GE,2=$7$F$-$^$7$?!#(B 279.80 +$B$7$+$7(B \hgcmd{status} $B<B9T$N:]$K$O!"(B 279.81 +$BA02s$N3NG'0J9_$NJQ99$NM-L5$rCN$k$?$a$K!"(B 279.82 +$B%3%9%H$N9b$$%7%9%F%`%3!<%k$r!"(B 279.83 +Mercurial $B$N4IM}2<$K$"$k%U%!%$%kKh$K:GDc#12sH/9T$9$kI,MW$,$"$k!"(B 279.84 +$B$H$$$&;v<B$O2sHr$7$h$&$,$"$j$^$;$s!#(B 279.85 +$B0lDj0J>e$NBg$-$5$N%j%]%8%H%j$G$O!"(B 279.86 +$B$3$N=hM}$K$OD9$$;~4V$,$+$+$j$^$9!#(B 279.87 + 279.88 +$B1F6A$NBg$-$5$r?tCM2=$9$Y$/!"(B 279.89 +150,000 $B$N%U%!%$%k$r4IM}$9$k%j%]%8%H%j$G<B83$r9T$C$?7k2L!"(B 279.90 +$B$$$:$l$N%U%!%$%k$bJQ99(B\emph{$B$5$l$F$$$J$$(B}$B>l9g$G$"$C$F$b!"(B 279.91 +\hgcmd{status} $B$N<B9T$K$O#1#0IC$rMW$7$^$9!#(B 279.92 + 279.93 +$BB?$/$N6aBeE*(B OS $B$O!"%U%!%$%k99?7$NDLCN5!9=$rHw$($F$$$^$9!#(B 279.94 +$BE,@Z$J%5!<%S%9$K%W%m%0%i%`$rEPO?$7$F$*$/$3$H$G!"(B 279.95 +$BBP>]$H$J$k%U%!%$%k$K4X$9$k@8@.!&JQ99!&:o=|$H$$$C$?%$%Y%s%H$,H/@8$9$kETEY!"(B 279.96 +OS $B$,DLCN$r$7$F$/$l$^$9!#(B 279.97 +Linux $B4D6-$G$O!"(B 279.98 +\texttt{inotify} 279.99 +$B$H8F$P$l$k%+!<%M%k%3%s%]%M%s%H$,DLCN5!9=$rDs6!$7$^$9!#(B 279.100 + 279.101 +Mercurial $B$N(B \hgext{inotify} $B%$%/%9%F%s%7%g%s$O!"(B 279.102 +$B%+!<%M%k$N(B \texttt{inotify} $B$HO"7H$9$k$3$H$G!"(B 279.103 +\hgcmd{status} $B%3%^%s%I$r:GE,2=$7$^$9!#(B 279.104 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$O#2$D$NMWAG$+$i9=@.$5$l$F$$$^$9!#(B 279.105 +$B%G!<%b%sItJ,$,%P%C%/%0%i%&%s%I$G2TF0$9$k$3$H$G!"(B 279.106 +\texttt{inotify} $B%+!<%M%k%3%s%]%M%s%H$+$iDLCN$r<u$1<h$j$^$9!#(B 279.107 +$B%G!<%b%sItJ,$O!"(B 279.108 +$BDL>o$N(B Mercurial $B%3%^%s%I$+$i$N@\B3MW5a$b<u$1IU$1$^$9!#(B 279.109 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$O!"(B 279.110 +$B%U%!%$%k%7%9%F%`$NAv::$NBeBX$H$7$F%G!<%b%s$rI,MW$H$9$k$?$a!"(B 279.111 +Mercurial $B$N5sF0$=$N$b$N$r2~JQ$7$^$9!#(B 279.112 +$B%G!<%b%s$O%j%]%8%H%j>uBV$K4X$9$k40A4$J>pJs$rJ];}$7$F$$$k$N$G!"(B 279.113 +$B%j%]%8%H%jG[2<$N%G%#%l%/%H%j$d%U%!%$%k$rAv::$9$k$3$HL5$7$K!"(B 279.114 +$BB(:B$K1~Ez$rJV$9$3$H$,$G$-$^$9!#(B 279.115 + 279.116 +$B@h$K=R$Y$?$H$*$j!"(B 279.117 +$BDL>o$N(B Mercurial $B$G$O!"(B 279.118 +150,000 $B$N%U%!%$%k$r4IM}$9$k%j%]%8%H%j$G$N(B 279.119 +\hgcmd{status} $B<B9T$K#1#0IC$rMW$7$^$7$?!#(B 279.120 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$rM-8z$K$9$k$3$H$G!"(B 279.121 +$B<B9T$KMW$9$k;~4V$O(B\emph{1000$BG\(B}$BAa$$(B0.1~$BIC$^$GDc8:$G$-$^$7$?!#(B 279.122 + 279.123 +$BOC$r@h$K?J$a$kA0$K!"(B 279.124 +$B0J2<$NE@$KCm0U$7$F$/$@$5$$!#(B 279.125 + 279.126 +\begin{itemize} 279.127 +\item \hgext{inotify} $B$O(B Linux $B4D6-8GM-$N%$%/%9%F%s%7%g%s$G$9!#(B 279.128 + Linux $B$N(B \texttt{inotify} $B%5%V%7%9%F%`$HD>@\O"7H$9$k$?$a!"(B 279.129 + $BB>$N(B OS $B4D6-2<$G$O5!G=$7$^$;$s!#(B 279.130 + 279.131 +\item 2005 $BG/=i=\0J8e$K%j%j!<%9$5$l$?(B 279.132 + Linux $B%G%#%9%H%j%S%e!<%7%g%s$G$NMxMQ$r$*A&$a$7$^$9!#(B 279.133 + $B$=$l0JA0$N%G%#%9%H%j%S%e!<%7%g%s$O!"(B 279.134 + \texttt{inotify} $B$,AH$_9~$^$l$F$$$J$$$+!"(B 279.135 + $BI,MW$J(B API $B$r(B \texttt{glibc} $B$,Ds6!$7$F$$$J$$$b$N$H;W$o$l$^$9(B\footnote{ 279.136 + $BLuCm(B: man $B%Z!<%8$K$h$l$P!"(B 279.137 + \texttt{inotify} $B$NMxMQ$KEv$?$C$F$O!"(B 279.138 + 2.6.13 $BHG0J8e$N%+!<%M%k$H(B 2.4 $BHG0J8e$N(B \texttt{glibc} $B$,I,MW$@$=$&$G$9!#(B 279.139 + }$B!#(B 279.140 + 279.141 +\item $BA4$F$N%U%!%$%k%7%9%F%`$,(B 279.142 + \hgext{inotify} $B%$%/%9%F%s%7%g%s$NMxMQ$KE,$7$F$$$k$H$O8B$j$^$;$s!#(B 279.143 + $BE57?E*$JNc$H$7$F$O!"(B 279.144 + $BF10l$N%M%C%H%o!<%/%U%!%$%k%7%9%F%`$r!"(B 279.145 + Mercurial $B$r2TF0$5$;$kJ#?t$N%7%9%F%`$G%^%&%s%H$7$F$$$k$h$&$J>l9g$G$9!#(B 279.146 + $B%+!<%M%k$N(B \texttt{inotify} $B%5%V%7%9%F%`$O!"(B 279.147 + $B%j%b!<%H%[%9%H$G$NJQ99$rCN$k=Q$r;}$A$^$;$s!#(B 279.148 + $BKX$I$N%m!<%+%k%U%!%$%k%7%9%F%`!JNc$($P(B ext3$B!"(BXFS $B$d(B ReiserFS$B!K$O!"(B 279.149 + $B>e<j$/5!G=$9$kH&$G$9!#(B 279.150 + 279.151 +\end{itemize} 279.152 + 279.153 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$O!"(B 279.154 +2007 $BG/(B 5 $B7n$N;~E@$G$O(B Mercurial $B$KF1:-$5$l$F$$$^$;$s(B\footnote{$BLuCm(B: 279.155 +2007 $BG/(B 10 $B7n$N(B 0.9.5 $BHGCJ3,$G$bF1:-$5$l$F$$$^$;$s(B}$B$N$G!"(B 279.156 +$BB>$N%$%/%9%F%s%7%g%s$HHf3S$7$FB?>/$N=`Hw:n6H$,I,MW$G$9$,!"(B 279.157 +$B@-G=8~>e$K$O$=$l$@$1$N2ACM$,$"$j$^$9!#(B 279.158 + 279.159 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$OL\2<!"(B 279.160 +Mercurial $B%=!<%9%3!<%I$X$N%Q%C%A$H!"(B 279.161 +\texttt{inotify} $B%5%V%7%9%F%`O"7H$N(B 279.162 +Python $B%P%$%s%G%#%s%0%i%$%V%i%j$N#2$D$NMWAG$+$i9=@.$5$l$F$$$^$9!#(B 279.163 + 279.164 +\begin{note} 279.165 + \texttt{inotify} $B$N(B 279.166 + Python $B%P%$%s%G%#%s%0%i%$%V%i%j$K$O(B\emph{$B#2<oN`(B}$B$"$j$^$9!#(B 279.167 + $B#1$D$O(B \texttt{pyinotify} $B$H8F$P$l$k$b$N$G!"(B 279.168 + $B4v$D$+$N(B Linux $B%G%#%9%H%j%S%e!<%7%g%s$K$O(B 279.169 + \texttt{python-inotify} $B$H$$$&L>A0$GF1:-$5$l$F$$$^$9!#(B 279.170 + $B<BMQ$K6!$9$k$K$OHs>o$K%P%0$,B?$/8zN($b0-$$$N$G!"(B 279.171 + $B$3$N%i%$%V%i%j$O;H$&$Y$-$G$O(B\emph{$B$"$j$^$;$s(B}$B!#(B 279.172 +\end{note} 279.173 + 279.174 +$B;v$r?J$a$k$KEv$?$C$F$O!"(B 279.175 +$B4{$K5!G=$7$F$$$k%$%s%9%H!<%k:Q$_(B 279.176 +Mercurial $B$rJ#@=$9$k$N$,NI$$$G$7$g$&!#(B 279.177 +To get going, it's best to already have a functioning copy of 279.178 +Mercurial installed. XXXXXX 279.179 + 279.180 +\begin{note} 279.181 + $B0J2<$N<j=g$rF'$`>l9g!"(B 279.182 + $B:G$b:G?7$N(B``$B:G@hC<$J(B''Mercurial $B<BAu$G!"(B 279.183 + $B4{$K%$%s%9%H!<%k:Q$_$N(B Mercurial $B$r(B\emph{$BCV$-49$($k(B}$B$3$H$K$J$j$^$9!#(B 279.184 + $B$3$l$O7Y9p$G$9!#(B 279.185 +\end{note} 279.186 + 279.187 +\begin{enumerate} 279.188 +\item \texttt{inotify} $B$N(B Python $B%P%$%s%G%#%s%0$N%j%]%8%H%j$rJ#@=$7$^$9!#(B 279.189 + $B%S%k%I$*$h$S%$%s%9%H!<%k$r9T$C$F$/$@$5$$!#(B 279.190 + 279.191 + \begin{codesample4} 279.192 + hg clone http://hg.kublai.com/python/inotify 279.193 + cd inotify 279.194 + python setup.py build --force 279.195 + sudo python setup.py install --skip-build 279.196 + \end{codesample4} 279.197 + 279.198 +\item Mercurial $B$N(B \dirname{crew} $B%j%]%8%H%j$rJ#@=$7$^$9!#(B 279.199 + Mercurial Queues $B$K$h$j(B 279.200 + \dirname{crew} $B%j%]%8%H%j$N%m!<%+%k%3%T!<(B\footnote{$BLuCm!'(B 279.201 + $B$3$3$G$O(B \dirname{crew} $B$+$i99$K(B \dirname{inotify} $B$rJ#@=$7$F$$$^$9$,!"(B 279.202 + \hgext{inotify} $B%$%/%9%F%s%7%g%sMxMQ$N$?$a$@$1$K%S%k%I$9$k>l9g!"(B 279.203 + $BD>@\(B \dirname{crew} $B$G:n6H$7$F$bLdBjL5$$H&$G$9!#(B 279.204 + }$B$K%Q%C%A$rEv$F$k0Y$K!"(B 279.205 + \hgext{inotify} $B%Q%C%A$N%j%]%8%H%j$bJ#@=$7$F$/$@$5$$!#(B 279.206 + 279.207 + \begin{codesample4} 279.208 + hg clone http://hg.intevation.org/mercurial/crew 279.209 + hg clone crew inotify 279.210 + hg clone http://hg.kublai.com/mercurial/patches/inotify inotify/.hg/patches 279.211 + \end{codesample4} 279.212 + 279.213 +\item Mercurial Queues $B%$%/%9%F%s%7%g%s!J(B\hgext{mq}$B!K(B 279.214 + $B$,MxMQ2DG=$G$"$k$3$H$r3NG'$7$F$/$@$5$$!#(B 279.215 + MQ $B$rMxMQ$7$?$3$H$,L5$$>l9g!"(B 279.216 + $B$^$:$O(B \ref{sec:mq:start}~$B@a$rFI$s$G$/$@$5$$!#(B 279.217 + 279.218 +\item \dirname{inotify} $B!J%m!<%+%k!K%j%]%8%H%j$K0\F0$7$F!"(B 279.219 + \hgxcmd{mq}{qpush} $B%3%^%s%I$N(B \hgxopt{mq}{qpush}{-a} $B%*%W%7%g%s$r;HMQ$7$F!"(B 279.220 + $BA4$F$N(B \hgext{inotify} $B%Q%C%A$rE,MQ$7$F$/$@$5$$!#(B 279.221 + 279.222 + \begin{codesample4} 279.223 + cd inotify 279.224 + hg qpush -a 279.225 + \end{codesample4} 279.226 + 279.227 + \hgxcmd{mq}{qpush} $B$,%(%i!<%a%C%;!<%8$rI=<($7$?>l9g$O!"(B 279.228 + $B:n6H$r7QB3$;$:$K3+H/%3%_%e%K%F%#$K=u$1$r5a$a$F$/$@$5$$!#(B 279.229 + 279.230 +\item $B%Q%C%AE,MQHG$N(B Mercurial $B$r%S%k%I$*$h$S%$%s%9%H!<%k$7$^$9!#(B 279.231 + 279.232 + \begin{codesample4} 279.233 + python setup.py build --force 279.234 + sudo python setup.py install --skip-build 279.235 + \end{codesample4} 279.236 + 279.237 +\end{enumerate} 279.238 + 279.239 +$BE,@Z$K%Q%C%A$,E,MQ$5$l$?HG$N(B Mercurial $B$,0lC6$G$-$F$7$^$($P!"(B 279.240 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$rM-8z$K$9$k$?$a$KI,MW$J$3$H$O!"(B 279.241 +\hgrc $B%U%!%$%k$K0J2<$N5-=R$rDI2C$9$k$3$H$@$1$G$9!#(B 279.242 + 279.243 +\begin{codesample2} 279.244 + [extensions] 279.245 + inotify = 279.246 +\end{codesample2} 279.247 + 279.248 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$,M-8z2=$5$l$k$H!"(B 279.249 +$B%j%]%8%H%j$N>uBV$rI,MW$H$9$k%3%^%s%I$N=i2s5/F0$N;~E@$G!"(B 279.250 +Mercurial $B$O<+F0E*3n$DF)2aE*$K>uBV4IM}MQ%G!<%b%s$r5/F0$7$^$9!#(B 279.251 +$B>uBV4IM}%G!<%b%s$O!"%j%]%8%H%j$4$H$K5/F0$5$l$^$9!#(B 279.252 + 279.253 +$B>uBV4IM}%G!<%b%s$O$R$=$d$+$K5/F0$5$l!"%P%C%/%0%i%&%s%I$G<B9T$7B3$1$^$9!#(B 279.254 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$rM-8z$K$7$?J#?t$N%j%]%8%H%j$G!"(B 279.255 +$B4v$D$+$N%3%^%s%I$r<B9T$7$?8e$K!"(B 279.256 +$B<B9TCf$N%W%m%;%90lMw$r8+$l$P!"(B 279.257 +$B%+!<%M%k$+$i$NDLCN$H(B 279.258 +Mercurial $B$+$i$NLd$$9g$o$;$NN>J}$rBT$C$F$$$kJ#?t$N(B 279.259 +\texttt{hg} $B%W%m%;%9$r8+$k$3$H$,$G$-$kH&$G$9!#(B 279.260 + 279.261 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$rM-8z$K$7$?:]$G$b!"(B 279.262 +$B%j%]%8%H%j$K$*$1$k(B Mercurial $B%3%^%s%I$N=i2s5/F0$O!"(B 279.263 +$BDL>o$N(B Mercurial $B%3%^%s%I<B9T$HF1DxEY$N@-G=$G<B9T$5$l$^$9!#(B 279.264 +$B$3$l$O>uBV4IM}%G!<%b%s$K$h$kDL>o$N>uBVAv::$,I,MW$J$?$a$G!"(B 279.265 +$B8e$K%+!<%M%k$+$i$N99?7DLCN$r<u$1<h$k:]$N4pDl>uBV$H$J$j$^$9!#(B 279.266 +$B$7$+$7!"$3$l0J9_$N>uBV3NG'$NI,MW$J(B\emph{$BA4$F$N(B}$B%3%^%s%I<B9T$O!"(B 279.267 +$B$I$s$J$K>.$5$J%5%$%:$N%j%]%8%H%j$G$"$C$F$b!"(B 279.268 +$BL\$K8+$($FB.$/$J$C$F$$$kH&$G$9!#(B 279.269 +$B%j%]%8%H%j$,Bg$-$1$l$PBg$-$$$[$I!"(B 279.270 +$BL\$K8+$($F@-G=$,Bg$-$/2~A1$5$l$k$3$H$G$7$g$&!#(B 279.271 +\hgext{inotify} $B%G!<%b%s$O!"(B 279.272 +$B$I$s$J%5%$%:$N%j%]%8%H%j$G$"$C$F$b!"(B 279.273 +$B>uBV<hF@A`:n$rKX$I=V;~$K=*N;$5$;$k$3$H$,$G$-$^$9!#(B 279.274 + 279.275 +\hgxcmd{inotify}{inserve} $B%3%^%s%I$K$h$j!"(B 279.276 +$B>uBV4IM}%G!<%b%s$r<jF0$G5/F0$9$k$3$H$b$G$-$^$9!#(B 279.277 +$B<jF0$G$N5/F0$K$h$j!"(B 279.278 +$B%G!<%b%s$N<B9T$K4X$7$F4vJ,L@NF$J@)8f$r<j$K$9$k$3$H$,$G$-$^$9!#(B 279.279 +$B$3$N%3%^%s%I$N5/F0$O!"(B 279.280 +$BEvA3(B \hgext{inotify} 279.281 +$B%$%/%9%F%s%7%g%s$,M-8z$K$J$C$F$$$k>l9g$K8B$j;HMQ2DG=$G$9!#(B 279.282 + 279.283 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$r;HMQ$7$F$$$k:]$K$O!"(B 279.284 +$B>uBV4XO"%3%^%s%I$N<B9TA4HL$,$=$l0JA0$HHf3S$7$FB.$/$J$C$F$$$kE@$r=|$1$P!"(B 279.285 +Mercurial $B$N5sF0$O(B\emph{$BA4$/JQ$o$i$J$$(B}$BH&$G$9!#(B 279.286 + 279.287 +$B$H$j$o$1!"%3%^%s%I$N=PNO$O0[$J$i$:!"F1$87k2L$rJV$9H&$G$9!#(B 279.288 +\hgext{inotify} $B%$%/%9%F%s%7%g%s$NM-L5$G0[$J$k7k2L$,JQ$($k>l9g!"(B 279.289 +$B>c32$H$7$FJs9p$r$7$F$/$@$5$$!#(B 279.290 + 279.291 +\section{Flexible diff support with the \hgext{extdiff} extension} 279.292 +\label{sec:hgext:extdiff} 279.293 + 279.294 +Mercurial $B$NAH$_9~$_(B \hgcmd{diff} $B%3%^%s%I$O!"(B 279.295 +unified $B:9J,$r$=$N$^$^=PNO$7$^$9!#(B 279.296 + 279.297 +\interaction{extdiff.diff} 279.298 + 279.299 +$BJQ99FbMF$NI=<($K30It%D!<%k$r;H$$$?$$>l9g$O!"(B 279.300 +\hgext{extdiff} $B%$%/%9%F%s%7%g%s$,NI$$$G$7$g$&!#(B 279.301 +\hgext{extdiff} $B%$%/%9%F%s%7%g%s$K$h$j!"(B 279.302 +$BJQ99FbMFI=<($KNc$($P%0%i%U%#%+%k$J30It:9J,%D!<%k$,MxMQ$G$-$k$h$&$K$J$j$^$9!#(B 279.303 + 279.304 +\hgext{extdiff} $B%$%/%9%F%s%7%g%s$O(B 279.305 +Mercurial $B$KF1:-$5$l$F$$$k$N$G4JC1$KMxMQ$G$-$^$9!#(B 279.306 +\hgrc $B%U%!%$%k$N(B 279.307 +\rcsection{extensions} $B%;%/%7%g%s$K!"(B 279.308 +$B%$%/%9%F%s%7%g%s$rM-8z$K$9$k5-=R$r#19TDI2C$9$k$@$1$GNI$$$N$G$9!#(B 279.309 + 279.310 +\begin{codesample2} 279.311 + [extensions] 279.312 + extdiff = 279.313 +\end{codesample2} 279.314 + 279.315 +$B$3$N@_Dj$K$h$j!"(B 279.316 +\hgxcmd{extdiff}{extdiff} $B%3%^%s%I$,MxMQ2DG=$K$J$j$^$9$,!"(B 279.317 +$B4pDl>uBV$G$O$3$N%3%^%s%I$O!"(B 279.318 +$BAH$_9~$_$N(B \hgcmd{diff} $B%3%^%s%I$HF1$87A<0$N(B unified $B:9J,$r!"(B 279.319 +$B%7%9%F%`$N(B \command{diff} $B%3%^%s%I$K$h$j@8@.$7$^$9!#(B 279.320 + 279.321 +\interaction{extdiff.extdiff} 279.322 + 279.323 +$BAH$_9~$_$N(B \hgcmd{diff} $B%3%^%s%I$N7k2L=PNO$H87L)$K$O0lCW$7$^$;$s(B\footnote{ 279.324 +$BLuCm(B: $B$I$NItJ,$r;X$7$F!V0lCW$7$J$$!W$H8@$C$F$$$k$N$+!)(B}$B$,!"(B 279.325 +$BF1$8%*%W%7%g%s$r;XDj$7$F$b%7%9%F%`(B\footnote{$BLuCm(B: 279.326 +$B$3$3$G8@$&!V(Bsystem$B!W$H$O!)(B XXXXX}$B$4$H$K(B 279.327 +$B!J%7%9%F%`$N!K(B\command{diff} $B%3%^%s%I$N=PNO$,0[$J$k$+$i$G$9!#(B 279.328 + 279.329 +$B>e5-$N=PNO7k2L$K(B ``\texttt{making snapshot}'' 279.330 +$B9T$,4^$^$l$F$$$k$3$H$+$i$b;!$9$k$3$H$,$G$-$^$9$,!"(B 279.331 +\hgxcmd{extdiff}{extdiff} 279.332 +$B%3%^%s%I$O%=!<%9%D%j!<$K4X$9$k%9%J%C%W%7%g%C%H$r#2$D:n@.$7$^$9!#(B 279.333 +$B#1$DL\$N%9%J%C%W%7%g%C%H$O%=!<%9$N%j%S%8%g%s$N$b$N$G!"(B 279.334 +$B#2$DL\$O:n6HNN0h%G%#%l%/%H%j$K$*$1$kBP>]%j%S%8%g%s$N$b$N$G$9(B\footnote{$BLuCm(B: 279.335 +$B:n6HNN0h%G%#%l%/%H%j$N!V?F%j%S%8%g%s!W$H!V8=9T>uBV!W(B}$B!#(B 279.336 +\hgxcmd{extdiff}{extdiff} 279.337 +$B%3%^%s%I$O$3$l$i$N%9%J%C%W%7%g%C%H$r0l;~%G%#%l%/%H%j$K:n@.$7!"(B 279.338 +$B$3$l$i$N%G%#%l%/%H%jL>$r0z?t$K$7$F30It$N:9J,I=<(%D!<%k$r5/F0$7!"(B 279.339 +$B$=$N8e0l;~%G%#%l%/%H%j$r:o=|$7$^$9!#(B 279.340 +$B<B9T8zN(>e!"(B 279.341 +$B#2$D$N%j%S%8%g%s$N4V$G:9J,$N$"$k%G%#%l%/%H%j!&(B 279.342 +$B%U%!%$%k$N%9%J%C%W%7%g%C%H$@$1$,:n@.$5$l$^$9!#(B 279.343 + 279.344 +$B%9%J%C%W%7%g%C%H%G%#%l%/%H%j$NL>A0$O!"(B 279.345 +$B85$H$J$k%j%]%8%H%j$N%Y!<%9L>$HF1$8L>A0$r;}$A$^$9!#(B 279.346 +\dirname{/quux/bar/foo} $B$H$$$&%j%]%8%H%j$N>l9g!"(B 279.347 +$B8D!9$N%9%J%C%W%7%g%C%H$N%G%#%l%/%H%j!J%Y!<%9!KL>$O(B \dirname{foo} $B$H$J$j$^$9!#(B 279.348 +$BBP1~$9$k%A%'%s%8%;%C%H(BID$B$,$"$k>l9g!"(B 279.349 +$B%9%J%C%W%7%g%C%H$N%G%#%l%/%H%jL>$K$O%A%'%s%8%;%C%H(BID$B$,IUM?$5$l$^$9!#(B 279.350 +\texttt{a631aca1083f} $BHG$KBP$9$k%9%J%C%W%7%g%C%H$N%G%#%l%/%H%jL>$O(B 279.351 +\dirname{foo.a631aca1083f} $B$H$J$j$^$9!#(B 279.352 +$B:n6HNN0h%G%#%l%/%H%j$N8=9T>uBV$KBP$9$k%9%J%C%W%7%g%C%H$O!"(B 279.353 +$B%A%'%s%8%;%C%H(BID$B$,IUM?$5$l$^$;$s$N$G!"(B 279.354 +$B$3$NNc$G$OC1$K(B \dirname{foo} $B$H$$$&L>A0$K$J$j$^$9!#(B 279.355 +$B<B:]$N5sF0$r8+$k$?$a$K!"(B 279.356 +$B:FEYA0=P$N(B \hgxcmd{extdiff}{extdiff} $B$N<B9TNc$r8+$F$_$^$7$g$&!#(B 279.357 +$B:9J,=PNO$N%X%C%@It$K!"(B 279.358 +$B%9%J%C%W%7%g%C%H%G%#%l%/%H%j$NL>A0$,Kd$a9~$^$l$F$$$k$N$K5$IU$/$3$H$G$7$g$&!#(B 279.359 + 279.360 +\hgxcmd{extdiff}{extdiff} $B%3%^%s%I$K$O!"(B 279.361 +$B#2$D$N=EMW$J%*%W%7%g%s$,$"$j$^$9!#(B 279.362 +\hgxopt{extdiff}{extdiff}{-p} $B%*%W%7%g%s$O!"(B 279.363 +$B%7%9%F%`$N(B \command{diff} 279.364 +$B%3%^%s%I$NBeBX$H$7$F;HMQ$5$l$k:9J,I=<(%W%m%0%i%`$r;XDj$7$^$9!#(B 279.365 +\hgxopt{extdiff}{extdiff}{-o} $B%*%W%7%g%s$O!"(B 279.366 +\hgxcmd{extdiff}{extdiff} 279.367 +$B$,30It$N:9J,I=<(%W%m%0%i%`5/F0;~$K;XDj$9$k%*%W%7%g%s(B 279.368 +$B!J%G%U%)%k%H$G$O(B ``\texttt{-Npru}'' $B$,;XDj$5$l!"(B 279.369 +\command{diff} $B$r;HMQ$9$k>l9g$K$N$_0UL#$r;}$A$^$9!K(B 279.370 +$B$r;XDj$7$^$9!#(B 279.371 +$B$=$l0J30$NE@$G$O!"(B 279.372 +\hgxcmd{extdiff}{extdiff} $B%3%^%s%I$O(B 279.373 +$BAH$_9~$_$N(B \hgcmd{diff} $B%3%^%s%I$HF1MM$K?6Iq$$$^$9$N$G!"(B 279.374 +$B%*%W%7%g%sL>$d%*%W%7%g%s;XDj$NJ8K!!"(B 279.375 +$BHf3SBP>]%j%S%8%g%s$r;XDj$9$k0z?t!"(B 279.376 +$BHf3S$7$?$$%U%!%$%kL>$N;XDj$J$I$O!"(B 279.377 +$BAH$_9~$_$N(B \hgcmd{diff} $B$HF1$8$h$&$K;XDj$G$-$^$9!#(B 279.378 + 279.379 +$B<B9TNc$H$7$F!"(B 279.380 +$B!JDL>o$N(B \hgcmd{diff} $B$K$h$k!K(Bunified $B:9J,$NBe$o$j$K!"(B 279.381 +$B%7%9%F%`I8=`$N(B \command{diff} $B%3%^%s%I$K$h$k(B context $B:9J,(B 279.382 +$B!J(B\cmdopt{diff}{-c} $B%*%W%7%g%s;HMQ!K$r!"(B 279.383 +$B%G%U%)%k%H$N#39T$G$O$J$/#59T$N(B context $B9T(B 279.384 +$B!J(B\cmdopt{diff}{-C} $B%*%W%7%g%s$G$N(B \texttt{5} $B;XDj!K(B 279.385 +$B$GI=<($9$kJ}K!$r<($7$^$9!#(B 279.386 + 279.387 +\interaction{extdiff.extdiff-ctx} 279.388 + 279.389 +$B%0%i%U%#%+%k$J:9J,%D!<%k$N5/F0$OHs>o$K4JC1$G$9!#(B 279.390 +\command{kdiff3} $B5/F0$NNc$r<($7$^$9!#(B 279.391 + 279.392 +\begin{codesample2} 279.393 + hg extdiff -p kdiff3 -o '' 279.394 +\end{codesample2} 279.395 + 279.396 +$BMxMQ$9$k:9J,I=<(%3%^%s%I$,%G%#%l%/%H%j;XDj$r07$($J$$>l9g$G$b!"(B 279.397 +$B4JC1$J%9%/%j%W%H$r;H$&$3$H$G$=$NLdBj$r2r7h$G$-$^$9!#(B 279.398 +$B$=$N$h$&$J%9%/%j%W%H$K$h$k(B 279.399 +\hgext{mq} $B%$%/%9%F%s%7%g%s$H(B 279.400 +\command{interdiff} $B%3%^%s%I$NO"7HNc$O!"(B 279.401 +\ref{mq-collab:tips:interdiff}~$B@a$r;2>H$7$F$/$@$5$$!#(B 279.402 + 279.403 +\subsection{Defining command aliases} 279.404 + 279.405 +\hgxcmd{extdiff}{extdiff} $B%3%^%s%I$dMxMQ$9$k:9J,I=<(%3%^%s%I$N!"(B 279.406 +$BN>J}$N%*%W%7%g%s$r3P$($F$*$/$N$OLLE]$G$9$N$G!"(B 279.407 +\hgext{extdiff} $B%$%/%9%F%s%7%g%s$O!"(B 279.408 +$B;HMQ$9$k:9J,I=<(%3%^%s%I$r@5$7$$%*%W%7%g%s$G5/F0$9$k(B 279.409 +\emph{$B?7$7$$(B}$B%3%^%s%I$rDj5A$G$-$k$h$&$K$J$C$F$$$^$9!#(B 279.410 + 279.411 +$B?7$7$$%3%^%s%IDj5A$N$?$a$KI,MW$J$N$O!"(B 279.412 +\hgrc $B%U%!%$%k$rJT=8$7!"(B 279.413 +\rcsection{extdiff} $B$H$$$&L>A0$N%;%/%7%g%s$rDI2C$9$k$@$1$G$9!#(B 279.414 +$B$3$N%;%/%7%g%s$G$O!"(B 279.415 +$BJ#?t$N%3%^%s%I$rDj5A$9$k$3$H$,$G$-$^$9!#(B 279.416 +$B0J2<$K(B \texttt{kdiff3} $B%3%^%s%I$rDI2C$9$kNc$r<($7$^$9!#(B 279.417 +$B0lC6Dj5A$7$F$7$^$($P!"(B 279.418 +``\texttt{hg kdiff3}''$B$HF~NO$9$k$@$1$G(B 279.419 +\hgext{extdiff} $B%$%/%9%F%s%7%g%s$,(B 279.420 +\command{kdiff3} $B$r5/F0$7$^$9!#(B 279.421 + 279.422 +\begin{codesample2} 279.423 + [extdiff] 279.424 + cmd.kdiff3 = 279.425 +\end{codesample2} 279.426 + 279.427 +$BDj5A$N1&JU$r>e5-Nc$N$h$&$K6u$K$7$?>l9g!"(B 279.428 +\hgext{extdiff} $B%$%/%9%F%s%7%g%s$O!"(B 279.429 +$BDj5A$7$?%3%^%s%I$NL>A0$r<B9T$9$Y$-30It%W%m%0%i%`$NL>A0$H8+$J$7$^$9!#(B 279.430 +$B$7$+$7!"$3$l$i$NL>A0$,0lCW$7$F$$$kI,MW$O$"$j$^$;$s!#(B 279.431 +$B0J2<$NNc$G$O!"(B 279.432 +\command{kdiff3} $B$r<B9T$9$k%3%^%s%I$r(B 279.433 +``\texttt{hg wibble}'' $B$H$$$&L>A0$GDj5A$7$F$$$^$9!#(B 279.434 + 279.435 +\begin{codesample2} 279.436 + [extdiff] 279.437 + cmd.wibble = kdiff3 279.438 +\end{codesample2} 279.439 + 279.440 +$B:9J,I=<(%W%m%0%i%`5/F0$N:]$N%G%U%)%k%H%*%W%7%g%s$b;XDj$9$k$3$H$,$G$-$^$9!#(B 279.441 +``\texttt{opts.}'' $B@\F,<-$KB3$$$F!"(B 279.442 +$B%*%W%7%g%s$rE,MQ$7$?$$%3%^%s%IL>$r5-=R$7$F$/$@$5$$!#(B 279.443 +$B0J2<$NNc$G$O!"(B 279.444 +\command{vim} $B%(%G%#%?$N(B \texttt{DirDiff} $B3HD%$r<B9T$9$k(B 279.445 +``\texttt{hg vimdiff}'' $B%3%^%s%I$rDj5A$7$F$$$^$9!#(B 279.446 + 279.447 +\begin{codesample2} 279.448 + [extdiff] 279.449 + cmd.vimdiff = vim 279.450 + opts.vimdiff = -f '+next' '+execute "DirDiff" argv(0) argv(1)' 279.451 +\end{codesample2} 279.452 + 279.453 +\section{Cherrypicking changes with the \hgext{transplant} extension} 279.454 +\label{sec:hgext:transplant} 279.455 + 279.456 +$B"((B Brendan $B$H%A%c%C%H$G$NOC$79g$$$,I,MW(B 279.457 + 279.458 +\section{Send changes via email with the \hgext{patchbomb} extension} 279.459 +\label{sec:hgext:patchbomb} 279.460 + 279.461 +$BB?$/$N%W%m%8%'%/%H$G$O!"(B 279.462 +$B6&M-%j%]%8%H%j$K:G=*@.2L$r%3%_%C%H$9$kA0$K!"(B 279.463 +$BJQ99FbMF$r%a!<%j%s%0%j%9%H$KEj9F$7$F::FI$dO@I>$r9T$&(B 279.464 +``$BJQ99%l%S%e!<(B''$B$NJ82=$r;}$C$F$$$^$9!#(B 279.465 +$B%j%]%8%H%j$X$N%"%/%;%98"$r;}$?$J$$?M!9$+$i$NJQ990MMj$rE,MQ$9$k!"(B 279.466 +$BLgHV$NLr3d$r2L$?$9?M!9$,$$$k%W%m%8%'%/%H$b$"$j$^$9!#(B 279.467 + 279.468 +Mercurial $B$N(B \hgext{patchbomb} $B%$%/%9%F%s%7%g%s$rMxMQ$9$k$3$H$G!"(B 279.469 +$B%l%S%e!<$dDs0F$N$?$a$NEE;R%a!<%k$K$h$kJQ99Aw?.$,MF0W$K$J$j$^$9!#(B 279.470 +$B$3$N%$%/%9%F%s%7%g%s$NL>A0$O!"(B 279.471 +$BJQ99$,%Q%C%A7A<0$G@07A$5$l!"(B 279.472 +$B#1%A%'%s%8%;%C%HKh$K#1$D$NEE;R%a!<%k$GAw?.$5$l$k$3$H$KM3Mh$7$F$$$^$9!#(B 279.473 +$BEE;R%a!<%k$K$h$k0lO"$NJQ99$NAw?.$,!"(B 279.474 +$B<u?.<T$N%a!<%k%\%C%/%9$K$H$C$F(B``$BGz7b(B''$B!J(Bbombing$B!K(B 279.475 +$B$N$h$&$G$"$k$3$H$+$i!"(B``patchbomb''$B$H8F$P$l$F$$$^$9!#(B 279.476 + 279.477 +\hgext{patchbomb} $B%$%/%9%F%s%7%g%s$N4pK\E*$J@_Dj5-=R$O!"(B 279.478 +$B$$$D$b$N$h$&$K(B \hgrc $B$X$N#19T$+#29TDxEY$N5-=R$@$1$G$9!#(B 279.479 + 279.480 +\begin{codesample2} 279.481 + [extensions] 279.482 + patchbomb = 279.483 +\end{codesample2} 279.484 + 279.485 +$B0lC6%$%/%9%F%s%7%g%s$rM-8z$K$7$?$J$i$P!"(B 279.486 +\hgxcmd{patchbomb}{email} $B$H$$$&?7$?$J%3%^%s%I$,MxMQ2DG=$K$J$j$^$9!#(B 279.487 + 279.488 +\hgxcmd{patchbomb}{email} $B%3%^%s%I$N0BA43n$D:GA1$N<B9T<j=g$O!"(B 279.489 +\emph{$BI,$:(B} \hgxopt{patchbomb}{email}{-n} 279.490 +$B%*%W%7%g%s$rIU$1$F0lC6<B9T$7$F$_$k$3$H$G$9!#(B 279.491 +\hgxopt{patchbomb}{email}{-n} $B%*%W%7%g%sIU$-$N<B9T$O!"(B 279.492 +$B<B:]$NEE;R%a!<%kAw?.$O9T$o$:$K!"(B 279.493 +$BAw?.(B\emph{$B$5$l$k$G$"$m$&(B}$BFbMF$rI=<($7$^$9!#(B 279.494 +$BJQ99FbMF$K$6$C$HL\$rDL$7$F!"(B 279.495 +$BAw?.FbMF$,E,@Z$G$"$k$3$H$r3NG'$7$?$J$i$P!"(B 279.496 +\hgxopt{patchbomb}{email}{-n} 279.497 +$B%*%W%7%g%sH4$-$G:FEY(B 279.498 +\hgxcmd{patchbomb}{email} $B%3%^%s%I$r<B9T$7$F$/$@$5$$!#(B 279.499 + 279.500 +\hgxcmd{patchbomb}{email} $B%3%^%s%I$O!"(B 279.501 +$BB>$N(B Mercurial $B%3%^%s%I$HF1MM$N%j%S%8%g%s;XDj$,2DG=$G$9!#(B 279.502 +$BNc$($P0J2<$N<B9TNc$G$O!"(B 279.503 +$B%j%S%8%g%s(B 7 $B$+$i(B \texttt{tip} $B$^$G$NA4$F$N%j%S%8%g%s(B 279.504 +$B!J%j%S%8%g%s(B 7 $B$*$h$S(B \texttt{tip} $B$b4^$_$^$9!K$,Aw?.$5$l$^$9!#(B 279.505 + 279.506 +\begin{codesample2} 279.507 + hg email -n 7:tip 279.508 +\end{codesample2} 279.509 + 279.510 +$BHf3SBP>]$N(B\emph{$B%j%]%8%H%j(B}$B$r;XDj$9$k$3$H$b$G$-$^$9!#(B 279.511 +$B%j%S%8%g%s;XDjL5$7$G%j%]%8%H%j$r;XDj$7$?>l9g!"(B 279.512 +\hgxcmd{patchbomb}{email} $B%3%^%s%I$O!"(B 279.513 +$B1s3V%j%]%8%H%j$KB8:_$7$J$$%m!<%+%k%j%]%8%H%j$NA4$F$N%j%S%8%g%s$rAw?.$7$^$9!#(B 279.514 +$B%j%S%8%g%s$J$$$7!J(B\hgxopt{patchbomb}{email}{-b} $B%*%W%7%g%s$K$h$k!K(B 279.515 +$B%V%i%s%AL>$rDI2C;XDj$9$k$3$H$G!"(B 279.516 +$BAw?.$5$l$k%j%S%8%g%s$r@)8B$9$k$3$H$,$G$-$^$9!#(B 279.517 + 279.518 +$BAw?.@h%"%I%l%9$r;XDj$7$J$$(B 279.519 +\hgxcmd{patchbomb}{email} $B<B9T$O40`z$K0BA4$G!"(B 279.520 +$B$=$N>l9g$K$O(B \hgxcmd{patchbomb}{email} $B$OBPOCE*$KF~NO$r5a$a$F$-$^$9(B 279.521 +$B!J(BLinux $B$d(B Unix $B%i%$%/$J%7%9%F%`$rMxMQ$7$F$$$k>l9g!"(B 279.522 +$B$3$l$i$N%X%C%@CMF~NO$N:]$K$O!"(B 279.523 +\texttt{readline} $BMM<0$NJT=85!G=$,MxMQ2DG=$G$9!K!#(B 279.524 + 279.525 +$BC10l$N%j%S%8%g%s$@$1$rAw?.$9$k>l9g!"(B 279.526 +\hgxcmd{patchbomb}{email} $B%3%^%s%I$N4pDlF0:n$G$O!"(B 279.527 +$B%3%_%C%H%a%C%;!<%8$N:G=i$N#19T$rAw?.$9$kEE;R%a!<%k$N%5%V%8%'%/%H$KMxMQ$7$^$9!#(B 279.528 + 279.529 +$BJ#?t$N%j%S%8%g%s$rAw?.$9$k>l9g!"(B 279.530 +\hgxcmd{patchbomb}{email} $B%3%^%s%I$O%A%'%s%8%;%C%HKh$KEE;R%a!<%k$rAw?.$7$^$9!#(B 279.531 +$B$3$N>l9g!"(B 279.532 +$BAw?.$7$h$&$H$9$k0lO"$NJQ99$NL\E*$r5-=R$7$?A0CV$-$NEE;R%a!<%k$r!"(B 279.533 +$B0lO"$N%a!<%kAw?.$N@h?($l$H$7$FAw?.$7$^$9!#(B 279.534 + 279.535 +\subsection{Changing the behaviour of patchbombs} 279.536 + 279.537 +$BEE;R%a!<%k$K$h$kJQ99FbMFAw?.$N7A<0$,!"(B 279.538 +$BA4$F$N%W%m%8%'%/%H$G87L)$KF1$8$o$1$G$OL5$$$3$H$+$i!"(B 279.539 +\hgext{patchbomb} $B%$%/%9%F%s%7%g%s$O!"(B 279.540 +$B%3%^%s%I9T$G$N%*%W%7%g%s;XDj$K$h$k4v$D$+$NE,9g=hM}$r<B;\$7$^$9!#(B 279.541 + 279.542 +\begin{itemize} 279.543 +\item $B%3%^%s%I9T$G$N(B \hgxopt{patchbomb}{email}{-s} $B%*%W%7%g%s$K$h$j!"(B 279.544 + $BA0CV$-%a%C%;!<%8$N%5%V%8%'%/%H$r;XDj$G$-$^$9!#(B 279.545 + $B$3$N%*%W%7%g%s$K$O!"(B 279.546 + $B%5%V%8%'%/%H$H$7$F;HMQ$9$k%F%-%9%H$r;XDj$7$^$9!#(B 279.547 + 279.548 +\item \hgxopt{patchbomb}{email}{-f} $B%*%W%7%g%s$K$h$j!"(B 279.549 + $BEE;R%a!<%k$NAw?.85%"%I%l%9$rJQ99$G$-$^$9!#(B 279.550 + $B$3$N%*%W%7%g%s$K$O!"(B 279.551 + $BAw?.85%"%I%l%9$H$7$F;HMQ$9$kEE;R%a!<%k%"%I%l%9$r;XDj$7$^$9!#(B 279.552 + 279.553 +\item $B4pDlF0:n$G$O!"EE;R%a!<%k$4$H$K(B unified $B:9J,!J(B 279.554 + $B7A<0$N>\:Y$K4X$7$F$O(B \ref{sec:mq:patch}~$B@a$r;2>H$7$F$/$@$5$$!K(B 279.555 + $B$rAw?.$7$^$9!#(B 279.556 + \hgxopt{patchbomb}{email}{-b} $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B 279.557 + $B%P%$%J%j%P%s%I%k7A<0$G$NAw?.$rA*Br$G$-$^$9!#(B 279.558 + 279.559 +\item unified $B:9J,$NDL>o$N=PNO(B\footnote{$BLuCm(B: 279.560 + $B!V(BMercurial $B$K$*$1$kDL>o$N=PNO!W$N0UL#!)(B 279.561 + $B$=$l$H$b!V(Bpatchbomb $B$K$*$1$kDL>o$N=PNO!W$N0UL#!)(B 279.562 + }$B$O%a%?%G!<%?%X%C%@$+$i;O$^$j$^$9!#(B 279.563 + \hgxopt{patchbomb}{email}{--plain} $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B 279.564 + $B$3$l$i$r>JN,$7$?4JAG$J7A<0$N:9J,$rAw?.$9$k$3$H$,$G$-$^$9!#(B 279.565 + 279.566 +\item $B:9J,ItJ,$ODL>o!"(B 279.567 + $B%Q%C%A$N@bL@ItJ,$HF1$8(B MIME $B%Q!<%H$K(B``$BJB$Y$F(B''$BAw?.$5$l$^$9!#(B 279.568 + $B%a!<%k$N:G=i$N(B MIME $B%Q!<%H$+$i$7$+0zMQ$G$-$J$$%a!<%k%D!<%k$b$"$k$?$a!"(B 279.569 + $B:G$bB?$/$NFI$_<j$K$H$C$F!"(B 279.570 + $B0lHVMF0W$K:9J,$r0zMQ$7$FJV?.$G$-$k$N$,$3$N7A<0$G$9!#(B 279.571 + $B@bL@ItJ,$H:9J,ItJ,$rJL!9$N(B MIME $B%Q!<%H$H$7$FAw?.$7$?$$>l9g$O!"(B 279.572 + \hgxopt{patchbomb}{email}{-a} $B%*%W%7%g%s$r;XDj$7$F$/$@$5$$!#(B 279.573 + 279.574 +\item \hgxopt{patchbomb}{email}{-m} $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B 279.575 + $BEE;R%a!<%k$G$NAw?.$NBX$o$j$K!"(B 279.576 + \texttt{mbox} $B7A<0$N%a!<%k%U%)%k%@$X$N=q$-9~$_$r9T$&$3$H$,$G$-$^$9!#(B 279.577 + $B$3$N%*%W%7%g%s$K$O!"=q$-9~$_@h%U%!%$%kL>$r;XDj$7$^$9!#(B 279.578 + 279.579 +\item $B3F%Q%C%A$*$h$SA0CV$-%a%C%;!<%8$KBP$7$F!"(B 279.580 + \command{diffstat} $B7A<0$NMWLs$rIUM?$7$?$$>l9g$O!"(B 279.581 + \hgxopt{patchbomb}{email}{-d} $B%*%W%7%g%s$r;XDj$7$F$/$@$5$$!#(B 279.582 + \command{diffstat} $B%3%^%s%I$O!"(B 279.583 + $B%Q%C%AE,MQ@h%U%!%$%kL>$H!"(B 279.584 + $B1F6A$r<u$1$k9T?t!"(B 279.585 + $B$*$h$S3F%U%!%$%kKh$NJQ99NL$rI=$9%R%9%H%0%i%`$r0lMwI=<($7$^$9!#(B 279.586 + $B%a!<%k$NFI$_<j$O!"(B 279.587 + $B$3$N>pJs$+$i%Q%C%A$NJ#;(EY$K4X$9$k<AE*$J0lMw@-$rF@$k$3$H$,$G$-$^$9!#(B 279.588 + 279.589 +\end{itemize} 279.590 + 279.591 +%%% Local Variables: 279.592 +%%% mode: latex 279.593 +%%% TeX-master: "00book" 279.594 +%%% End:
280.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 280.2 +++ b/ja/hook.tex Fri Aug 14 12:10:47 2009 -0700 280.3 @@ -0,0 +1,1910 @@ 280.4 +\chapter{Handling repository events with hooks} 280.5 +\label{chap:hook} 280.6 + 280.7 +Mercurial $B$O!"%j%]%8%H%j$KH/@8$7$?%$%Y%s%H$K1~$8$F!"(B 280.8 +$B<+F0E*$J=hM}$r<B9T$9$k6/NO$J;EAH$_$rDs6!$7$F$$$^$9!#(B 280.9 +$B4v$D$+$N>u67$G$O!"(B 280.10 +$B%$%Y%s%H$KBP$9$k(B Mercurial $B$N1~Ez7k2L$r@)8f$9$k$3$H$b$G$-$^$9!#(B 280.11 + 280.12 +Mercurial $B$,MxMQ$9$k$3$l$i$N=hM}$O!"(B 280.13 +\emph{$B%U%C%/(B}$B!J(Bhook$B!K$H8F$P$l$F$$$^$9!#(B 280.14 +$B9=@.4IM}%7%9%F%`$K$h$C$F$O%U%C%/$r(B``$B%H%j%,(B''$B$H8F$V$3$H$b$"$j$^$9$,!"(B 280.15 +$B$3$l$i$O6&$KF1$89M$(J}$r;X$7$^$9!#(B 280.16 + 280.17 +\section{An overview of hooks in Mercurial} 280.18 + 280.19 +Mercurial $B$,Ds6!$9$k%U%C%/$N4JC1$J%j%9%H$r<($7$^$9!#(B 280.20 +$B$3$l$i$N%U%C%/$K4X$9$k>\:Y$O(B \ref{sec:hook:ref}~$B@a$G@bL@$7$^$9!#(B 280.21 + 280.22 +\begin{description} 280.23 + 280.24 +\item[\small\hook{changegroup}] 280.25 + $B30It%j%]%8%H%j$+$i%A%'%s%8%;%C%H72$,;}$A9~$^$l$?8e$K<B9T$5$l$^$9!#(B 280.26 + 280.27 +\item[\small\hook{commit}] 280.28 + $B%m!<%+%k%j%]%8%H%j$K$*$$$F?7$?$J%A%'%s%8%;%C%H$,:n@.$5$l$?8e$K<B9T$5$l$^$9!#(B 280.29 + 280.30 +\item[\small\hook{incoming}] 280.31 + $B30It%j%]%8%H%j$+$i;}$A9~$^$l$??7$?$J%A%'%s%8%;%C%HKh$K#12s$E$D<B9T$5$l$^$9!#(B 280.32 + $B;}$A9~$^$l$?%A%'%s%8%;%C%H$N(B\emph{$B$^$H$^$j(B}$B$NC10L$G5/F0$5$l$k(B 280.33 + \hook{changegroup} $B$H$N0c$$$KCm0U$7$F$/$@$5$$!#(B 280.34 + 280.35 +\item[\small\hook{outgoing}] 280.36 + $B30It%j%]%8%H%j$X%A%'%s%8%;%C%H72$,E>Aw$5$l$?8e$K<B9T$5$l$^$9!#(B 280.37 + 280.38 +\item[\small\hook{prechangegroup}] 280.39 + $B30It%j%]%8%H%j$+$i%A%'%s%8%;%C%H72$,;}$A9~$^$l$kA0$K<B9T$5$l$^$9!#(B 280.40 + 280.41 +\item[\small\hook{precommit}] 280.42 + $B@)8fMQ!#(B 280.43 + $B%m!<%+%k%j%]%8%H%j$X$N%3%_%C%HA0$K<B9T$5$l$^$9!#(B 280.44 + 280.45 +\item[\small\hook{preoutgoing}] 280.46 + $B@)8fMQ!#(B 280.47 + $B30It%j%]%8%H%j$X%A%'%s%8%;%C%H72$,E>Aw$5$l$kA0$K<B9T$5$l$^$9!#(B 280.48 + 280.49 +\item[\small\hook{pretag}] 280.50 + $B@)8fMQ!#%?%0@8@.A0$K<B9T$5$l$^$9!#(B 280.51 + 280.52 +\item[\small\hook{pretxnchangegroup}] 280.53 + $B@)8fMQ!#(B 280.54 + $B30It$+$i%m!<%+%k%j%]%8%H%j$X$H%A%'%s%8%;%C%H72$,;}$A9~$^$l$?:]$K!"(B 280.55 + $BJQ99$r915WE*$J$b$N$K$9$k%H%i%s%6%/%7%g%s$,40N;$9$kA0$K<B9T$5$l$^$9!#(B 280.56 + 280.57 +\item[\small\hook{pretxncommit}] 280.58 + $B@)8fMQ!#(B 280.59 + $B%m!<%+%k%j%]%8%H%j$K$*$$$F?7$?$J%A%'%s%8%;%C%H$,:n@.$5$l$?:]$K!"(B 280.60 + $BJQ99$r915WE*$J$b$N$K$9$k%H%i%s%6%/%7%g%s$,40N;$9$kA0$K<B9T$5$l$^$9!#(B 280.61 + 280.62 +\item[\small\hook{preupdate}] 280.63 + $B@)8fMQ!#(B 280.64 + $B:n6HNN0h%G%#%l%/%H%j$N99?7!&%^!<%8$,<B;\$5$l$kA0$K<B9T$5$l$^$9!#(B 280.65 + 280.66 +\item[\small\hook{tag}] 280.67 + $B%?%0$,@8@.$5$l$?8e$K<B9T$5$l$^$9!#(B 280.68 + 280.69 +\item[\small\hook{update}] 280.70 + $B:n6HNN0h%G%#%l%/%H%j$N99?7!&%^!<%8$,40N;$7$?8e$K<B9T$5$l$^$9!#(B 280.71 + 280.72 +\end{description} 280.73 + 280.74 +``$B@)8fMQ(B''$B$H=q$+$l$F$$$k%U%C%/$O!"(B 280.75 +$B=hM}$N7QB3@-$N2DH]$rH=Dj$9$k5!G=$r;}$C$F$$$^$9!#(B 280.76 +$B%U%C%/$N<B9T$,@.8y$7$?>l9g!"(B 280.77 +$B%U%C%/$KBP1~$9$k=hM}$O7QB3$5$l$^$9$,!"(B 280.78 +$B%U%C%/$N<B9T$,<:GT$7$?>l9g!"(B 280.79 +$BBP1~$9$k=hM}$O5v2D$5$l$J$$$+<B9T$7$J$+$C$?$3$H$K$J$j$^$9(B 280.80 +$B!J$I$A$i$K$J$k$+$O%U%C%/$K1~$8$F7h$^$j$^$9!K!#(B 280.81 + 280.82 +\section{Hooks and security} 280.83 + 280.84 +\subsection{Hooks are run with your privileges} 280.85 + 280.86 +$B%j%]%8%H%j$K$*$$$F(B Mercurial $B$N%3%^%s%I$r<B9T$7!"(B 280.87 +$B$=$N%3%^%s%I$,%U%C%/$r5/F0$9$k$3$H$K$J$C$?>l9g!"(B 280.88 +\emph{$B%3%^%s%I<B9T<T$N(B}$B%7%9%F%`>e$K$*$$$F!"(B 280.89 +\emph{$B%3%^%s%I<B9T<T$N(B}$B%f!<%6%"%+%&%s%H$K$h$j!"(B 280.90 +\emph{$B%3%^%s%I<B9T<T$N(B}$B8"8B%l%Y%k$G<B9T$5$l$^$9!#(B 280.91 +$B%U%C%/$OG$0U$N<B9T%3!<%I$G$9$+$i!"(B 280.92 +$B==J,$JG[N8$r;}$C$F07$&I,MW$,$"$j$^$9!#(B 280.93 +$BC/$,:n@.$7$F2?$r$9$k%U%C%/$J$N$+$r=OCN$7$F$$$k3N?.L5$7$K!"(B 280.94 +$B%U%C%/$r%$%s%9%H!<%k$7$J$$$G$/$@$5$$!#(B 280.95 + 280.96 +$B;~$K$O!"(B 280.97 +$B<+J,$G%$%s%9%H!<%k$7$?$N$G$O$J$$%U%C%/$K;/$5$l$k$+$b$7$l$^$;$s!#(B 280.98 +$BFk@w$_$NL5$$%7%9%F%`>e$G(B Mercurial $B$r;HMQ$9$k:]$K$O!"(B 280.99 +Mercurial $B$,%7%9%F%`6&DL$N(B \hgrc\ 280.100 +$B%U%!%$%k$GDj5A$5$l$?%U%C%/$r<B9T$9$k$+$b$7$l$^$;$s!#(B 280.101 + 280.102 +$BB>$N%f!<%6$,=jM-$9$k%j%]%8%H%j$G:n6H$9$k>l9g!"(B 280.103 +Mercurial $B$O$=$N%f!<%6$N%j%]%8%H%j$GDj5A$5$l$?%U%C%/$r<B9T$G$-$^$9$,!"(B 280.104 +$B$=$l$O(B``$B$"$J$?$N(B''$B8"8B$G<B9T$5$l$^$9!#(B 280.105 +$BNc$($P!"$"$k%j%]%8%H%j$+$i(B \hgcmd{pull} $B$7$?:]$K!"(B 280.106 +$B$=$N%j%]%8%H%j$N(B \sfilename{.hg/hgrc} $B%U%!%$%k$,(B 280.107 +\hook{outgoing} $B%U%C%/$rDj5A$7$F$$$?>l9g!"(B 280.108 +$B%j%b!<%H%j%]%8%H%j$N=jM-<T$GL5$+$C$?$H$7$F$b!"(B 280.109 +$B%U%C%/$O$"$J$?$N%"%+%&%s%H$G<B9T$5$l$^$9!#(B 280.110 + 280.111 +\begin{note} 280.112 + $B$3$N86B'$O!"(B 280.113 + $B%m!<%+%k%U%!%$%k%7%9%F%`$+%M%C%H%o!<%/%U%!%$%k%7%9%F%`>e$N%j%]%8%H%j$+$i(B 280.114 + pull $B$7$?>l9g$K$N$_E,MQ$5$l$^$9!#(B 280.115 + http $B$d(B ssh $B7PM3$G(B pull $B$7$?>l9g!"(B 280.116 + $B%U%C%/$,<B9T$5$l$k:]$N%"%+%&%s%H$O!"(B 280.117 + $B%5!<%P>e$G%5!<%P%W%m%;%9$r<B9T$9$k%"%+%&%s%H$G$9!#(B 280.118 +\end{note} 280.119 + 280.120 +$B%j%]%8%H%j$K$*$1$k%U%C%/$NDj5A>u67$r8+$k$K$O!"(B 280.121 +\hgcmdargs{showconfig}{hooks} $B%3%^%s%I$,MxMQ$G$-$^$9!#(B 280.122 +$B$"$k%j%]%8%H%j$G:n6HCf$K!"(B 280.123 +$B<+J,$N=jM-$7$F$$$J$$JL$J%j%]%8%H%j(B 280.124 +$B$H$NO"7H!JNc!'(B \hgcmd{pull} $B$J$$$7(B \hgcmd{incoming}$B!K$,I,MW$K$J$C$?>l9g!"(B 280.125 +$B%j%]%8%H%j$N%U%C%/Dj5A>u67$r3NG'$9$Y$-$G$9(B\footnote{$BLuCm(B: 280.126 +``XXX'' $B$,IUM?$5$l$F$$$k$3$H$+$i86J8L$40!)(B}$B!#(B 280.127 + 280.128 +\subsection{Hooks do not propagate} 280.129 + 280.130 +Mercurial $B$G$O!"%U%C%/@_Dj$N9=@.4IM}$O9T$o$l$J$$$?$a!"(B 280.131 +$B%j%]%8%H%j$N(B clone $B$J$$$7(B pull $B$N:]$K!"(B 280.132 +$B%U%C%/@_Dj$OEAGE$7$^$;$s!#(B 280.133 +$B$=$NM}M3$O4JC1$G!"%U%C%/$O40A4$KG$0U$N<B9T%3!<%I$@$+$i$G$9!#(B 280.134 +$B%U%C%/$O!"(B 280.135 +$B%3%^%s%I<B9T<T$N%^%7%s>e$K$*$$$F!"(B 280.136 +$B%3%^%s%I<B9T<T$N%f!<%6%"%+%&%s%H$K$h$j!"(B 280.137 +$B%3%^%s%I<B9T<T$N8"8B%l%Y%k$G<B9T$5$l$^$9!#(B 280.138 + 280.139 +$B%U%C%/$N9=@.4IM}$N<BAu$O!"(B 280.140 +$B9=@.4IM}%7%9%F%`MxMQ<T$N%"%+%&%s%H$r<eBN2=$5$;$k>e$G!"(B 280.141 +$BMF0W$K0-MQ2DG=$JJ}K!$rDs6!$7$F$7$^$&$?$a!"(B 280.142 +$B$"$i$f$kJ,;69=@.4IM}%7%9%F%`$K$H$C$F6K$a$FL5KE$H8@$($^$9!#(B 280.143 + 280.144 +Mercurial $B$O%U%C%/$rEAGE$7$J$$$?$a!"(B 280.145 +$B6&DL$N%W%m%8%'%/%H$G$NB>$N%a%s%P!<$H$NO"7H$N:]$K$O!"(B 280.146 +$BH`$i$,<+J,$HF1$8(B Mercurial $B$N%U%C%/$rMxMQ$7$F$$$k$3$H$d!"(B 280.147 +$BH`$i$,%U%C%/$r@5$7$/@_Dj$7$F$$$k$3$H$r2>Dj$7$F$O$$$1$^$;$s!#(B 280.148 +$BH`$i$K%U%C%/$N;HMQ$r4|BT$9$k$N$G$"$l$P!"(B 280.149 +$B$=$l$rJ8=q2=$9$Y$-$G$9!#(B 280.150 + 280.151 +$B4k6H$N%$%s%H%i%M%C%H$N>l9g!"(B 280.152 +$BNc$($P(B Mercurial $B$N(B``$BI8=`E*$J(B''$B%$%s%9%H!<%k$r(B NFS $B>e$G9T$$!"(B 280.153 +$BAH?%$G6&DL$N(B \hgrc\ $B%U%!%$%k$GA4$F$N%f!<%6$,;HMQ$9$Y$-%U%C%/$rDj5A$9$k!"(B 280.154 +$B$H$$$C$?$3$H$,2DG=$G$"$k$?$a!"(B 280.155 +$B%U%C%/$N4IM}$O4vJ,MF0W$K$J$j$^$9!#(B 280.156 +$B$7$+$7!"$=$l$G$b8e=R$9$k$h$&$J@)8B$,@8$8$^$9!#(B 280.157 + 280.158 +\subsection{Hooks can be overridden} 280.159 + 280.160 +Mercurial $B$O!":FDj5A$K$h$k%U%C%/$N>e=q$-$r5v$7$F$$$^$9!#(B 280.161 +$B%U%C%/;XDj$K6uJ8;zNs$r@_Dj$9$k$3$H$G%U%C%/@_Dj$rL58z$K$9$k$3$H$b$G$-$^$9$7!"(B 280.162 +$B4uK>DL$j$K?6$kIq$$$rJQ$($k$3$H$b$G$-$^$9!#(B 280.163 + 280.164 +$B4v$D$+$N%U%C%/$rDj5A$7$?!"(B 280.165 +$B%^%7%s$J$$$7AH?%6&DL$N(B \hgrc\ $B%U%!%$%k$rG[Hw$7$?$H$7$F$b!"(B 280.166 +$BMxMQ<T$K$h$k%U%C%/$NL58z2=$d>e=q$-$,9T$o$l$k2DG=@-$,$"$k$3$H$r!"(B 280.167 +$BM}2r$7$F$*$/I,MW$,$"$j$^$9!#(B 280.168 + 280.169 +\subsection{Ensuring that critical hooks are run} 280.170 + 280.171 +$BB>$N%a%s%P!<$K<B;\$7$FM_$7$/$J$$;vJA$K$D$$$FE;$a$?J}?K$r!"(B 280.172 +$B6/@)$7$?$$$3$H$b;~$K$O$"$k$+$b$7$l$^$;$s!#(B 280.173 +$BNc$($P!"A4$F$N%A%'%s%8%;%C%H$K$OI,$:87L)$J%F%9%H0l<0$KDL$C$F$$$FM_$7$$!"(B 280.174 +$B$H;W$&$+$b$7$l$^$;$s!#(B 280.175 +$B$3$NMWK>$r<B8=$9$k$?$a$K!"(B 280.176 +$BAH?%6&DL$N(B \hgrc\ $B%U%!%$%k$G%U%C%/$rDj5A$7$?$H$7$F$b!"(B 280.177 +$B%b%P%$%k(B PC $B$+$i%"%/%;%9$9$k1s3V%f!<%6Ey$K$O5!G=$7$^$;$s$7!"(B 280.178 +$BL^O@%m!<%+%k%f!<%6$K$H$C$F$b%U%C%/$N>e=q$-$K$h$C$FL58z2=$,2DG=$G$9!#(B 280.179 + 280.180 +$B!J%W%m%8%'%/%H$K$*$1$k!K(BMercurial $B$NMxMQJ}?K$H$7$F!"(B 280.181 +$B%a%s%P!<$,JQ99EAGE$9$k:]$K$O!"(B 280.182 +$B4XLg$N5!G=$r2L$?$9$h$&$KE,@Z$K@_Dj$5$l$?<~CN$N(B``$B@55,(B''$B%5!<%P$rDL$9!"(B 280.183 +$B$H:vDj$9$k$3$H$G!"(B 280.184 +$B%U%C%/$K$h$kMxMQJ}?K$N6/@)$rBeBX$9$k$3$H$,2DG=$G$9!#(B 280.185 + 280.186 +$B<B8=J}K!$N0l$D$H$7$F!"(B 280.187 +$B%=!<%7%c%k%(%s%8%K%"%j%s%0$H5;=Q$NAH$_9g$o$;$K$h$k$b$N$,$"$j$^$9!#(B 280.188 +$B%"%/%;%9@)8BIU$-%"%+%&%s%H$rMQ0U$7!"(B 280.189 +$BEv3:%"%+%&%s%H$G4IM}$5$l$?%j%]%8%H%j$K!"(B 280.190 +$B3F%a%s%P!<$O%M%C%H%o!<%/7PM3$GJQ99$r(B push $B$G$-$k$h$&$K$7$^$9$,!"(B 280.191 +$B$=$N%"%+%&%s%H$G%m%0%$%s$7$?$j!"(B 280.192 +$BDL>o$N%7%'%k%3%^%s%I$r<B9T$7$?$j$G$-$J$$$h$&$K$7$^$9!#(B 280.193 +$B$3$N$^$^$G$O!"(B 280.194 +$B%a%s%P!<$O!V%4%_!W$r4^$`$h$&$J%A%'%s%8%;%C%H$N%3%_%C%H$b2DG=$G$9!#(B 280.195 + 280.196 +$B%a%s%P!<$,(B pull $B$9$k%5!<%P!<$X$HC/$+$,%A%'%s%8%;%C%H$r(B push $B$7$?>l9g!"(B 280.197 +$B$=$N%A%'%s%8%;%C%H$,1JB32=$5$l$kA0$K%5!<%P!<$O%F%9%H$r<B;\(B\footnote{ 280.198 +$BLuCm(B: $B%F%9%H<B;\$O%U%C%/$G<B8=$5$l$^$9$,!"(B 280.199 +(1) $B%U%C%/$N<B9T$O%"%/%;%9@)8BIU$-%"%+%&%s%H$N8"8B$G<B9T$5$l!"(B 280.200 +(2) $B%j%b!<%H$+$i$N(B push $B$N>l9g$O%U%C%/$N>e=q$-$,$G$-$J$$!"(B 280.201 +$B$H$$$&$3$H$+$i!"%;%-%e%j%F%#!&%U%C%/@_Dj$NLdBj$,6&$K2r>C$5$l$^$9!#(B}$B$7!"(B 280.202 +$B%F%9%H0l<0$KDL$i$J$1$l$P$=$N%A%'%s%8%;%C%H$r5qH]$7$^$9!#(B 280.203 +$B%a%s%P!<$,$3$N%U%#%k%?%5!<%P$+$i$7$+%A%'%s%8%;%C%H$N(B pull $B$r$7$J$$$N$G$"$l$P!"(B 280.204 +$B%a%s%P!<$,(B pull $B$9$kA4$F$N%A%'%s%8%;%C%H$O!"(B 280.205 +$B<+F0E*$KE@8!$5$l$F$$$k$3$H$,J]>Z$5$l$^$9!#(B 280.206 + 280.207 +\section{Care with \texttt{pretxn} hooks in a shared-access repository} 280.208 +\label{sec:hook:carepretxn} 280.209 + 280.210 +$BB?$/$N?M$K$h$j6&M-$5$l$F$$$k%j%]%8%H%j$KBP$7$F!"(B 280.211 +$B%U%C%/$K$h$k<+F0<B9T$r@_Dj$9$k>l9g!"(B 280.212 +$B<B;\J}<0$K$OCm0U$,I,MW$G$9!#(B 280.213 + 280.214 +Mercurial $B$,%j%]%8%H%j$K%m%C%/$r3]$1$k$N$O!"(B 280.215 +$B%j%]%8%H%j$K=q$-9~$_$r9T$&;~$@$1$G$"$j!"(B 280.216 +$B3n$D%m%C%/$KBP$7$FCm0U$rJ'$&$N$O!"(B 280.217 +Mercurial $B$N=q$-9~$_=hM}$NItJ,E*$J2U=j$@$1$G$9!#(B 280.218 +$B=q$-9~$_%m%C%/$O!"(B 280.219 +$BJ#?t$N=hM}$NF1;~=q$-9~$_$K$h$k%j%]%8%H%jGKB;$rKI$0$3$H$G!"(B 280.220 +$B$*8_$$$N=q$-9~$_FbMF$rJ]8n$7$^$9!#(B 280.221 + 280.222 +Mercurial $B$O%G!<%?$NFI$_9~$_=q$-=P$7=g=x$KCm0U$rJ'$C$F$$$^$9$+$i!"(B 280.223 +$B%j%]%8%H%j$+$i$N%G!<%?FI$_9~$_$N:]$K%m%C%/$OI,MW$"$j$^$;$s!#(B 280.224 +Mercurial $B$,%j%]%8%H%j$+$i%G!<%?$rFI$_9~$`:]$K$O!"(B 280.225 +$B%m%C%/$KBP$7$FCm0U$rJ'$$$^$;$s!#(B 280.226 +$B%m%C%/$rI,MW$H$7$J$$$3$N;EAH$_$O!"(B 280.227 +$B@-G=$HJ?9T@-$rBg$-$/8~>e$5$;$F$$$^$9!#(B 280.228 + 280.229 +$B$7$+$7$J$,$i!"(B 280.230 +$B!V%m%C%/$5$l$J$$!W$H$$$&$3$H$O!"(B 280.231 +$B$=$l$rCN$i$J$$$H!"(B 280.232 +$BBg$-$J@-G=8~>e$H0z$-49$($K%H%i%V%kH/@8$N@x:_E*$J4m81@-$r;}$C$F$$$^$9!#(B 280.233 +$B$3$N4m81@-$K$D$$$F@bL@$9$k$K$O!"(B 280.234 +$B%j%]%8%H%j$X$N%A%'%s%8%;%C%H$NDI2C!"(B 280.235 +$B$*$h$S$=$l$i%A%'%s%8%;%C%H$NFI$_=P$7$r!"(B 280.236 +Mercurial $B$,$I$&$$$C$?<j=g$G9T$&$+$K$D$$$F!"(B 280.237 +$B4vJ,>\:Y$JCN<1$,I,MW$H$J$j$^$9!#(B 280.238 + 280.239 +Mercurial $B$,%a%?%G!<%?$r(B\emph{$B=q$-=P$9(B}$B:]$K$O!"(B 280.240 +$BBP>]%U%!%$%k$K%a%?%G!<%?$rD>@\=q$-=P$7$^$9!#(B 280.241 +$B:G=i$K(B filelog $B$K%a%?%G!<%?$r=q$-=P$7!"(B 280.242 +$B<!$K(B manifest $B$N%G!<%?!J$3$l$K$O!"(B 280.243 +filelog $B$K=q$-=P$7$??7$7$$%G!<%?$X$N%]%$%s%?$,4^$^$l$^$9!K!"(B 280.244 +$B$=$7$F(Bchangelog$B$N%G!<%?!J$3$l$K$O!"(B 280.245 +manifest $B$K=q$-=P$7$??7$7$$%G!<%?$X$N%]%$%s%?$,4^$^$l$^$9!K$,=q$-=P$5$l$^$9!#(B 280.246 +$B8D!9$N%U%!%$%k$X$N:G=i$N=q$-=P$7$NA0$K!"(B 280.247 +Mercurial $B$O8D!9$N%U%!%$%k$N=*C<0LCV>pJs$r%H%i%s%6%/%7%g%s%m%0$K5-O?$7$^$9!#(B 280.248 +Mercurial $B$K$h$j%H%i%s%6%/%7%g%s$,4,$-La$5$l$k:]$K$O!"(B 280.249 +$B%H%i%s%6%/%7%g%s3+;O;~E@$N%5%$%:$K$^$G8D!9$N%U%!%$%k$,@Z$j5M$a$i$l$^$9!#(B 280.250 + 280.251 +Mercurial $B$,%a%?%G!<%?$r(B\emph{$BFI$_9~$`(B}$B:]$K$O!"(B 280.252 +changelog $B$rFI$_9~$s$@8e$G$=$NB>$N%U%!%$%k$NFI$_9~$_$r9T$$$^$9!#(B 280.253 +$B%G!<%?FI$_9~$_$N:]$K$O!"(B 280.254 +$B@h$KFI$_9~$s$@(B changelog $B$+$iE~C#2DG=$J(B 280.255 +manifest $B$d(B filelog $B$NItJ,$K$7$+%"%/%;%9$7$J$$$N$G!"(B 280.256 +$BIT==J,$J=q$-=P$7Cf$N%G!<%?$rFI$`$3$H$O$"$j$^$;$s!#(B 280.257 + 280.258 +$B4v$D$+$N@)8fMQ%U%C%/$N!J(B\hook{pretxncommit} $B$d(B \hook{pretxnchangegroup}$B!K(B 280.259 +$B$O!"%H%i%s%6%/%7%g%s$N40N;D>A0$K<B9T$5$l$^$9!#(B 280.260 +$B$3$N;~E@$GA4$F$N%a%?%G!<%?$O=q$-=P$7:Q$_$G$9$,!"(B 280.261 +Mercurial $B$O%H%i%s%6%/%7%g%s$r4,$-La$9$3$H$G!"(B 280.262 +$B?7$?$K=q$-=P$5$l$?%G!<%?$rGK4~$9$k$3$H$,$G$-$^$9!#(B 280.263 + 280.264 +$B%H%i%s%6%/%7%g%s40N;A0$N%A%'%s%8%;%C%H$O1JB3@-$,3NDj$7$F$*$i$:!"(B 280.265 +$B$=$N$?$a(B``$BK\Ev$KB8:_$9$k(B''$B$H$_$J$9$3$H$,$G$-$J$$$3$H$+$i!"(B 280.266 +$B%H%i%s%6%/%7%g%s40N;A0$K<B9T$5$l$k@)8fMQ%U%C%/$,=*N;$^$G$KD9;~4V$rMW$9$k>l9g!"(B 280.267 +$B1JB3@-$,3NDj$7$F$$$J$$%A%'%s%8%;%C%H$N%a%?%G!<%?$,!"(B 280.268 +$BJ?9T$7$FF0:n$7$F$$$kB>$N=hM}$K$h$jFI$_=P$5$l$k;~4VBS$,H/@8$7$^$9!#(B 280.269 +$B%U%C%/$N<B9T;~4V$,D9$/$J$kDx!"$3$N;~4VBS$,D9$/$J$j$^$9!#(B 280.270 + 280.271 +\subsection{The problem illustrated} 280.272 + 280.273 +$B86B'E*$K(B \hook{pretxnchangegroup} $B%U%C%/$O!"(B 280.274 +$B=8LsMQ%j%]%8%H%j$G$N<u$1F~$lA0$K!"(B 280.275 +$B?75,%A%'%s%8%;%C%H$N%S%k%I$d%F%9%H$r<+F02=$9$k$N$KE,$7$F$$$^$9!#(B 280.276 +$B$3$NMQK!$O(B 280.277 +``$B%S%k%I$r<:GT$5$;$k(B''$BJQ99$,=8LsMQ%j%]%8%H%j$KH?1G$5$l$J$$$3$H$rJ]>Z$7$^$9!#(B 280.278 +$B$7$+$7!"(B 280.279 +\hook{pretxnchangegroup} $B%U%C%/$K$h$k%F%9%HES>e$NJQ99$r!"(B 280.280 +$BB>$NMxMQ<T$,(B pull $B$G$-$F$7$^$&$h$&$G$O!"(B 280.281 +$B%F%9%H$NM-MQ@-$,L5$/$J$C$F$7$^$$$^$9!#(B 280.282 +$B%j%]%8%H%jFbMF$N@09g@-$K5?$$$r;}$?$J$$MxMQ<T$O!"(B 280.283 +$B%S%k%I$r<:GT$5$;$k@x:_E*$J2DG=@-$r;}$D%F%9%HL$<B;\$NJQ99$r!"(B 280.284 +$B<+?H$N%j%]%8%H%j$X$HH?1G$7$F$7$^$&$+$i$G$9!#(B 280.285 + 280.286 +$B$3$N$h$&$JFqBj$X$N:G$b0BA4$J5;=QE*2rK!$O!"(B 280.287 +``$BLgHV(B''$B%j%]%8%H%j$NMxMQ$r(B\emph{$BC1J}8~(B}$B$K8BDj$7$F$7$^$&$3$H$G$9!#(B 280.288 +$BLgHV%j%]%8%H%j$O!"(B 280.289 +$B30It$+$i$N%A%'%s%8%;%C%H$N(B push $B$O5v$7$F$b!"(B 280.290 +pull $B$O$G$-$J$$$h$&$K$7$^$9(B 280.291 +$B!J(B\hook{preoutgoing} $B%U%C%/$G$=$N$h$&$J9T0Y$r6X;_$7$^$9!K!#(B 280.292 +$B?7$7$$%A%'%s%8%;%C%H$K$*$1$k%S%k%I$J$$$7%F%9%H$,@.8y$7$?$J$i$P!"(B 280.293 +$B$=$N%A%'%s%8%;%C%H$rJL$J%j%]%8%H%j$X$H(B push $B$9$k$h$&$K(B 280.294 +\hook{changegroup} $B%U%C%/$r@_Dj$7!"(B 280.295 +$BMxMQ<T$O$=$A$i$N%j%]%8%H%j$+$i(B pull \emph{$B$G$-$k(B}$B$h$&$K$7$^$7$g$&!#(B 280.296 + 280.297 +$B<B:]LdBj!"(B 280.298 +$B$3$N$h$&$J=8Ls$5$l$?%\%H%k%M%C%/$r@_$1$k$3$H$O!"(B 280.299 +$B$"$^$jNI$$%"%$%G%#%"$G$O$J$/(B(XXXX ?)$B!"(B 280.300 +In practice, putting a centralised bottleneck like this in place is 280.301 +not often a good idea 280.302 +$B%H%i%s%6%/%7%g%s$NO31L(B\footnote{$BLuCm(B: 280.303 +$B1JB32=L$3NDj$N%A%'%s%8%;%C%H$,8+$($F$7$^$&$3$H(B}$B$OLdBj$K$J$j$^$;$s!#(B 280.304 +$B%A%'%s%8%;%C%H$r<h$j07$&;~4V$h$j$b$=$l$r%F%9%H$9$k$N$K;~4V$rMW$9$k>u67$G$O!"(B 280.305 +$B%W%m%8%'%/%H$NBg$-$5(B---$B$*$h$S%S%k%I!&%F%9%H$KMW$9$k;~4V(B 280.306 +---$B$,A}2C$9$k$[$I!"(B 280.307 +``$B9XF~A0$N;nMQ(B''$B<jK!$K$h$jJI$NFbB&$KAGAa$/Av$j$3$a$^$9!#(BXXXXX ???? 280.308 +As the size of a project---and the time it takes to 280.309 +build and test---grows, you rapidly run into a wall with this ``try 280.310 +before you buy'' approach, where you have more changesets to test than 280.311 +time in which to deal with them. 280.312 +$BHr$1$i$l$J$$7k2L$O!"(B 280.313 +$B$9$Y$F$,4,$-9~$^$l$?ItJ,$K$*$1$k%U%i%9%H%l!<%7%g%s$G$9!#(BXXXXXXX ???? 280.314 +The inevitable result is frustration 280.315 +on the part of all involved. 280.316 + 280.317 +$B$h$jBg5,LO2=2DG=$J<jK!$O!"(B 280.318 +push $BA0$K3F<+$G%S%k%I!&%F%9%H$r<B;\$7$F$b$i$$!"(B 280.319 +push $B$N(B \emph{$B8e(B}$B$KCf1{$G<+F0E*$K%S%k%I!&%F%9%H$r9T$&$3$H$G!"(B 280.320 +$BA4$F$N%A%'%s%8%;%C%H$,NI9%$G$"$k$3$H$r3NG'$9$k!"$H$$$&$b$N$G$9!#(B 280.321 +$B$3$N<jK!$NMxE@$O!"(B 280.322 +$B%j%]%8%H%j$K$*$1$k%A%'%s%8%;%C%H$N<uM}?JEY$K4X$7$F!"(B 280.323 +$B@)8B$,2]$5$l$k$3$H$,L5$$E@$K$"$j$^$9!#(B 280.324 + 280.325 +\section{A short tutorial on using hooks} 280.326 +\label{sec:hook:simple} 280.327 + 280.328 +Mercurial $B$N%U%C%/$O4JC1$K=q$1$^$9!#(B 280.329 +\hgcmd{commit} $B$,40N;$7$?:]$K<B9T$5$l!"(B 280.330 +$B:n@.$7$?$P$+$j$N%A%'%s%8%;%C%H$N%O%C%7%eCM$rI=<($9$k$@$1$N!"(B 280.331 +$B4JC1$J%U%C%/$r=q$$$F$_$^$7$g$&!#(B 280.332 + 280.333 +\begin{figure}[ht] 280.334 + \interaction{hook.simple.init} 280.335 + \caption{A simple hook that runs when a changeset is committed} 280.336 + \label{ex:hook:init} 280.337 +\end{figure} 280.338 + 280.339 +$BA4$F$N%U%C%/$O!"(B\ref{ex:hook:init} $B$NNc$K$*$1$k7A<0$rF'=1$7$^$9!#(B 280.340 + \hgrc\ $B%U%!%$%k$N(B 280.341 +\rcsection{hooks} $B%;%/%7%g%s$K%(%s%H%j$rDI2C$7$^$9!#(B 280.342 +$B:8JU$O<B9T7@5!$K$J$k%$%Y%s%H$NL>A0$G!"(B 280.343 +$B1&JU$O<B9T$5$l$k=hM}$G$9!#(B 280.344 +$B8+$F$o$+$k$h$&$K!"(B 280.345 +$B%U%C%/$K$*$$$F$OG$0U$N%7%'%k%3%^%s%I$r<B9T$G$-$^$9!#(B 280.346 +$B4D6-JQ?t(B 280.347 +$B!JNc$K$*$1$k(B \envar{HG\_NODE} $B$r;2>H$7$F$/$@$5$$!K$rMQ$$$F!"(B 280.348 +Mercurial $B$O%U%C%/$KIU2C>pJs$rEO$7$^$9!#(B 280.349 + 280.350 +\subsection{Performing multiple actions per event} 280.351 + 280.352 +\ref{ex:hook:ext} $B$NNc$K<($9$h$&$J!"(B 280.353 +$BFCDj$N<oN`$N%$%Y%s%H$KBP$7$F#1$D0J>e$N%U%C%/$rDj5A$7$?$$>u67$,!"(B 280.354 +$B$7$P$7$PH/@8$9$k$3$H$G$7$g$&!#(B 280.355 +Mercurial $B$G$O!"(B 280.356 +$B%U%C%/L>$NKvHx$K(B\emph{$B3HD%;R(B}$B$rIUM?$9$k$3$H$G!"(B 280.357 +$BF10l%$%Y%s%H$X$NJ#?t%U%C%/$NDj5A$,2DG=$K$J$j$^$9!#(B 280.358 +$B3HD%;R$NIUM?$O!"(B 280.359 +$B%U%C%/L>$K!"(B 280.360 +$B%T%j%*%I!J(B``\texttt{.}'' $BJ8;z!K$HG$0U$KA*$s$@J8;zNs$rB3$1$k$3$H$G9T$$$^$9!#(B 280.361 +$BNc$($P!"(B 280.362 +\texttt{commit} $B$,H/@8$7$?>l9g!"(B 280.363 +Mercurial $B$O(B 280.364 +\texttt{commit.foo} $B$*$h$S(B 280.365 +\texttt{commit.bar} $B%U%C%/$r<B9T$7$^$9!#(B 280.366 + 280.367 +\begin{figure}[ht] 280.368 + \interaction{hook.simple.ext} 280.369 + \label{ex:hook:ext} 280.370 + \caption{Defining a second \hook{commit} hook} 280.371 +\end{figure} 280.372 + 280.373 +$B$"$k%$%Y%s%H$KJ#?t$N%U%C%/$,Dj5A$5$l$F$$$k:]$K!"(B 280.374 +$B$=$N<B9T=g=x$rL@3N$KDj5A$9$k$?$a$K!"(B 280.375 +Mercurial $B$O%U%C%/$r3HD%;R$G@0Ns$5$;!"(B 280.376 +$B%U%C%/%3%^%s%I$r$3$N@0Ns$5$l$?=g=x$G<B9T$7$^$9!#(B 280.377 +$B>e5-$NNc$G$O!"(B 280.378 +\texttt{commit.foo} 280.379 +$B$NA0$K(B 280.380 +\texttt{commit.bar} $B$r!"(B 280.381 +$B$3$l$i$NA0$K(B 280.382 +\texttt{commit} $B$r<B9T$7$^$9!#(B 280.383 + 280.384 +$B?7$7$$%U%C%/$rDj5A$9$k:]$K!"(B 280.385 +$B2?$i$+$N@bL@E*$J3HD%;R$r;HMQ$9$k$N$ONI$$%"%$%G%#%"$G$9!#(B 280.386 +$B$=$&$9$k$3$H$G!"(B 280.387 +$B$=$N%U%C%/$,2?$r$9$k$?$a$N$b$N$+$r;W$$=P$7$d$9$/$J$j$^$9!#(B 280.388 +$B%U%C%/$N<B9T$,<:GT$7$?>l9g!"(B 280.389 +$B%U%C%/L>$H3HD%;R$r4^$`%(%i!<%a%C%;!<%8$,I=<($5$l$^$9$+$i!"(B 280.390 +$B%U%C%/$,<:GT$7$?M}M3$K4X$7$F!"(B 280.391 +$B@bL@E*$J3HD%;R$+$iB(@=$N%R%s%H$rF@$k$3$H$,$G$-$^$9(B 280.392 +$B!JNc$K4X$7$F$O!"(B\ref{sec:hook:perm}~$B@a$r;2>H$7$F$/$@$5$$!K!#(B 280.393 + 280.394 +\subsection{Controlling whether an activity can proceed} 280.395 +\label{sec:hook:perm} 280.396 + 280.397 +$B@h$NNc$G$O!"(B 280.398 +$B%3%_%C%HA`:n$,40N;$7$?8e$G<B9T$5$l$k(B 280.399 +\hook{commit} $B%U%C%/$r;HMQ$7$^$7$?!#(B 280.400 +$B$3$N%U%C%/$O!"(B 280.401 +$BA`:n$,40N;$7$?8e$G<B9T$5$l$k(B Mercurial $B$N%U%C%/$N#1$D$G$9!#(B 280.402 +$B$3$l$i$N%U%C%/$O!"A`:n$=$N$b$N$K1F6A$r5Z$\$9$3$H$O$"$j$^$;$s!#(B 280.403 + 280.404 +Mercurial $B$G$O!"(B 280.405 +$BA`:n$,3+;O$5$l$kA0$d!"(B 280.406 +$BA`:n$,40N;$9$k$^$G$N4V$KH/@8$9$k%$%Y%s%H$,Dj5A$5$l$F$$$^$9!#(B 280.407 +$B$3$l$i$N%$%Y%s%H$N:]$K5/F0$5$l$k%U%C%/$O!"(B 280.408 +$BA`:n$r7QB32DG=$+CfCG$9$Y$-$+$rH=CG$9$k$3$H$,$G$-$^$9!#(B 280.409 + 280.410 +\hook{pretxncommit} $B%U%C%/$O!"(B 280.411 +$B%3%_%C%HA`:n$,35$M=*N;$7$?8e!"%3%_%C%H$,40N;$9$kA0$NCJ3,$G5/F0$5$l$^$9!#(B 280.412 +$B8@$$49$($k$J$i!"(B 280.413 +$B%A%'%s%8%;%C%H$rI=$9%a%?%G!<%?$,%G%#%9%/$K=q$-9~$^$l$F$O$$$k$b$N$N!"(B 280.414 +$B%H%i%s%6%/%7%g%s$,L$$@40N;$7$F$$$J$$>u67$G5/F0$5$l$^$9!#(B 280.415 +\hook{pretxncommit} $B%U%C%/$O!"(B 280.416 +$B%H%i%s%6%/%7%g%s$r40N;$5$;$k$N$+!"(B 280.417 +$B$"$k$$$O4,$-La$9$Y$-$+$r7hDj$9$k$3$H$,$G$-$^$9!#(B 280.418 + 280.419 +\hook{pretxncommit} $B%U%C%/$,=*N;>uBVCM$H$7$F#0$rJV5Q$7$?>l9g!"(B 280.420 +$B%H%i%s%6%/%7%g%s$O40N;$7!"%3%_%C%HA`:n$O=*N;$7$^$9$N$G!"(B 280.421 +\hook{commit} $B%U%C%/$,<B9T$5$l$^$9!#(B 280.422 +\hook{pretxncommit} $B%U%C%/$,=*N;>uBV$H$7$FHs#0$rJV5Q$7$?>l9g!"(B 280.423 +$B%H%i%s%6%/%7%g%s$O4,$-La$5$l!"(B 280.424 +$B%A%'%s%8%;%C%H$rI=$9%a%?%G!<%?$O:o=|$5$l!"(B 280.425 +\hook{commit} $B%U%C%/$O<B9T$5$l$^$;$s!#(B 280.426 + 280.427 +\begin{figure}[ht] 280.428 + \interaction{hook.simple.pretxncommit} 280.429 + \label{ex:hook:pretxncommit} 280.430 + \caption{Using the \hook{pretxncommit} hook to control commits} 280.431 +\end{figure} 280.432 + 280.433 +$BNc(B~\ref{ex:hook:pretxncommit} $BCf$N%U%C%/$O!"(B 280.434 +$B%3%_%C%H;~$N%3%a%s%H$,%P%0(BID$B$r4^$s$G$$$k$3$H$r3NG'$7$F$$$^$9!#(B 280.435 +$B%3%a%s%H$,%P%0(BID$B$r4^$s$G$$$k>l9g!"%3%_%C%H$O40N;$7$^$9!#(B 280.436 +$B$=$&$G$J$1$l$P!"%3%_%C%HA`:n$O4,$-La$5$l$^$9!#(B 280.437 + 280.438 +\section{Writing your own hooks} 280.439 + 280.440 +\hggopt{-v} $B%*%W%7%g%sIU$-!"(B 280.441 +$B$"$k$$$O(B\rcitem{ui}{verbose} $B@_Dj9`L\$r(B``true''$B$K$7$F(B 280.442 +Mercurial $B$r<B9T$9$k$N$,!"(B 280.443 +$B%U%C%/<BAu$N:]$K$OM-MQ$G$"$k$3$H$K5$IU$/$+$b$7$l$^$;$s!#(B 280.444 +$B$3$N$h$&$K$7$F(B Mercurial $B$r<B9T$9$k$3$H$G!"(B 280.445 +$B$=$l$>$l$N%U%C%/$r5/F0$9$k:]$K;vA0$K%a%C%;!<%8$rI=<($7$^$9!#(B 280.446 + 280.447 +\subsection{Choosing how your hook should run} 280.448 +\label{sec:hook:lang} 280.449 + 280.450 +$B%U%C%/$r<BAu$9$k:]$K$O!"DL>o$N%W%m%0%i%`(B---$BE57?E*$K$O%7%'%k%9%/%j%W%H(B--- 280.451 +$B$H$7$F$b<BAu$G$-$^$9$,!"(B 280.452 +Python $B4X?t$H$7$F$b<BAu$G$-!"(B 280.453 +$B$=$N>l9g$O(B Mercurial $B%W%m%;%9Fb$G<B9T$5$l$^$9!#(B 280.454 + 280.455 +$B30It%W%m%0%i%`$H$7$F%U%C%/$r<BAu$9$kMxE@$O!"(B 280.456 +Mercurial $B$NFbIt;v>p$K4X$7$FCN$kI,MW$,L5$$E@$K$"$j$^$9!#(B 280.457 +$BIU2CE*$J>pJs$N<hF@$N$?$a$K!"(B 280.458 +$BDL>o$N(B Mercurial $B%3%^%s%I$r5/F0$9$k$3$H$b$G$-$^$9!#(B 280.459 +$B$=$NMxE@$H0z$-49$($K!"30It!J%W%m%0%i%`$H$7$F$N!K%U%C%/$O!"(B 280.460 +$B%W%m%;%9Fb%U%C%/$h$j$bDcB.(B\footnote{$BLuCm(B: 280.461 +$B8e=R$5$l$^$9$,!"(B 280.462 +$B30It%W%m%0%i%`$K$h$k%U%C%/$,!VDcB.!W$G$"$k$N$O!"(B 280.463 +(1)$B30It%W%m%;%9$H$7$F$N%U%C%/5/F0$H!"(B 280.464 +(2)Mercurial $B%j%]%8%H%j$X$N%"%/%;%9$K4X$9$kItJ,$G!"(B 280.465 +$B30It%W%m%;%9$N<B9T$=$N$b$N$,DcB.$J$o$1$G$O$"$j$^$;$s!#(B}$B$G$9!#(B 280.466 + 280.467 +Python $B4X?t$K$h$k%W%m%;%9Fb%U%C%/$O!"(B 280.468 +$BA4$F$N(B Mercurial API $B$K%"%/%;%9$G$-!"(B 280.469 +$BB>$N%W%m%;%9$r(B``$B@8@.(B''$B$9$kI,MW$O$"$j$^$;$s$N$G!"(B 280.470 +$B4pK\E*$K30It%U%C%/$h$j$b9bB.$G$9!#(B 280.471 +$B%U%C%/$,I,MW$H$9$kB?$/$N>pJs$NF~<j$b!"(B 280.472 +Mercurial $B%3%^%s%I$+$iF@$k$h$j$b!"(B 280.473 +Mercurial API $B$+$iF@$kJ}$,MF0W$G$9!#(B 280.474 + 280.475 +Python $B$NMxMQ$,6l$K$J$i$J$$$+!"(B 280.476 +$B9b$$<B9T@-G=$,MW5a$5$l$k>l9g!"(B 280.477 +Python $B$G$N%U%C%/<BAu$rA*Br$9$Y$-$G$9!#(B 280.478 +$B$7$+$7$J$,$i!"(B 280.479 +$B4JC1$J%U%C%/$G!"(B 280.480 +$B@-G=$r5$$K$9$kI,MW$,L5$$!J$*$=$i$/B?$/$N%U%C%/$,$=$&$G$9!K$N$G$"$l$P!"(B 280.481 +$B%7%'%k%9%/%j%W%H$G$N<BAu$G==J,$G$9!#(B 280.482 + 280.483 +\subsection{Hook parameters} 280.484 +\label{sec:hook:param} 280.485 + 280.486 +Mercurial $B$,%U%C%/$r5/F0$9$k:]$K$O!"(B 280.487 +$BL@3N$KDj5A$5$l$?%Q%i%a!<%?$,%U%C%/$KEO$5$l$^$9!#(B 280.488 +Python $B$G$N%U%C%/<BAu$N>l9g!"(B 280.489 +$B%Q%i%a!<%?$O%-!<%o!<%I0z?t$H$7$F%U%C%/4X?t$KEO$5$l$^$9!#(B 280.490 +$B30It%W%m%0%i%`$G$N%U%C%/<BAu$N>l9g!"(B 280.491 +$B%Q%i%a!<%?$O4D6-JQ?t$H$7$FEO$5$l$^$9!#(B 280.492 + 280.493 +$B%U%C%/<BAu$,(B Python $B!&%7%'%k%9%/%j%W%H$N$$$:$l$G$"$k$+$G!"(B 280.494 +$B%U%C%/8GM-$N%Q%i%a!<%?L>$H$=$NCM$,7h$^$j$^$9(B\footnote{$BLuCm(B: 280.495 +$B86J8$O(B 280.496 +$B!V(BWhether your hook is written in Python or as a shell script, the 280.497 +hook-specific parameter names and values will be the ``same''$B!W(B} 280.498 +$B??56CM%Q%i%a!<%?$O!"(BPython $B%U%C%/$G$O??56CM7?$H$7$FI=8=$5$l$^$9$,!"(B 280.499 +$B30It%U%C%/$KBP$7$F$O(B ``1''$B!J(B``true'' $BCM$H$7$F!K$J$$$7(B 280.500 +``0''$B!J(B``false'' $BCM$H$7$F!K$r;}$D4D6-JQ?t$GI=8=$5$l$^$9!#(B 280.501 +$B%U%C%/%Q%i%a!<%?$,(B \texttt{foo} $B$H$$$&L>A0$G$"$k>l9g!"(B 280.502 +Python $B%U%C%/$N%-!<%o!<%I0z?t$NL>A0$b(B \texttt{foo} $B$G$9$,!"(B 280.503 +$B30It%U%C%/$N4D6-JQ?tL>$O(B \texttt{HG\_FOO} $B$H$J$j$^$9!#(B 280.504 + 280.505 +\subsection{Hook return values and activity control} 280.506 + 280.507 +$B<B9T$,@.8y$7$?%U%C%/$O!"30It%U%C%/$N>l9g$O=*N;%3!<%I#0$G!"(B 280.508 +$B%W%m%;%9Fb%U%C%/$N>l9g$O??56CM(B``False''$B$G=*N;$7$J$1$l$P$J$j$^$;$s(B 280.509 +\footnote{$BLuCm(B:Mercurial $B$NG[I[J*$K4^$^$l$k(B hgext $BG[2<$N%U%C%/$O!"(B 280.510 +$B7k9=$J3NN($G!"(B 280.511 +False $BL5$7$N(B return $B$d!"(B 280.512 +$BL@<(E*$J(B return $BL5$7$N<BAu$G$9$,!"(B 280.513 +Python $B$N8@8l;EMM>e!"(B 280.514 +$B$3$l$i$O(B False $B$H(B``$B$[$\Ey2A(B''$B$J(B None $B$H$_$J$5$l$^$9!#(B}$B!#(B 280.515 +$B%U%C%/$N<B9T<:GT$O!"(B 280.516 +$B30It%U%C%/$N>l9g$OHs#0$N=*N;%3!<%I$G!"(B 280.517 +$B%W%m%;%9Fb%U%C%/$N>l9g$O??56CM(B``true''$B$GI=$5$l$^$9!#(B 280.518 +$B%W%m%;%9Fb$U$C$/$,Nc30$rIbMH$7$?>l9g!"(B 280.519 +$B%U%C%/<B9T$O<:GT$7$?$H8+Pv$5$l$^$9!#(B 280.520 + 280.521 +$BA`:n$N7QB3@-$r@)8f$G$-$k%U%C%/$N>l9g!"(B 280.522 +$B#0!?(Bfalse $B$O7QB3$N(B``$B5v2D(B''$B$r!"(B 280.523 +$BHs#0!?(Btrue$B!?Nc30$O(B``$B5qH](B''$B$r0UL#$7$^$9!#(B 280.524 + 280.525 +\subsection{Writing an external hook} 280.526 + 280.527 +\hgrc\ $B%U%!%$%k$K30It%U%C%/$r5-=R$7$?>l9g!"(B 280.528 +\hgrc\ $B%U%!%$%k$K5-=R$7$?%U%C%/$NFbMF$O!"(B 280.529 +$B%7%'%k%W%m%;%9$KEO$5$l!"(B 280.530 +$B$=$N%7%'%k%W%m%;%9$K$h$C$F2r<a$5$l$^$9!#(B 280.531 +$B$3$l$O!"%U%C%/5-=R$NK\BN$K!"(B 280.532 +$BDL>o$N%7%'%k%3%^%s%I%i%$%s$HF1MM$N9=B$$rMQ$$$k$3$H$,$G$-$k!"(B 280.533 +$B$H$$$&$3$H$r0UL#$7$F$$$^$9!#(B 280.534 + 280.535 +$B<B9T2DG=$J%U%C%/$O!"(B 280.536 +$B>o$K%j%]%8%H%j$N%k!<%H%G%#%l%/%H%jD>2<$G<B9T$5$l$^$9!#(B 280.537 + 280.538 +$B8D!9$N%U%C%/%Q%i%a!<%?$O4D6-JQ?t7PM3$GEO$5$l$^$9$,!"(B 280.539 +$B4D6-JQ?tL>$K$O!"(B 280.540 +$BBgJ8;z2=$5$l!"@\F,<-$H$7$F(B``\texttt{HG\_}''$B$,IUM?$5$l$?L>A0$,MQ$$$i$l$^$9!#(B 280.541 + 280.542 +$B%U%C%/%Q%i%a!<%?$rNc30$H$9$l$P!"(B 280.543 +Mercurial $B$O%U%C%/<B9T;~$K4D6-JQ?t$N2~JQ$r9T$$$^$;$s!#(B 280.544 +$B$=$l$>$l$K0[$J$k4D6-JQ?t@_Dj$r$7$F$$$kB?$/$N%f!<%6$K$h$C$F<B9T$5$l$k!"(B 280.545 +$BAH?%A4BN$G6&MQ$5$l$k%U%C%/$r<BAu$9$k:]$K$O!"(B 280.546 +$B$3$NCN<1$,Lr$KN)$D$G$7$g$&!#(B 280.547 +$BJ#?t%f!<%6$K$h$j<B9T$5$l$k>u672<$G$O!"(B 280.548 +$B%U%C%/$N;n834D6-$G@_Dj$5$l$F$$$?4D6-JQ?t$,!"(B 280.549 +$B<B9T;~$K@_Dj$5$l$F$$$k$3$H$r4|BT$7$F$O$$$1$^$;$s!#(B 280.550 + 280.551 +\subsection{Telling Mercurial to use an in-process hook} 280.552 + 280.553 +$B%W%m%;%9Fb%U%C%/$r(B \hgrc\ $B%U%!%$%k$G@_Dj$9$k:]$NJ8K!$O!"(B 280.554 +$B<B9T2DG=%U%C%/(B\footnote{$BLuCm(B: $B!V30It%U%C%/!W$N0U(B 280.555 +}$B@_Dj$N:]$N$=$l$H$O>/!90[$J$j$^$9(B 280.556 +$B%U%C%/@_Dj$O!"(B 280.557 +$B@\F,<-(B``\texttt{python:}''$B$KB3$-!"(B 280.558 +$B%U%C%/$H$7$F;HMQ$9$k8F$S=P$72DG=%*%V%8%'%/%H(B\footnote{$BLuCm(B: 280.559 +callable object}$B$N40A4=$>~$5$l$?L>A0$,5-=R$5$l$F$$$J$1$l$P$J$j$^$;$s!#(B 280.560 + 280.561 +$B%U%C%/Dj5A$,B8:_$9$k%b%8%e!<%k$O!"(B 280.562 +$B%U%C%/<B9T;~$K<+F0E*$K(B import $B$5$l$^$9!#(B 280.563 +$B%b%8%e!<%kL>$H(B \envar{PYTHONPATH} $B@_Dj$,@5$7$1$l$P!"(B 280.564 +$B$-$C$HF0:n$9$kH&$G$9(B\footnote{$BLuCm(B: ``just work'' $B$N%K%e%"%s%9$O!)(B}$B!#(B 280.565 + 280.566 +$B0J2<$K<($9(B \hgrc\ $B%U%!%$%k$N0zMQNc$O!"(B 280.567 +$BA0=R$7$?I=5-$K4X$9$kJ8K!$H0UL#$rNc<($7$F$$$^$9!#(B 280.568 + 280.569 +\begin{codesample2} 280.570 + [hooks] 280.571 + commit.example = python:mymodule.submodule.myhook 280.572 +\end{codesample2} 280.573 + 280.574 +Mercurial $B$,(B \texttt{commit.example} $B%U%C%/$r5/F0$9$k:]$K$O!"(B 280.575 +\texttt{mymodule.submodule} $B$r(B import $B$7!"(B 280.576 +\texttt{myhook} $B$H$$$&L>A0$N8F$S=P$72DG=%*%V%8%'%/%H$rC5$7=P$7$F5/F0$7$^$9!#(B 280.577 + 280.578 +\subsection{Writing an in-process hook} 280.579 + 280.580 +$B0J2<$K<($9:G$bC1=c$J%W%m%;%9Fb%U%C%/$O!"(B 280.581 +$B%U%C%/$H$7$F$O2?$b$7$^$;$s$,!"(B 280.582 +$B%U%C%/(B API $B$N4pK\E*$J35MW$rNc<($G$-$^$9!#(B 280.583 + 280.584 +\begin{codesample2} 280.585 + def myhook(ui, repo, **kwargs): 280.586 + pass 280.587 +\end{codesample2} 280.588 + 280.589 +Python $B%U%C%/(B\footnote{$BLuCm!'%W%m%;%9Fb%U%C%/$N0U(B}$B$N:G=i$N0z?t$O!"(B 280.590 +$B>o$K(B \pymodclass{mercurial.ui}{ui} $B%*%V%8%'%/%H$G$9!#(B 280.591 +$BBh#20z?t$O%j%]%8%H%j%*%V%8%'%/%H$G$9$,!"(B 280.592 +$B8=:_$N(B Mercurial $B$N<BAu$G$O!"(B 280.593 +$B$=$N%$%s%9%?%s%9$O>o$K(B \pymodclass{mercurial.localrepo}{localrepository} $B$G$9!#(B 280.594 +$B$3$l$i$KB3$/$=$NB>$N0z?t$O%-!<%o!<%I0z?t$H$7$FEO$5$l$^$9!#(B 280.595 +$BEO$5$l$kFbMF$O5/F0$5$l$k%U%C%/!J$N<oN`!K$K0MB8$7$^$9$,!"(B 280.596 +$B>e5-Nc$K$*$1$k(B \texttt{**kwargs} $B$N$h$&$K!"(B 280.597 +$B%-!<%o!<%I0z?t<-=q$KMn$H$79~$`(B\footnote{XXXXX: 280.598 +Python $B8GM-$NLu8l$r3NG'(B}$B$3$H$G!"(B 280.599 +$B6=L#$NL5$$0z?t$rL5;k$9$k$3$H$,$G$-$^$9!#(B 280.600 + 280.601 +\section{Some hook examples} 280.602 + 280.603 +\subsection{Writing meaningful commit messages} 280.604 + 280.605 +$BM-MQ$J%3%_%C%H%a%C%;!<%8$,Hs>o$KC;$$!"(B 280.606 +$B$H$$$&>u67$OA[A|$7Fq$$$b$N$,$"$j$^$9!#(B 280.607 +$B?^(B~\ref{ex:hook:msglen.go} $B$K<($9C1=c$J(B 280.608 +\hook{pretxncommit} $B%U%C%/$O!"(B 280.609 +$B#1#0%P%$%H$h$j$bC;$$%a%C%;!<%8$G$N%A%'%s%8%;%C%H$N%3%_%C%H$rK8$2$^$9!#(B 280.610 + 280.611 +\begin{figure}[ht] 280.612 + \interaction{hook.msglen.go} 280.613 + \caption{A hook that forbids overly short commit messages} 280.614 + \label{ex:hook:msglen.go} 280.615 +\end{figure} 280.616 + 280.617 +\subsection{Checking for trailing whitespace} 280.618 + 280.619 +$B%3%_%C%H$K4X$9$k6=L#?<$$%U%C%/$NMxMQ$O!"(B 280.620 +$Be:No$J%3!<%I$G$N<BAu$rJd=u$9$k$H$$$&$b$N$G$9!#(B 280.621 +$B4JC1$J(B``$Be:No$J%3!<%I(B''$B$NNc$H$7$F$O!"(B 280.622 +$BJQ99$,DI2C$9$k?7$7$$9T$K$O(B``$BKvHx6uGr(B''$B$,4^$^$l$F$$$F$O$J$i$J$$!"(B 280.623 +$B$H$$$&3J8@$,$"$j$^$9!#(B 280.624 +$BKvHx6uGr$H$O!"(B 280.625 +$B6uGrJ8;z$*$h$S%?%V!J(Btab$B!KJ8;z$NO"B3$,9TKv$K$"$k$3$H$r0UL#$7$^$9!#(B 280.626 +$BB?$/$N>l9g!"(B 280.627 +$BKvHx6uGr$OI,MW$NL5$$IT2D;k$N;(2;$_$?$$$J$b$N$G$9$,!"(B 280.628 +$B;~$K$OLdBj$r4^$`$3$H$+$i!"(B 280.629 +$B$=$l$i$,<h$j=|$+$l$k$3$H$rK>$_$^$9!#(B 280.630 + 280.631 +\hook{precommit} $B$H(B \hook{pretxncommit} $B$N$$$:$l$N%U%C%/$G$b!"(B 280.632 +$BKvHx6uGrLdBj$rDLCN$9$k$3$H$,2DG=$G$9!#(B 280.633 +\hook{precommit} $B%U%C%/$r;HMQ$7$?>l9g!"(B 280.634 +$B%U%C%/$O%3%_%C%HBP>]%U%!%$%k$rCN$k$3$H$,$G$-$J$$$N$G!"(B 280.635 +$B%j%]%8%H%jCf$NJQ99$5$l$?%U%!%$%kA4$F$KBP$7$FKvHx6uGr$r3NG'$7$F$7$^$$$^$9!#(B 280.636 +$B$=$&$9$k$H!"(B 280.637 +$B%U%!%$%k(B \filename{foo} $B$NJQ99$N$_$r%3%_%C%H$7$?$$>l9g$G$b!"(B 280.638 +\filename{bar} $B%U%!%$%k$,KvHx6uGr$r4^$s$G$$$?$J$i!"(B 280.639 +\hook{precommit} $B%U%C%/$G$N%A%'%C%/$O!"(B 280.640 +\filename{bar} $B$NLdBj$rM}M3$K(B \filename{foo} $B$N%3%_%C%H$rK8$2$F$7$^$$$^$9!#(B 280.641 +$B$3$l$G$O$$$1$^$;$s!#(B 280.642 + 280.643 +\hook{pretxncommit} $B%U%C%/$G<B8=$9$k>l9g!"(B 280.644 +$B%3%_%C%H$N%H%i%s%6%/%7%g%s$,40N;$9$kD>A0$^$G%A%'%C%/$,9T$o$l$^$;$s!#(B 280.645 +$B$3$N$?$a!"KvHx6uGrLdBj$N3NG'$r!"(B 280.646 +$B87L)$K%3%_%C%HBP>]$N%U%!%$%k$@$1$K9T$&$3$H$,$G$-$^$9!#(B 280.647 +$B$7$+$7!"(B 280.648 +$B%3%_%C%H%a%C%;!<%8$rBPOCE*$KF~NO$7$?8e$G$"$C$F$b!"(B 280.649 +$B%U%C%/$N<B9T$,<:GT(B\footnote{ 280.650 +$BLuCm(B: $BKvHx6uGr$,8!=P$5$l$k$3$H$G$N!V<:GT!W(B}$B$7$?>l9g!"(B 280.651 +$B%H%i%s%6%/%7%g%s$O4,$-La$5$l$F$7$^$$$^$9$N$G!"(B 280.652 +$BKvHx6uGr$r<h$j=|$$$?8e$G:F$S(B \hgcmd{commit} $B%3%^%s%I<B9T$7$?:]$K$O!"(B 280.653 +$B$b$&0lEY%3%_%C%H%a%C%;!<%8$rF~NO$9$kI,MW$,$"$j$^$9!#(B 280.654 + 280.655 +\begin{figure}[ht] 280.656 + \interaction{hook.ws.simple} 280.657 + \caption{A simple hook that checks for trailing whitespace} 280.658 + \label{ex:hook:ws.simple} 280.659 +\end{figure} 280.660 + 280.661 +$B?^(B~\ref{ex:hook:ws.simple} $B$G$O!"(B 280.662 +$BKvHx6uGr$r%A%'%C%/$9$k4JC1$J(B 280.663 +\hook{pretxncommit} $B%U%C%/$r>R2p$7$F$$$^$9!#(B 280.664 +$B$3$N%U%C%/$OC;$$$G$9$,!"Hs>o$KM-MQ$G$9!#(B 280.665 +$BJQ99$K$h$j2?$l$+$N%U%!%$%k$KBP$7$FKvHx6uGr$r4^$`9T$,DI2C$5$l$?>l9g!"(B 280.666 +$B$3$N%U%C%/$O%(%i!<%9%F!<%?%9$G=*N;$7$^$9$,!"(B 280.667 +$BITL{2w$J%U%!%$%k$d9T$NFCDj$rJd=u$9$k>pJs$r2?$iI=<($7$^$;$s(B\footnote{$BLuCm!'(B 280.668 +$B%U%C%/<B9T$N%3%^%s%I%i%$%s$+$i$o$+$k$h$&$K!"(B 280.669 +export $B=PNO!J!a(B patch $B7A<0!K$KBP$7$F(B (e)grep $B$rE,MQ$7$F$$$^$9$+$i!"(B 280.670 +$B%U%!%$%kL>$d9THV9f$KBP$7$F$O2?$iG'<1$5$l$F$$$^$;$s!#(B}$B!#(B 280.671 +$B$3$N%U%C%/$O!"(B 280.672 +$B2~JQ$5$l$F$$$J$$9T$K$OCm0U$rJ'$o$:!"(B 280.673 +$BKvHx6uGrLdBj$r;}$A9~$`9T$K$N$_Cm0U$rJ'$&!"(B 280.674 +$B$H$$$&M%$l$?FC<A$b;}$C$F$$$^$9!#(B 280.675 + 280.676 +\begin{figure}[ht] 280.677 + \interaction{hook.ws.better} 280.678 + \caption{A better trailing whitespace hook} 280.679 + \label{ex:hook:ws.better} 280.680 +\end{figure} 280.681 + 280.682 +$B?^(B~\ref{ex:hook:ws.better} $B$O@h$NNc$h$j$OJ#;($G$9$,!"(B 280.683 +$B$h$jM-MQ$J%U%C%/$NNc$r<($7$F$$$^$9(B\footnote{$BLuCm(B: 280.684 +check\_whitespace.py $B$NFbMF$,ITL@!#(B 280.685 +$B?^Cf$G%=!<%9$r(B cat $B$9$Y$-(B XXXX}$B!#(B 280.686 +$B$3$N%U%C%/$O(B unified diff $B7A<0$r2r@O$7$F!"(B 280.687 +$BKvHx6uGr$rDI2C$9$k9T$NM-L5$rH=Dj$7!"(B 280.688 +$B$=$N$h$&$J%U%!%$%k$NL>A0$H9THV9f$rI=<($7$^$9!#(B 280.689 +$B$=$l$K2C$($F$3$N%U%C%/$O!"(B 280.690 +$B%A%'%s%8%;%C%H$,KvHx6uGr$rDI2C$9$k$3$H$r8!CN$7$?>l9g!"(B 280.691 +$B<B9T$r=*N;$7$F(B Mercurial $B$K%H%i%s%6%/%7%g%s$N4,$-La$7$rEA$($kA0$K!"(B 280.692 +$B%3%_%C%H%a%C%;!<%8$rJ]B8$7$F$=$N%U%!%$%kL>$rI=<($7$^$9$N$G!"(B 280.693 +$BLdBjE@$r=$@5$7$?8e$N%3%_%C%H$N:]$K$O!"(B 280.694 +\hgcmdargs{commit}{\hgopt{commit}{-l}~\emph{filename}} 280.695 +$B$r;H$C$F%3%_%C%H%a%C%;!<%8$r:FMxMQ$9$k$3$H$,$G$-$^$9!#(B 280.696 + 280.697 +$B?^(B~\ref{ex:hook:ws.better} 280.698 +$B%U%!%$%k$+$iKvHx6uGr$r<h$j=|$/(B 280.699 +\command{perl} $B$N0l9T5-=R$NMQK!$r<($7$^$9!#(B 280.700 +$B$3$NJ}K!$O$3$3$K:F7G$9$k$KB-$k$@$1$N!"(B 280.701 +$B4J7i$5$HM-MQ@-$r;}$C$F$$$^$9(B\footnote{$BLuCm(B: 280.702 +$B%3!<%I$NI=<($,!J(BHTML $B7A<0$@$H!K#29T$KJ,3d$5$l$F$$$k(B XXXX}$B!#(B 280.703 + 280.704 +\begin{codesample2} 280.705 + perl -pi -e 's,\\s+\$,,' filename 280.706 +\end{codesample2} 280.707 + 280.708 +\section{Bundled hooks} 280.709 + 280.710 +Mercurial $B$NG[I[HG$K$O!"4v$D$+$N%U%C%/$,E:IU$5$l$F$$$^$9!#(B 280.711 +$BE:IU%U%C%/$O(B Mercurial $B%=!<%9%D%j!<$N(B 280.712 +\dirname{hgext} $B%G%#%l%/%H%j$K3JG<$5$l$F$$$^$9!#(B 280.713 +Mercurial $B$N%P%$%J%jG[I[HG$r;HMQ$7$F$$$k>l9g$K$O!"(B 280.714 +$B%Q%C%1!<%8$N%$%s%9%H!<%i!<$,(B 280.715 +Mercurial $B$r%$%s%9%H!<%k$7$?0LCV$K$"$k(B 280.716 +\dirname{hgext} $B%G%#%l%/%H%j$K3JG<$5$l$F$$$^$9!#(B 280.717 + 280.718 +\subsection{\hgext{acl}---access control for parts of a repository} 280.719 + 280.720 +\hgext{acl} $B3HD%$K$h$j!"(B 280.721 +$B%M%C%H%o!<%/>e$N%5!<%P$KBP$7$F%A%'%s%8%;%C%H$r(B 280.722 +push $B2DG=$J1s3V%f!<%6$r@)8B$9$k$3$H$,$G$-$^$9!#(B 280.723 +$B%j%]%8%H%j$N0lIt!JL^O@A4BN$b!K$rJ]8n$9$k$3$H$,$G$-$^$9$N$G!"(B 280.724 +$BFCDj$N%f!<%6$KBP$7$F$O!"(B 280.725 +$BJ]8n$5$l$?ItJ,$K1F6A$r5Z$\$5$J$$%A%'%s%8%;%C%H$N$_$N(B push $B$,2DG=$G$9!#(B 280.726 + 280.727 +$B$3$N3HD%$O(B 280.728 +push $BBP>]$N%A%'%s%8%;%C%H$r%3%_%C%H$7$?%f!<%6(B\emph{$B$G$O$J$/(B}$B!"(B 280.729 +push $B$r<B;\$9$k%f!<%6$N?H85>pJs$r85$K%"%/%;%9@)8f$r9T$$$^$9!#(B 280.730 +$B1s3V%f!<%6$rG'>Z$9$k4F6X!J(Block-downed$B!K%5!<%P$,B8:_$9$k4D6-$G!"(B 280.731 +$BFCDj$N%f!<%6$@$1$,4F6X%5!<%P$X$N%A%'%s%8%;%C%H$N(B 280.732 +push $B$,5v$5$l$k$3$H$r3N<B$K$7$?$$>l9g$G$J$1$l$P!"(B 280.733 +$B$3$N%U%C%/$N;HMQ$O0UL#$,$"$j$^$;$s!#(B 280.734 + 280.735 +\subsubsection{Configuring the \hook{acl} hook} 280.736 + 280.737 +$B;}$A9~$^$l$k%A%'%s%8%;%C%H$r4IM}$9$k$?$a$K!"(B 280.738 +\hgext{acl} $B%U%C%/$O(B 280.739 +\hook{pretxnchangegroup} $B%U%C%/$H$7$FMQ$$$^$9!#(B 280.740 +\hook{pretxnchangegroup} $B%U%C%/$H$7$FMQ$$$i$l$k$3$H$G!"(B 280.741 +$B30Mh$N%A%'%s%8%;%C%H$K$h$jJQ99$5$l$k%U%!%$%k$rCN$k$3$H$,$G$-$k$?$a!"(B 280.742 +``$B6X;_$5$l$F$$$k(B''$B%U%!%$%k$X$NJQ99$r9T$&%A%'%s%8%;%C%H72$KBP$7$F$O!"(B 280.743 +$B%H%i%s%6%/%7%g%s$N4,$-La$7$,9T$o$l$^$9!#(B 280.744 + 280.745 +\begin{codesample2} 280.746 + [hooks] 280.747 + pretxnchangegroup.acl = python:hgext.acl.hook 280.748 +\end{codesample2} 280.749 + 280.750 +\hgext{acl} $B3HD%$O#3$D$N%;%/%7%g%s$G@_Dj$5$l$^$9!#(B 280.751 + 280.752 +\rcsection{acl} $B%;%/%7%g%s$K$O!"(B 280.753 +$B%U%C%/$,Cm0U$rJ'$&$Y$-30Mh%A%'%s%8%;%C%H$N=P=j$rNs5s$9$k(B 280.754 +\rcitem{acl}{sources} $B%(%s%H%j$@$1$,5-=R$5$l$^$9!#(B 280.755 +$BDL>o$O$3$N%;%/%7%g%s$r@_Dj$9$kI,MW$O$"$j$^$;$s!#(B 280.756 + 280.757 +\begin{description} 280.758 +\item[\rcitem{acl}{serve}] $B%j%b!<%H%j%]%8%H%j$+$i$N(B http $B$J$$$7(B ssh 280.759 + $B7PM3$N%A%'%s%8%;%C%H$KBP$7$F@)8f$r9T$$$^$9!#(B 280.760 + $B$3$l$O(B \rcitem{acl}{sources} $B$N4{DjCM$G!"(B 280.761 + $BDL>o$O$3$N@_Dj9`L\$KBP$7$F9T$&M#0l$N@_Dj$G$9!#(B 280.762 + 280.763 +\item[\rcitem{acl}{pull}] $B%m!<%+%k%j%]%8%H%j$+$i$N(B 280.764 + pull $B7PM3$N%A%'%s%8%;%C%H$KBP$7$F@)8f$r9T$$$^$9!#(B 280.765 + 280.766 +\item[\rcitem{acl}{push}] $B%m!<%+%k%j%]%8%H%j$+$i$N(B 280.767 + push $B7PM3$N%A%'%s%8%;%C%H$KBP$7$F@)8f$r9T$$$^$9!#(B 280.768 + 280.769 +\item[\rcitem{acl}{bundle}] $BB>$N%j%]%8%H%j$+$i$N(B 280.770 + bundle $B7PM3$N%A%'%s%8%;%C%H$KBP$7$F@)8f$r9T$$$^$9!#(B 280.771 + 280.772 +\end{description} 280.773 + 280.774 +\rcsection{acl.allow} $B%;%/%7%g%s$O!"(B 280.775 +$B%j%]%8%H%j$X$N%A%'%s%8%;%C%HDI2C$r5v2D$5$l$F$$$k%f!<%6$r7hDj$7$^$9!#(B 280.776 +$B$3$N%;%/%7%g%s$,B8:_$7$J$$>l9g!"(B 280.777 +$BL@<(E*$K6X;_$5$l$F$$$J$$%f!<%6$O!"(B 280.778 +$BC/$G$b%A%'%s%8%;%C%H$NDI2C$r$G$-$^$9!#(B 280.779 +$B$3$N%;%/%7%g%s$,B8:_$9$k>l9g!"(B 280.780 +$BL@<(E*$K5v2D$5$l$F$$$J$$%f!<%6$O!"(B 280.781 +$BC/$b%A%'%s%8%;%C%H$NDI2C$,$G$-$^$;$s!J(B 280.782 +$B$G$9$N$G!"$3$N%;%/%7%g%s$r6u$K$7$?>l9g!"(B 280.783 +$BA4$F$N%f!<%6$,%A%'%s%8%;%C%H$NDI2C$r6X;_$5$l$^$9!K!#(B 280.784 + 280.785 +\rcsection{acl.deny} $B%;%/%7%g%s$O!"(B 280.786 +$B%j%]%8%H%j$X$N%A%'%s%8%;%C%HDI2C$r6X;_$5$l$F$$$k%f!<%6$r7hDj$7$^$9!#(B 280.787 +$B$3$N%;%/%7%g%s$,5-=R$5$l$J$$>l9g!"(B 280.788 +$BA4$F$N%f!<%6$O%A%'%s%8%;%C%H$NDI2C$r5v2D$5$l$^$9(B\footnote{$BLuCm!'(B 280.789 +$B86J8$O!V(Bno users are denied$B!W$G$9$,!"(B 280.790 +acl.py $B$N<BAu>e$O!V6X;_$7$J$$!W$H!V5v2D!W$OEy2A$G$9!#(B}$B!#(B 280.791 + 280.792 +\rcsection{acl.allow} $B$*$h$S(B \rcsection{acl.deny} 280.793 +$B%;%/%7%g%s$NJ8K!$OF10l$G$9!#(B 280.794 +$B3F%(%s%H%j$N:8JU$O!"(B 280.795 +$B%j%]%8%H%j%k!<%HAjBP$G$N%U%!%$%k$J$$$7%G%#%l%/%H%j$N%^%C%A%s%0%Q%?!<%s$G!"(B 280.796 +$B1&JU$O%f!<%6L>$H$J$C$F$$$^$9!#(B 280.797 + 280.798 +$B0J2<$NNc$G$O!"(B 280.799 +$B%f!<%6(B \texttt{docwriter} $B$,%j%]%8%H%j$N(B 280.800 +\dirname{docs} $BG[2<$KBP$9$kJQ99$N(B 280.801 +push $B$N$_$,5v2D$5$l$F$$$k0lJ}$G!"(B 280.802 +$B%f!<%6(B \texttt{intern} $B$O(B 280.803 +\dirname{source/sensitive} 280.804 +$B0J30$NG$0U$N%G%#%l%/%H%j!&%U%!%$%k$KBP$9$kJQ99$r(B 280.805 +push $B2DG=$G$9(B 280.806 +\footnote{$BLuCm!'(B 280.807 +$B@_Dj$NH=Dj=g=x$O(B (1) $B6X;_(B (2) $B5v2D$N=g=x$G9T$o$l!"(B 280.808 +(1) $B6X;_@_Dj$,$"$j!"Ev3:%f!<%6$N%"%/%;%9$,L@<(E*$K6X;_$5$l$F$$$k>l9g$H!"(B 280.809 +(2) $B5v2D@_Dj$,$"$j!"Ev3:%f!<%6$N%"%/%;%9$,L@<(E*$K5v2D$5$l$F!V$$$J$$!W>l9g$K!"(B 280.810 +$BIT@5%"%/%;%9$H$_$J$5$l!"(B 280.811 +$B$=$l0J30$N>l9g$O%"%/%;%9$,5v2D$5$l$^$9!#(B}$B!#(B 280.812 + 280.813 +\begin{codesample2} 280.814 + [acl.allow] 280.815 + docs/** = docwriter 280.816 + 280.817 + [acl.deny] 280.818 + source/sensitive/** = intern 280.819 +\end{codesample2} 280.820 + 280.821 +\subsubsection{Testing and troubleshooting} 280.822 + 280.823 +\hgext{acl} $B%U%C%/$r;n$7$F$_$?$$>l9g!"(B 280.824 +Mercurial $B$N%G%P%C%0=PNO$rM-8z$K$7$F<B9T$7$^$7$g$&!#(B 280.825 +\hggopt{--debug} $B%*%W%7%g%s$r;XDj$7Fq$$!J$"$k$$$OIT2DG=$J!K(B 280.826 +$B%5!<%P>e$G<B9T$9$k$3$H$b$"$k$G$7$g$&$+$i!"(B 280.827 +$B%5!<%PB&$N(B \hgrc $B%U%!%$%k$G%G%P%C%0=PNO$rM-8z2=$G$-$k$3$H$r$*K:$l$J$/!#(B 280.828 + 280.829 +\begin{codesample2} 280.830 + [ui] 280.831 + debug = true 280.832 +\end{codesample2} 280.833 + 280.834 +$B$3$l$rM-8z$K$9$k$3$H$G!"(B 280.835 +$BEv3:%f!<%6$K$h$k(B push 280.836 +$B$r5v2D!&6X;_$9$kM}M3$rH=CG$9$k$KB-$k>pJs$rI=<($9$k$3$H$G$7$g$&!#(B 280.837 + 280.838 +\subsection{\hgext{bugzilla}---integration with Bugzilla} 280.839 + 280.840 +\hgext{bugzilla} $B3HD%$O!"(B 280.841 +$B%3%_%C%H%a%C%;!<%8$K%P%0(BID$B$r8!CN$7$?:]$K(B 280.842 +Bugzilla $B%P%0$X$N%3%a%s%HDI2C$r9T$$$^$9!#(B 280.843 +$B$3$N%U%C%/$r6&M-%5!<%P$K@_Dj$9$k$3$H$G!"(B 280.844 +$B$3$N%5!<%P$X$N%j%b!<%H$+$i$NJQ99EAGE$N:]$K$O!"(B 280.845 +$B>o$K$3$N%U%C%/$,<B9T$5$l$^$9!#(B 280.846 + 280.847 +$B$3$N%U%C%/$O(B Bugzilla $B%P%0$K!"(B 280.848 +$B0J2<$N$h$&$J%3%a%s%H$rDI2C$7$^$9(B 280.849 +$B!JJ}K!$O8e=R$7$^$9$,!"%3%a%s%HFbMF$OJQ99$G$-$^$9!K!#(B 280.850 + 280.851 +\begin{codesample2} 280.852 + Changeset aad8b264143a, made by Joe User <joe.user@domain.com> in 280.853 + the frobnitz repository, refers to this bug. 280.854 + 280.855 + For complete details, see 280.856 + http://hg.domain.com/frobnitz?cmd=changeset;node=aad8b264143a 280.857 + 280.858 + Changeset description: 280.859 + Fix bug 10483 by guarding against some NULL pointers 280.860 +\end{codesample2} 280.861 + 280.862 +$B$3$N%U%C%/$N2ACM$O!"(B 280.863 +$B%A%'%s%8%;%C%H!J$N%3%_%C%H%a%C%;!<%8!K$,%P%0$r;2>H$7$F$$$k:]$K!"(B 280.864 +$B%P%0>pJs$r99?7$9$k<j=g$r<+F02=$9$kE@$K$"$j$^$9!#(B 280.865 +$B%U%C%/$N@_Dj$rE,@Z$K9T$&$3$H$G!"(B 280.866 +Bugzilla $B%P%0$+$i;2>H85%A%'%s%8%;%C%H$X$H!"(B 280.867 +$B0lD>@~$KE~C#$9$k$3$H$,MF0W$K$J$j$^$9!#(B 280.868 + 280.869 +$B$3$N%U%C%/$N<BAu$rB-3]$j$K$7$F!"(B 280.870 +$B$h$j9bEY$J(B Bugzilla $B$H$NE}9g$r?^$k$3$H$b2DG=$G$9!#(B 280.871 +$BNc$($P(B: 280.872 + 280.873 +\begin{itemize} 280.874 +\item $B%5!<%P$K(B push $B$5$l$kA4$F$N%A%'%s%8%;%C%H$K$O!"(B 280.875 + $B%3%_%C%H%a%C%;!<%8$KE,@Z$J%P%0(B~ID$B$,4^$^$l$F$$$k$3$H$rMW5a(B: 280.876 + $B$3$N>l9g!"(B\hook{pretxncommit} 280.877 + $B%U%C%/$KEv3:>r7o$r8!>Z$9$k%U%C%/$r@_Dj$9$k$N$,NI$$$G$7$g$&!#(B 280.878 + $B%3%_%C%H%a%C%;!<%8$,%P%0(B~ID$B$r4^$^$J$$%A%'%s%8%;%C%H$O!"(B 280.879 + $B%U%C%/$K$h$C$F5qH]$5$l$k$h$&$K$J$j$^$9!#(B 280.880 + 280.881 +\item $B?75,$N%A%'%s%8%;%C%H$KBP$7$F!"(B 280.882 + $B4JC1$J%3%a%s%H$NIUM?$HF1MM$K!"(B 280.883 + $B%P%0$N(B\emph{$B>uBV(B}$B$N<+F0E*$JJQ99$r5v2D(B: 280.884 + $BNc$($P!"(B``fixed bug 31337'' $B$H$$$&%3%_%C%H%a%C%;!<%8$NJ8;zNs$r!"(B 280.885 + $B%P%0(B 31337 $B$N>uBV$N(B ``requires testing'' $B$X$N99?7!"(B 280.886 + $B$HG'<1$5$;$k!"$H$$$C$?3HD%$b9M$($i$l$^$9!#(B 280.887 + 280.888 +\end{itemize} 280.889 + 280.890 +\subsubsection{Configuring the \hook{bugzilla} hook} 280.891 +\label{sec:hook:bugzilla:config} 280.892 + 280.893 +\hook{bugzilla} $B%U%C%/$O!"(B 280.894 +$B%5!<%PB&$N(B \hgrc\ $BCf$G(B \hook{incoming} $B%U%C%/$H$7$F@_Dj$7$J$1$l$P$J$j$^$;$s!#(B 280.895 + 280.896 +\begin{codesample2} 280.897 + [hooks] 280.898 + incoming.bugzilla = python:hgext.bugzilla.hook 280.899 +\end{codesample2} 280.900 + 280.901 +$B5!G=FC2=$5$l$?%U%C%/$N@-<A$H!"(B 280.902 +Bugzilla $B$,85!9$3$N<o$NE}9g$rG0F,$KCV$$$F$$$J$$$3$H$+$i!"(B 280.903 +$B$3$N%U%C%/$N@_Dj$O2?$+$HJ#;($K$J$j$^$9!#(B 280.904 + 280.905 +$B%U%C%/$N@_Dj$K@hN)$C$F!"(B 280.906 +$B%U%C%/$,<B9T$5$l$k%[%9%H!J72!K$KBP$7$F!"(B 280.907 +MySQL $B$N(B Python $B%P%$%s%G%#%s%0$r%$%s%9%H!<%k$7$F$/$@$5$$!#(B 280.908 +$BBP>]%[%9%H$K$*$$$F%P%$%J%j%Q%C%1!<%8$,8+Ev$?$i$J$$>l9g!"(B 280.909 +\cite{web:mysql-python} $B$+$i%@%&%s%m!<%I$G$-$^$9!#(B 280.910 + 280.911 +$B%U%C%/$N@_Dj$O!"(B 280.912 + \hgrc\ $B%U%!%$%k$N(B 280.913 +\rcsection{bugzilla} $B%;%/%7%g%s$K5-=R$5$l$^$9!#(B 280.914 + 280.915 +\begin{description} 280.916 + 280.917 +\item[\rcitem{bugzilla}{version}] $B%5!<%P$K%$%s%9%H!<%k$5$l$F$$$k(B 280.918 + Bugzilla $B$N%P!<%8%g%s!#(B 280.919 + Bugzilla $B$N%G!<%?%Y!<%9%9%-!<%^$O;~@^JQ99$5$l$^$9$N$G!"(B 280.920 + $B$I$N%9%-!<%^$,;HMQ$5$l$F$$$k$N$+$r87L)$KCN$C$F$$$kI,MW$,$"$j$^$9!#(B 280.921 + $B:#$N$H$3$m!"%5%]!<%HBP>]$O(B \texttt{2.16} $B$N$_$G$9!#(B 280.922 + 280.923 +\item[\rcitem{bugzilla}{host}] Bugzilla $B$N%G!<%?$,3JG<$5$l$F$$$k(B 280.924 + MySQL $B%5!<%P$,2TF0$7$F$$$k%[%9%HL>!#(B 280.925 + MySQL $B%5!<%P$O!"(B\hook{bugzilla} $B%U%C%/$,<B9T$5$l$kA4$F$N%[%9%H$KBP$7$F!"(B 280.926 + $B@\B3$r5v2D$7$F$$$kI,MW$,$"$j$^$9!#(B 280.927 + 280.928 +\item[\rcitem{bugzilla}{user}] MySQL $B%5!<%P$X$N@\B3;~$K;HMQ$9$k%f!<%6L>!#(B 280.929 + MySQL $B%5!<%P$O!"(B\hook{bugzilla} $B%U%C%/$,<B9T$5$l$kA4$F$N%[%9%H$KBP$7$F!"(B 280.930 + $B$3$N%f!<%6L>$G$N@\B3$r5v2D$7$F$$$kI,MW$,$"$j$^$9!#(B 280.931 + $B$3$N%f!<%6$O!"(B 280.932 + Bugzilla $B$,;HMQ$9$k%F!<%V%k$KBP$7$FFI$_<h$j!&JQ99$NN>J}$N8"8B$,I,MW$G$9!#(B 280.933 + $B$3$N9`L\$N4{DjCM$O!"(B 280.934 + MySQL $B%5!<%P$K$*$1$k(B Bugzilla $B$NI8=`E*$J%f!<%6L>$G$"$k(B 280.935 + \texttt{bugs} $B$G$9!#(B 280.936 + 280.937 +\item[\rcitem{bugzilla}{password}] $B>e5-%f!<%6$N(B 280.938 + MySQL $B%5!<%P$K$*$1$k%Q%9%o!<%I!#(B 280.939 + $B$3$NCM$OJ?J8$G3JG<$5$l$k$?$a!"(B 280.940 + $B8"8B$r;}$?$J$$%f!<%6$,$3$N>pJs$N=q$+$l$?(B \hgrc 280.941 + $B%U%!%$%k$rGA$/$3$H$,L5$$$h$&$K$7$J$1$l$P$J$j$^$;$s!#(B 280.942 + 280.943 +\item[\rcitem{bugzilla}{db}] MySQL $B%5!<%P$K$*$1$k(B 280.944 + Bugzilla $B%G!<%?%Y!<%9$NL>A0!#(B 280.945 + $B$3$N9`L\$N4{DjCM$O!"(B 280.946 + MySQL $B%5!<%P$K$*$1$k(B Bugzilla $B$NI8=`E*$J%G!<%?%Y!<%9L>$G$"$k(B 280.947 + \texttt{bugs} $B$G$9!#(B 280.948 + 280.949 +\item[\rcitem{bugzilla}{notify}] $B%U%C%/$K$h$k%P%0$X$N%3%a%s%HIUM?;~$K!"(B 280.950 + Bugzilla $B$K$h$k9XFI<T$X$NEE;R%a!<%kDLCN$r<B;\$7$?$$>l9g!"(B 280.951 + $B%G!<%?%Y!<%9$r99?7$9$kKh$K%3%^%s%I$r<B9T$5$;$kI,MW$,$"$j$^$9!#(B 280.952 + $B<B9T$9$k%3%^%s%I$O(B Bugzilla $B$N%$%s%9%H!<%k>l=j$K0MB8$7$^$9$,!"(B 280.953 + \dirname{/var/www/html/bugzilla} $B$K%$%s%9%H!<%k$7$?$H$9$k$H!"(B 280.954 + $BDL>o$O0J2<$N$h$&$K$J$j$^$9!#(B 280.955 + 280.956 + \begin{codesample4} 280.957 + cd /var/www/html/bugzilla && ./processmail %s nobody@nowhere.com 280.958 + \end{codesample4} 280.959 + 280.960 + Bugzilla $B$N(B \texttt{processmail} $B%W%m%0%i%`$O!"(B 280.961 + $B%P%0(B~ID$B!J%U%C%/$K$h$j(B ``\texttt{\%s}'' $B$,(B $B%P%0(B~ID $B$KCV49$5$l$^$9!K$H!"(B 280.962 + $BEE;R%a!<%k%"%I%l%9$rI,MW$H$7$^$9!#(B 280.963 + $B$3$N%W%m%0%i%`$O!"(B 280.964 + $B<B9T;~%G%#%l%/%H%j$X$N%U%!%$%k=q$-=P$7$N8"8B$bI,MW$H$7$^$9!#(B 280.965 + Bugzilla $B$H%U%C%/$,F1$8%5!<%P>e$K%$%s%9%H!<%k$5$l$F$$$J$$>l9g!"(B 280.966 + Bugzilla $B$,%$%s%9%H!<%k$5$l$F$$$k%5!<%P>e$G(B 280.967 + \texttt{processmail} $B$r5/F0$9$kJ}K!$r8+$D$1=P$9I,MW$,$"$j$^$9!#(B 280.968 + 280.969 +\end{description} 280.970 + 280.971 +\subsubsection{Mapping committer names to Bugzilla user names} 280.972 + 280.973 +$B4{Dj>uBV$N(B \hgext{bugzilla} $B%U%C%/$O!"(B 280.974 +$B%A%'%s%8%;%C%H$r%3%_%C%H$7$?%f!<%6$NEE;R%a!<%k%"%I%l%9$r!"(B 280.975 +$B%P%0$N99?7$r9T$&(B Bugzilla $B%f!<%6L>$H$7$F;HMQ$9$k$3$H$r;n$_$^$9!#(B 280.976 +$B$3$N5sF0$,>u67$KB($5$J$$>l9g!"(B 280.977 +\rcsection{usermap} $B%;%/%7%g%s$r;HMQ$7$F!"(B 280.978 +$B%A%'%s%8%;%C%H$r%3%_%C%H$7$?%f!<%6$NEE;R%a!<%k%"%I%l%9$r(B 280.979 +Bugzilla $B$N%f!<%6L>$KJQ49$9$k$3$H$,$G$-$^$9!#(B 280.980 + 280.981 +\rcsection{usermap} $B%;%/%7%g%s$N8D!9$NMWAG$O!"(B 280.982 +$B:8JU$KEE;R%a!<%k%"%I%l%9!"(B 280.983 +$B1&JU$K(B Bugzilla $B%f!<%6L>$rJ];}$7$^$9!#(B 280.984 + 280.985 +\begin{codesample2} 280.986 + [usermap] 280.987 + jane.user@example.com = jane 280.988 +\end{codesample2} 280.989 + 280.990 +$BDL>o$N(B \hgrc $B%U%!%$%k$K(B 280.991 +\rcsection{usermap} $B%G!<%?$rD>@\J];}$9$k$3$H$b$G$-$^$9$,!"(B 280.992 +\hgext{bugzilla} $B%U%C%/$K30It$N(B 280.993 +\filename{usermap} $B%U%!%$%k$+$i>pJs$rFI$_9~$`$h$&$K;X<($9$k$3$H$b$G$-$^$9!#(B 280.994 +$B8e<T$N>l9g!"Nc$($P(B \filename{usermap} $B%G!<%?$=$N$b$N$r!"(B 280.995 +$BMxMQ<T$,2~JQ2DG=$J%j%]%8%H%j$K3JG<$9$k$3$H$b$G$-$^$9!#(B 280.996 +$B$=$&$9$k$3$H$G!"(B 280.997 +$BMxMQ<T<+?H$,(B 280.998 +\rcitem{bugzilla}{usermap} $BCf$N3F<+$NMWAG$rJ]<i$9$k$3$H$,$G$-$^$9!#(B 280.999 +$B$3$N>l9g$N(B \hgrc\ $B%U%!%$%k$O0J2<$N$h$&$K5-=R$5$l$^$9!#(B 280.1000 + 280.1001 +\begin{codesample2} 280.1002 + # $BDL>o$N(B hgrc $B%U%!%$%k$O(B usermap $B30It%U%!%$%k$r;2>H(B 280.1003 + [bugzilla] 280.1004 + usermap = /home/hg/repos/userdata/bugzilla-usermap.conf 280.1005 +\end{codesample2} 280.1006 + 280.1007 +\filename{usermap} $B$,;2>H$9$k%U%!%$%k$NFbMF$O!"(B 280.1008 +$B0J2<$N$h$&$K$J$j$^$9!#(B 280.1009 + 280.1010 +\begin{codesample2} 280.1011 + # bugzilla-usermap.conf $B$O(B hg $B%j%]%8%H%jFb$KG[CV(B 280.1012 + [usermap] 280.1013 + stephanie@example.com = steph 280.1014 +\end{codesample2} 280.1015 + 280.1016 +\subsubsection{Configuring the text that gets added to a bug} 280.1017 + 280.1018 +Mercurial $B$N%F%s%W%l!<%H7A<0$G5-=R$9$k$3$H$G!"(B 280.1019 +\hgext{bugzilla} $B%U%C%/$,DI2C$9$k%3%a%s%H$NFbMF$r@_Dj$9$k$3$H$,2DG=$G$9!#(B 280.1020 +$B4v$D$+$N!J(B\rcsection{bugzilla} $B%;%/%7%g%s$K$*$1$k!K(B \hgrc\ $BMWAG$K$h$j!"(B 280.1021 +$B!J%F%s%W%l!<%H$N!)!K?6$kIq$$$r@)8f$9$k$3$H$,$G$-$^$9!#(B 280.1022 + 280.1023 +\begin{description} 280.1024 +\item[\texttt{strip}] URL $B$K$*$1$kItJ,%Q%9L>!J(Ba 280.1025 + partial path for a URL$B!K$r@8@.$9$k:]$K!"(B 280.1026 + $B%j%]%8%H%j$K$*$1$k%Q%9L>$+$i<h$j=|$/%Q%9MWAG$N?t$r;XDj$7$^$9!#(B 280.1027 + $BNc$($P!"%5!<%P$K$*$1$k%j%]%8%H%j72$,(B \dirname{/home/hg/repos} $BG[2<$K$"$j!"(B 280.1028 + \dirname{/home/hg/repos/app/tests} $B$N%j%]%8%H%j$rBP>]$H$9$k>l9g!"(B 280.1029 + \texttt{strip} $B$r(B \texttt{4} $B$H$9$k$3$H$G!"(B 280.1030 + \dirname{app/tests} $B$H$$$&ItJ,%Q%9$rF@$k$3$H$,$G$-$^$9!#(B 280.1031 + \hgext{bugzilla} $B%U%C%/$O$3$NItJ,%Q%9L>$r!"(B 280.1032 + $B%F%s%W%l!<%H$NE,MQ$N:]$K(B \texttt{webroot} $B$H$$$&L>A0$GMxMQ2DG=$K$7$^$9!#(B 280.1033 + 280.1034 +\item[\texttt{template}] $B;HMQ$9$k%F%s%W%l!<%H%F%-%9%H$r;XDj$7$^$9!#(B 280.1035 + $BDL>o$N%A%'%s%8%;%C%H4XO"$NCV49$K2C$($F!"(B 280.1036 + $B$3$N%F%s%W%l!<%H$G$O(B \texttt{hgweb}$B!J8e=RNc$K$"$k$h$&$K(B 280.1037 + \texttt{hgweb} $B9`L\$G@_Dj$7$^$9!K(B 280.1038 + $B$*$h$S(B \texttt{webroot}$B!JA0=R$N$h$&$K(B 280.1039 + \texttt{strip} $B$K$h$C$F@8@.$5$l$k%Q%9$G$9!K$,;HMQ$G$-$^$9!#(B 280.1040 + 280.1041 +\end{description} 280.1042 + 280.1043 +$B$3$l$i$K2C$($F!"(B 280.1044 + \hgrc\ $B%U%!%$%k$N(B \rcsection{web} $B%;%/%7%g%s$K(B 280.1045 +\rcitem{web}{baseurl} $B9`L\$rDI2C$9$k$3$H$,$G$-$^$9!#(B 280.1046 +Bugzilla $B%3%a%s%H$+$i$N%A%'%s%8%;%C%H;2>H$K;HMQ$9$k%j%s%/$N(B 280.1047 +URL $B$r9=C[$9$k:]$N4pDlJ8;zNs$H$7$F(B 280.1048 +\hgext{bugzilla} $B%U%C%/$O%F%s%W%l!<%HE83+$N:]$K$3$NCM$r;HMQ$7$^$9!#(B 280.1049 +$BNc$($P!'(B 280.1050 + 280.1051 +\begin{codesample2} 280.1052 + [web] 280.1053 + baseurl = http://hg.domain.com/ 280.1054 +\end{codesample2} 280.1055 + 280.1056 +\hgext{bugzilla} $B%U%C%/$N@_DjNc$r0J2<$K<($7$^$9(B\footnote{$BLuCm(B: 280.1057 +$B86J8$N(B ``\\n'' $B$,@5$7$/5!G=$7$F$$$J$$$?$a!"(B 280.1058 +$BNc<($N%l%$%"%&%H$,Mp$l$F$$$k(B}$B!#(B 280.1059 + 280.1060 +\begin{codesample2} 280.1061 + [bugzilla] 280.1062 + host = bugzilla.example.com 280.1063 + password = mypassword 280.1064 + version = 2.16 280.1065 + # $B%5!<%PB&%j%]%8%H%j$O(B /home/hg/repos $B$K$"$k$?$a!"(B 280.1066 + # $BKAF,$N(B 4 $B$D$N%;%Q%l!<%?(B\footnote{$BLuCm(B: $B%Q%96h@Z$j(B ``/''}$B$r=|30(B 280.1067 + strip = 4 280.1068 + hgweb = http://hg.example.com/ 280.1069 + usermap = /home/hg/repos/notify/bugzilla.conf 280.1070 + template = Changeset \{node|short\}, made by \{author\} in the \{webroot\} 280.1071 + repo, refers to this bug.\\nFor complete details, see 280.1072 + \{hgweb\}\{webroot\}?cmd=changeset;node=\{node|short\}\\nChangeset 280.1073 + description:\\n\\t\{desc|tabindent\} 280.1074 +\end{codesample2} 280.1075 + 280.1076 +\subsubsection{Testing and troubleshooting} 280.1077 + 280.1078 +\hgext{bugzilla} $B%U%C%/@_Dj$K$*$$$F:G$bNI$/$"$kLdBj$O!"(B 280.1079 +Bugzilla $B$N(B \filename{processmail} $B%9%/%j%W%H<B9T$K4X$9$k$b$N$H!"(B 280.1080 +$B%3%_%C%H%f!<%6L>$+$i(B Bugzilla $B%f!<%6L>$X$NJQ49$K4X$9$k$b$N$G$9!#(B 280.1081 + 280.1082 +$B@h$N(B \ref{sec:hook:bugzilla:config}~$B@a$+$i$N@bL@$G=R$Y$?$h$&$K!"(B 280.1083 +Mercurial $B%W%m%;%9$r%5!<%P$G<B9T$9$k%f!<%6$,!"(B 280.1084 +\filename{processmail} $B%9%/%j%W%H$r<B9T$9$k%f!<%6$G$b$"$j$^$9!#(B 280.1085 +\filename{processmail} $B%9%/%j%W%H$O(B 280.1086 +Bugzilla $B$,@_Dj%G%#%l%/%H%jCf$N%U%!%$%k$K2?$i$+$N>pJs$r=q$-=P$97@5!$H$J$k$?$a!"(B 280.1087 +$BDL>o(B Bugzilla $B$N@_Dj%U%!%$%k$O(B 280.1088 +Bugzilla $B$,F0:n$9$k%&%'%V%5!<%P$N<B9T<T$N8"8B2<$K$"$j$^$9!#(B 280.1089 + 280.1090 +\filename{processmail} $B<B9T$N:]$K$O!"(B 280.1091 +\command{sudo} $B%3%^%s%I$rMxMQ$9$k$J$I$7$FE,@Z$J%f!<%68"8B$G<B9T$7$^$7$g$&!#(B 280.1092 +\filename{sudoers} $B%U%#%k$N@_DjNc$r0J2<$K<($7$^$9!#(B 280.1093 + 280.1094 +\begin{codesample2} 280.1095 + hg_user = (httpd_user) NOPASSWD: /var/www/html/bugzilla/processmail-wrapper %s 280.1096 +\end{codesample2} 280.1097 + 280.1098 +$B$3$NNc$G$O!"(B\texttt{hg\_user} $B%f!<%6$O!"(B 280.1099 +\filename{processmail-wrapper} $B%W%m%0%i%`$r(B 280.1100 +\texttt{httpd\_user} $B%f!<%6$N8"8B2<$G<B9T$9$k$3$H$,$G$-$^$9!#(B 280.1101 + 280.1102 +\filename{processmail} $B%W%m%0%i%`$O(B 280.1103 +Bugzilla $B$r%$%s%9%H!<%k$7$?%G%#%l%/%H%jD>2<$G$N<B9T$,I,MW$G$9$,!"(B 280.1104 +\filename{sudoers} $B%U%!%$%k$K$O$=$N$h$&$J@)Ls$r5-=R$9$k$3$H$,$G$-$J$$$N$G!"(B 280.1105 +$B$3$N$h$&$J4V@\<B9T$N$?$a$N%i%C%Q!<%9%/%j%W%H$,I,MW$H$J$j$^$9!#(B 280.1106 +$B%i%C%Q!<%9%/%j%W%H$NFbMF$O0J2<$N$h$&$K4JC1$J$b$N$G$9!#(B 280.1107 + 280.1108 +\begin{codesample2} 280.1109 + #!/bin/sh 280.1110 + cd `dirname $0` && ./processmail "$1" nobody@example.com 280.1111 +\end{codesample2} 280.1112 + 280.1113 +\filename{processmail} 280.1114 +$B$K;XDj$9$kEE;R%a!<%k%"%I%l%9$O!"(B 280.1115 +$B$I$N$h$&$J$b$N$G$b9=$$$^$;$s!#(B 280.1116 + 280.1117 +\rcsection{usermap} $B$,@5$7$/@_Dj$5$l$F$$$J$$>l9g!"(B 280.1118 +$B%A%'%s%8%;%C%H$r%5!<%P$K(B push $B$7$?:]$K(B 280.1119 +\hgext{bugzilla} $B%U%C%/$K$h$j%(%i!<%a%C%;!<%8$,I=<($5$l$^$9!#(B 280.1120 +$B%(%i!<%a%C%;!<%8$O0J2<$N$h$&$J$b$N$G$9!#(B 280.1121 + 280.1122 +\begin{codesample2} 280.1123 + cannot find bugzilla user id for john.q.public@example.com 280.1124 +\end{codesample2} 280.1125 + 280.1126 +$B$3$N%a%C%;!<%8$O!"(B 280.1127 +$B%3%_%C%H$7$?%f!<%6$NEE;R%a!<%k%"%I%l%9(B 280.1128 +\texttt{john.q.public@example.com} 280.1129 +$B$,M-8z$J(B Bugzilla $B%f!<%6L>$G$O$J$$$+!"(B 280.1130 +\texttt{john.q.public@example.com} 280.1131 +$B$rM-8z$J(B Bugzilla $B%f!<%6L>$KJQ49$9$k%(%s%H%j$,(B 280.1132 +rcsection{usermap} $B$K5-=R$5$l$F$$$J$$$3$H$r0UL#$7$^$9!#(B 280.1133 + 280.1134 +\subsection{\hgext{notify}---send email notifications} 280.1135 + 280.1136 +Mercurial $B$NAH$_9~$_%&%'%V%5!<%P$K$h$j!"(B 280.1137 +$BA4$F$N%j%]%8%H%j$KBP$7$F%A%'%s%8%;%C%H>pJs$N(B RSS $BG[?.5!G=$,Ds6!$5$l$^$9$,!"(B 280.1138 +$BEE;R%a!<%k$K$h$kJQ99DLCN$,A*Br$5$l$k>l9g$,B?$$$G$9!#(B 280.1139 +\hgext{notify} $B%U%C%/$O!"(B 280.1140 +$B9XFI<T$,6=L#$r;}$D?7$?$J%A%'%s%8%;%C%H$4$H$K!"(B 280.1141 +$BEE;R%a!<%k%"%I%l%9!J72!K$K08$F$FDLCN$r9T$$$^$9!#(B 280.1142 + 280.1143 +\hgext{notify} $B$O%F%s%W%l!<%H6nF07?$N%U%C%/$G$9$N$G!"(B 280.1144 +\hgext{bugzilla} $B%U%C%/$HF1MM$K!"(B 280.1145 +$BAw?.$5$l$kDLCN$NFbMF$r%+%9%?%^%$%:$9$k$3$H$,$G$-$^$9!#(B 280.1146 + 280.1147 +$B4{Dj>uBV$G$O(B 280.1148 +\hgext{notify} $B%U%C%/$O%A%'%s%8%;%C%H$4$H$N:9J,>pJs$r<h$j9~$_$^$9$,!"(B 280.1149 +$B:9J,>pJs$NNL$r@)8B$7$?$j!"(B 280.1150 +$B$3$N5!G=$r40A4$KDd;_$9$k$3$H$b$G$-$^$9!#(B 280.1151 +$B9XFI<T$K$h$kJQ99$NB(;~%l%S%e!<$rA[Dj$9$k>l9g!"(B 280.1152 +$B;XDj$5$l$?(B URL $B$r%/%j%C%/$9$k$h$j$b!"(B 280.1153 +$B:9J,>pJs$r<h$j9~$`$[$&$,M-MQ$G$9!#(B 280.1154 + 280.1155 +\subsubsection{Configuring the \hgext{notify} hook} 280.1156 + 280.1157 +\hgext{notify} $B%U%C%/$O!"(B 280.1158 +$B?7$?$J%A%'%s%8%;%C%H$4$H$K#1DL$NEE;R%a!<%k$rAw?.$9$k$3$H$b$G$-$l$P!"(B 280.1159 +$B!JC1FH$N(B \hgcmd{pull} $B$J$$$7(B \hgcmd{push} $B$K$h$j%j%]%8%H%j$KDI2C$5$l$k(B 280.1160 +$B!K?7$?$J%A%'%s%8%;%C%H72$4$H$KAw?.$9$k$3$H$b$G$-$^$9!#(B 280.1161 + 280.1162 +\begin{codesample2} 280.1163 + [hooks] 280.1164 + # $B%A%'%s%8%;%C%H72$4$H$K#1DL$N%a!<%k$rAw?.(B 280.1165 + changegroup.notify = python:hgext.notify.hook 280.1166 + # $B%A%'%s%8%;%C%H$4$H$K#1DL$N%a!<%k$rAw?.(B 280.1167 + incoming.notify = python:hgext.notify.hook 280.1168 +\end{codesample2} 280.1169 + 280.1170 +$B$3$N%U%C%/$N@_Dj>pJs$O!"(B 280.1171 + \hgrc\ $B%U%!%$%k$N(B 280.1172 +\rcsection{notify} $B%;%/%7%g%s$K5-=R$5$l$^$9!#(B 280.1173 + 280.1174 +\begin{description} 280.1175 +\item[\rcitem{notify}{test}] $B4{Dj>uBV$G$O!"(B 280.1176 + $B$3$N%U%C%/$OA4$/%a!<%k$rAw?.$7$^$;$s!#(B 280.1177 + $B$=$NBX$o$j!"Aw?.$9$k(B\emph{$B$G$"$m$&(B}$B%a%C%;!<%8$rI=<($7$^$9!#(B 280.1178 + $B$3$N9`L\$r(B \texttt{false} $B$K$9$k$3$H$GEE;R%a!<%k$,Aw?.$5$l$k$h$&$K$J$j$^$9!#(B 280.1179 + $B4pDl>uBV$GEE;R%a!<%k$NAw?.$,Dd;_$5$l$F$$$k$N$O!"(B 280.1180 + $B$3$N3HD%!J!?%U%C%/!K$r$-$A$s$H@_Dj$9$k$N$K$O4vJ,$+$N;n9T:x8m$,I,MW$J$N$G!"(B 280.1181 + $B@_Dj;n9TCf$K(B``$B2u$l$?(B''$BDLCN$r9XFI<T$KAw?.$7$F$7$^$&$?$a$G$9!#(B 280.1182 + 280.1183 +\item[\rcitem{notify}{config}] $B9XFI>pJs$rJ];}$7$F$$$k@_Dj%U%!%$%k$X$N%Q%9!#(B 280.1184 + $B$3$N>pJs$O(B \hgrc\ $B$H$OJ,N%$5$l$F$$$k$N$G!"(B 280.1185 + $B$3$N%U%!%$%k$=$N$b$N$rBP>]%j%]%8%H%j$G4IM}$9$k$3$H$b2DG=$G$9!#(B 280.1186 + $B$3$&$9$k$3$H$G!"(B 280.1187 + $BBP>]%j%]%8%H%j$rJ#@=$7!"9XFI@_Dj$r99?7$7$?>e$G!"(B 280.1188 + $BJQ99$r%5!<%P$K(B \hgcmd{push} $B$GLa$9$3$H$,$G$-$^$9!#(B 280.1189 + 280.1190 +\item[\rcitem{notify}{strip}] $B%j%]%8%H%j$KBP$9$k9XFI<T$NM-L5$rH=Dj$9$k:]$K!"(B 280.1191 + $B%j%]%8%H%j$N%Q%9KAF,$+$i<h$j=|$/%Q%96h@Z$j$N?t(B\footnote{$BLuCm(B: 280.1192 + $B$3$3$G$O(B strip $BBP>]$r(B 280.1193 + ``leading path separator characters'' $B$HI=8=$7$F$$$k$,!"(B 280.1194 + \rcsection{bugzilla} $B$N@bL@$G$O(B 280.1195 + ``leading path elements'' $B$HI=8=$7$F$$$k!#(B 280.1196 + $BE}0lE*$JI=8=$,I,MW$H;W$o$l$k!#(B}$B!#(B 280.1197 + $BNc$($P!"(B 280.1198 + $B%5!<%P>e$N%j%]%8%H%j$,(B \dirname{/home/hg/repos} $BG[2<$K$"$j!"(B 280.1199 + \hgext{notify} $B$,(B 280.1200 + \dirname{/home/hg/repos/shared/test} $B$H$$$&%j%]%8%H%j$rG'<1$7$F$$$k>l9g!"(B 280.1201 + \rcitem{notify}{strip} $B$r(B \texttt{4} $B$K@_Dj$9$k$3$H$G(B 280.1202 + \hgext{notify} $B$K$h$k9XFI<T$H$N%Q%?!<%s%^%C%A%s%0$O!"(B 280.1203 + $B%Q%9$r(B \dirname{shared/test} $B$HG'<1$7$?>e$G9T$o$l$^$9!#(B 280.1204 + 280.1205 +\item[\rcitem{notify}{template}] 280.1206 + $B%a%C%;!<%8Aw?.$N:]$K;HMQ$5$l$k%F%s%W%l!<%H%F%-%9%H!#(B 280.1207 + $B$3$N%F%s%W%l!<%H$O!"%a%C%;!<%8$N%X%C%@$H%\%G%#$NN>J}$NFbMF$r;XDj$7$^$9!#(B 280.1208 + 280.1209 +\item[\rcitem{notify}{maxdiff}] 280.1210 + $B%a%C%;!<%8KvHx$KIUM?$5$l$k:9J,%G!<%?$N:GBg9T?t!#(B 280.1211 + $B$3$N9T?t$h$j$bBg$-$$>l9g!":9J,%G!<%?$O@Z$j5M$a$i$l$^$9!#(B 280.1212 + $B$3$NCM$N4{DjCM$O(B 300 $B$K@_Dj$5$l$F$$$^$9!#(B 280.1213 + $B$3$NCM$r(B \texttt{0} $B$K$7$?>l9g!"(B 280.1214 + $BDLCN$NEE;R%a!<%k$K:9J,%G!<%?$OIUM?$5$l$^$;$s!#(B 280.1215 + 280.1216 +\item[\rcitem{notify}{sources}] $BG[N8$9$Y$-%A%'%s%8%;%C%H$NM3Mh85$N0lMw!#(B 280.1217 + $B$3$N@_Dj$K$h$jNc$($P!"(B 280.1218 + $B1s3V%f!<%6$,%5!<%P$r7PM3$7$FEv3:%j%]%8%H%j$X(B 280.1219 + \hgcmd{push} $B$7$?%A%'%s%8%;%C%H$KBP$7$F$N$_(B 280.1220 + \hgext{notify} $B$,EE;R%a!<%k$GDLCN$9$k!"(B 280.1221 + $B$H$$$C$?@_Dj$r$9$k$3$H$,$G$-$^$9!#(B 280.1222 + $B$3$3$G5-=R2DG=$JM3Mh85$N0lMw$O!"(B\ref{sec:hook:sources}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1223 + 280.1224 +\end{description} 280.1225 + 280.1226 +\rcsection{web} $B%;%/%7%g%s$G(B 280.1227 +\rcitem{web}{baseurl} $B9`L\$r@_Dj$7$F$$$k>l9g!"(B 280.1228 +$B%F%s%W%l!<%HCf$G(B \texttt{webroot} $B$H$7$F;HMQ$9$k$3$H$,$G$-$^$9!#(B 280.1229 + 280.1230 +\hgext{notify} $B@_Dj>pJs$N0l<0$r0J2<$K<($7$^$9!#(B 280.1231 + 280.1232 +\begin{codesample2} 280.1233 + [notify] 280.1234 + # $B<B:]$KEE;R%a!<%k$rAw$k$+H]$+(B 280.1235 + test = false 280.1236 + # $BDLCN$r9T$&%j%]%8%H%j<+?H$NCf$KCV$+$l$F$$$k9XFI<T>pJs(B 280.1237 + config = /home/hg/repos/notify/notify.conf 280.1238 + # $B%j%]%8%H%j$,(B /home/hg/repos $BG[2<$K$"$k$N$G(B "/" $BJ8;z$r(B4$B$D=|5n(B 280.1239 + strip = 4 280.1240 + template = X-Hg-Repo: \{webroot\}\\n\\\\ 280.1241 + Subject: \{webroot\}: \{desc|firstline|strip\}\\n\\\\ 280.1242 + From: \{author\}\\n\\\\ 280.1243 + \\n\\\\ 280.1244 + changeset \{node|short\} in \{root\}\\n\\\\ 280.1245 + details: \{baseurl\}\{webroot\}?cmd=changeset;node=\{node|short\}\\n\\\\ 280.1246 + description:\\n\\\\ 280.1247 + \\t\{desc|tabindent|strip\} 280.1248 + 280.1249 + [web] 280.1250 + baseurl = http://hg.example.com/ 280.1251 +\end{codesample2} 280.1252 + 280.1253 +$B$3$N@_Dj$K$h$j!"(B 280.1254 +$B0J2<$N$h$&$J%a%C%;!<%8$,@8@.$5$l$^$9!#(B 280.1255 + 280.1256 +\begin{codesample2} 280.1257 + X-Hg-Repo: tests/slave 280.1258 + Subject: tests/slave: Handle error case when slave has no buffers 280.1259 + Date: Wed, 2 Aug 2006 15:25:46 -0700 (PDT) 280.1260 + 280.1261 + changeset 3cba9bfe74b5 in /home/hg/repos/tests/slave 280.1262 + details: http://hg.example.com/tests/slave?cmd=changeset;node=3cba9bfe74b5 280.1263 + description: 280.1264 + Handle error case when slave has no buffers 280.1265 + diffs (54 lines): 280.1266 + 280.1267 + diff -r 9d95df7cf2ad -r 3cba9bfe74b5 include/tests.h 280.1268 + --- a/include/tests.h Wed Aug 02 15:19:52 2006 -0700 280.1269 + +++ b/include/tests.h Wed Aug 02 15:25:26 2006 -0700 280.1270 + @@ -212,6 +212,15 @@ static __inline__ void test_headers(void *h) 280.1271 + [...snip...] 280.1272 +\end{codesample2} 280.1273 + 280.1274 +\subsubsection{Testing and troubleshooting} 280.1275 + 280.1276 +$B4{DjCM$N$^$^$G$O(B \hgext{notify} $B3HD%$O(B 280.1277 +\emph{$B0l@Z$N%a!<%k$rAw?.$7$^$;$s(B}$B$N$G!"(B 280.1278 +\rcitem{notify}{test} $B9`L\$rL@<(E*$K(B 280.1279 +\texttt{false} $B$G@_Dj$9$k$3$H$rK:$l$J$$$G$/$@$5$$!#(B 280.1280 +$B$3$N@_Dj$r9T$&$^$G$O!"(B 280.1281 +\hgext{notify} $B3HD%$OAw?.$9$k(B\emph{$B$G$"$m$&(B}$B%a%C%;!<%8$rI=<($7$^$9!#(B 280.1282 + 280.1283 +\section{Information for writers of hooks} 280.1284 +\label{sec:hook:ref} 280.1285 + 280.1286 +\subsection{In-process hook execution} 280.1287 + 280.1288 +$B%W%m%;%9Fb%U%C%/$O!"0J2<$N0z?t7A<0$G5/F0$5$l$^$9!#(B 280.1289 + 280.1290 +\begin{codesample2} 280.1291 + def myhook(ui, repo, **kwargs): 280.1292 + pass 280.1293 +\end{codesample2} 280.1294 + 280.1295 +\texttt{ui} $B0z?t$O(B 280.1296 +\pymodclass{mercurial.ui}{ui} $B%*%V%8%'%/%H!"(B 280.1297 +\texttt{repo} $B0z?t$O(B 280.1298 +\pymodclass{mercurial.localrepo}{localrepository} $B%*%V%8%'%/%H$G$9!#(B 280.1299 +\texttt{**kwargs} $B%Q%i%a!<%?$N;}$DL>A0$HCM$O!"(B 280.1300 +$B5/F0$5$l$k%U%C%/$N<oN`$K0MB8$7!"(B 280.1301 +$B0J2<$N6&DL$NFCD'$r;}$C$F$$$^$9!#(B 280.1302 + 280.1303 +\begin{itemize} 280.1304 +\item \texttt{node} $B$J$$$7(B \texttt{parent\emph{N}} $B$H$$$&L>A0$N0z?t$O!"(B 280.1305 + 16$B?J?t$N%A%'%s%8%;%C%H(BID$B$rJ];}$7$F$$$^$9!#(B 280.1306 + $B6u$NJ8;zNs$O!"(B 280.1307 + 0 $BB3$-$NJ8;zNs$NBe$o$j$K(B ``null $B%A%'%s%8%;%C%H(BID'' $B$r0UL#$7$^$9!#(B 280.1308 + 280.1309 +\item \texttt{url} $B$H$$$&L>A0$N0z?t$O!"(B 280.1310 + $B$=$l$,FCDj2DG=$G$"$l$P!"1s3V%j%]%8%H%j$N(B URL $B$rI=$7$^$9!#(B 280.1311 + 280.1312 +\item $B??56CM0z?t$O!"(BPython $B$N(B \texttt{bool} $B%*%V%8%'%/%H$GI=$5$l$^$9!#(B 280.1313 + 280.1314 +\end{itemize} 280.1315 + 280.1316 +$B%W%m%;%9Fb%U%C%/$O!"(B 280.1317 +$B!J30It%U%C%/$,%j%]%8%H%jD>2<$G<B9T$5$l$k$N$H0c$$!K(B 280.1318 +$B%W%m%;%9$N:n6H%G%#%l%/%H%j$rJQ99$;$:$K5/F0$5$l$^$9!#(B 280.1319 +$B%W%m%;%9$N:n6H%G%#%l%/%H%j$r0\F0$5$;$k$H!"(B 280.1320 +Mercurial API $B$N8F$S=P$7$,<:GT$9$kMW0x$H@.$j$($^$9$N$G!"(B 280.1321 +$B%W%m%;%9Fb%U%C%/$O:n6H%G%#%l%/%H%j$rJQ99$7$F$O$$$1$^$;$s!#(B 280.1322 + 280.1323 +$B!J%W%m%;%9Fb!K%U%C%/$,??56CM(B ``false'' $B$rJV5Q$7$?>l9g!"(B 280.1324 +$B%U%C%/8F$S=P$7$O@.8y$7$?$b$N$H$_$J$5$l$^$9!#(B 280.1325 +$B??56CM(B ``true'' $B$,JV5Q$5$l$k$+!"(B 280.1326 +$BNc30$,IbMH$5$l$?>l9g!"(B 280.1327 +$B%U%C%/8F$S=P$7$O<:GT$7$?$b$N$H$_$J$5$l$^$9!#(B 280.1328 +$B5/F0$N47=,$rM}2r$9$k$K$O!"(B 280.1329 +``$B<:GT$7$?$+H]$+$rDLCN$9$k(B''$B$H3P$($k$N$,NI$$$G$7$g$&!#(B 280.1330 + 280.1331 +$B%A%'%s%8%;%C%H(BID$B$O!"(B 280.1332 +Mercurial API $B$,>oMQ$7$F$$$k%P%$%J%j%O%C%7%e7A<0$G$O$J$/!"(B 280.1333 +Python $B%U%C%/$K(B16$B?JJ8;zNs$N7A<0$GEO$5$l$kE@$KCm0U$7$F$/$@$5$$!#(B 280.1334 +16$B?J%O%C%7%eCM$r%P%$%J%j%O%C%7%eCM7A<0$KJQ49$9$k$K$O!"(B 280.1335 +\pymodfunc{mercurial.node}{bin} $B4X?t$r;HMQ$7$F$/$@$5$$!#(B 280.1336 + 280.1337 +\subsection{External hook execution} 280.1338 + 280.1339 +$B%W%m%;%930%U%C%/!J$N5/F0J8;zNs!K$O!"(B 280.1340 +Mercurial $B$r<B9T$7$F$$$k%7%'%k$KEO$5$l$^$9!#(B 280.1341 +$B$=$N$?$a!"(B 280.1342 +$BJQ?tCV49$d%3%^%s%I=PNO$N%j%@%$%l%/%H$H$$$C$?!"(B 280.1343 +$B%7%'%k$N5!G=$,MxMQ2DG=$G$9!#(B 280.1344 +$B%W%m%;%930%U%C%/$O!"(B 280.1345 +$B!J%W%m%;%9Fb%U%C%/$,(B Mercurial $B$,5/F0$5$l$?%G%#%l%/%H%j$G<B9T$5$l$k$N$H0c$$!K(B 280.1346 +$B%j%]%8%H%j%k!<%HD>2<$G<B9T$5$l$^$9!#(B 280.1347 + 280.1348 +$B%U%C%/0z?t$O!"4D6-JQ?t$r7PM3$7$FEO$5$l$^$9!#(B 280.1349 +$B8D!9$N4D6-JQ?t$NL>A0$O!"(B 280.1350 +$BBgJ8;z$G3n$D(B ``\texttt{HG\_}'' $B@\F,<-$,IUM?$5$l$?7A<0$KJQ49$5$l$^$9!#(B 280.1351 +$BNc$($P!"(B 280.1352 +$B0z?tL>$,(B ``\texttt{node}'' $B$N>l9g!"(B 280.1353 +$BEv3:0z?t$rI=$94D6-JQ?t$NL>A0$O(B ``\texttt{HG\_NODE}'' $B$H$J$j$^$9!#(B 280.1354 + 280.1355 +$B??56CM0z?t$O!"(B 280.1356 +``true'' $B$,J8;zNs(B ``\texttt{1}'' $B$G!"(B 280.1357 +``false'' $B$,J8;zNs(B ``\texttt{0}'' $B$GI=$5$l$^$9!#(B 280.1358 +$B4D6-JQ?t(B 280.1359 +\envar{HG\_NODE}$B!"(B\envar{HG\_PARENT1} $B$J$$$7(B \envar{HG\_PARENT2} $B$O!"(B 280.1360 +$B%A%'%s%8%;%C%H(BID$B$r(B16$B?JJ8;zNs$GJ];}$7$^$9!#(B 280.1361 +``$B6u$N%A%'%s%8%;%C%H(BID''$B$O!"(B 280.1362 +``0'' $B$NO"B3$G$O$J$/6u$NJ8;zNs$H$7$FI=8=$5$l$^$9!#(B 280.1363 +$B4D6-JQ?t(B \envar{HG\_URL} $B$O!"(B 280.1364 +$B$=$l$,FCDj2DG=$J>l9g$K8B$j!"1s3V%j%]%8%H%j$N(B URL $B$rJ];}$7$^$9!#(B 280.1365 + 280.1366 +$B%W%m%;%930%U%C%/$,=*N;%3!<%I(B0$B$G=*N;$7$?>l9g!"(B 280.1367 +$B%U%C%/$N<B9T$O@.8y$7$?$b$N$H$_$J$5$l$^$9!#(B 280.1368 +$B=*N;%3!<%I$,(B0$B0J30$N>l9g!"(B 280.1369 +$B%U%C%/$N<B9T$O<:GT$7$?$b$N$H$_$J$5$l$^$9!#(B 280.1370 + 280.1371 +\subsection{Finding out where changesets come from} 280.1372 + 280.1373 +$B%m!<%+%k%j%]%8%H%j$HB>$N%j%]%8%H%j$N4V$N%A%'%s%8%;%C%H$NE>Aw$K4X$o$k%U%C%/$O!"(B 280.1374 +``$B8~$3$&B&(B''$B$N>pJs$rCN$k$3$H$,$G$-$k>l9g$,$"$j$^$9!#(B 280.1375 +Mercurial $B$O!"(B 280.1376 +$B%A%'%s%8%;%C%H$,(B\emph{$B$I$N$h$&$K$7$F(B}$BE>Aw$5$l$?$N$+$H!"(B 280.1377 +$BB?$/$N>l9g!"(B 280.1378 +\emph{$B$I$N%j%]%8%H%j(B}$B$H$N4V$G%A%'%s%8%;%C%H$,E>Aw$5$l$k$N$+$bCN$C$F$$$^$9!#(B 280.1379 + 280.1380 +\subsubsection{Sources of changesets} 280.1381 +\label{sec:hook:sources} 280.1382 + 280.1383 +Mercurial $B$O%j%]%8%H%j4V$G%A%'%s%8%;%C%H$rE>Aw$9$k0U?^$r!"(B 280.1384 +$B%U%C%/$KBP$7$F;vA0!J$J$$$7;v8e$K!KDLCN$7$^$9!#(B 280.1385 +$B$3$N>pJs$O!"(B 280.1386 +Python $B$K$h$k%W%m%;%9Fb%U%C%/$N>l9g$O(B \texttt{source} $B$H$$$&L>A0$N0z?t$G!"(B 280.1387 +$B30It%U%C%/$N>l9g$O(B \envar{HG\_SOURCE} $B$H$$$&L>A0$N4D6-JQ?t$G!"(B 280.1388 +Mercurial $B$+$i%U%C%/$KEO$5$l$^$9!#(B 280.1389 + 280.1390 +\begin{description} 280.1391 +\item[\texttt{serve}] $B1s3V%j%]%8%H%j$H$N4V$r!"(B 280.1392 + http $B$J$$$7(B ssh $B7PM3$G%A%'%s%8%;%C%H$,E>Aw$5$l$^$9!#(B 280.1393 + 280.1394 +\item[\texttt{pull}] $B$"$k%j%]%8%H%j$+$iB>$N%j%]%8%H%j$X!"(B 280.1395 + \hgcmd{pull} $B$K$h$j%A%'%s%8%;%C%H$,E>Aw$5$l$^$9!#(B 280.1396 + 280.1397 +\item[\texttt{push}] $B$"$k%j%]%8%H%j$+$iB>$N%j%]%8%H%j$X!"(B 280.1398 + \hgcmd{push} $B$K$h$j%A%'%s%8%;%C%H$,E>Aw$5$l$^$9!#(B 280.1399 + 280.1400 +\item[\texttt{bundle}] $B$"$k%j%]%8%H%j$+$iB>$N%j%]%8%H%j$X!"(B 280.1401 + \hgcmd{bundle} $B$K$h$j%A%'%s%8%;%C%H$,E>Aw$5$l$^$9!#(B 280.1402 + 280.1403 +\end{description} 280.1404 + 280.1405 +\subsubsection{Where changes are going---remote repository URLs} 280.1406 +\label{sec:hook:url} 280.1407 + 280.1408 +Mercurial $B$O!"(B 280.1409 +$B%j%]%8%H%j4V$G$N%A%'%s%8%;%C%HE>Aw=hM}$K$*$1$k(B``$B8~$3$&B&(B''$B$N0LCV$r!"(B 280.1410 +$B2DG=$G$"$l$P%U%C%/$KCN$i$;$^$9!#(B 280.1411 +$B$3$N>pJs$O!"(B 280.1412 +Python $B$K$h$k%W%m%;%9Fb%U%C%/$N>l9g$O(B \texttt{url} $B$H$$$&L>A0$N0z?t$G!"(B 280.1413 +$B30It%U%C%/$N>l9g$O(B \envar{HG\_URL} $B$H$$$&L>A0$N4D6-JQ?t$G!"(B 280.1414 +Mercurial $B$+$i%U%C%/$KEO$5$l$^$9!#(B 280.1415 + 280.1416 +$B$3$N>pJs$O>o$K$o$+$k$H$$$&$o$1$G$O$"$j$^$;$s!#(B 280.1417 +http $B$J$$$7(B ssh 280.1418 +$B7PM3$G%5!<%S%9$rDs6!$7$F$$$k%j%]%8%H%j$K$*$$$F%U%C%/$,5/F0$5$l$?>l9g!"(B 280.1419 +Mercurial $B$O1s3V%j%]%8%H%j$rFCDj$9$k$3$H$O$G$-$^$;$s$,!"(B 280.1420 +$B%/%i%$%"%s%H$,$I$N%"%I%l%9$+$i@\B3$7$F$$$k$N$+$OFCDj$9$k$3$H$,$G$-$^$9!#(B 280.1421 +$B$3$N$h$&$J>l9g!"(BURL $B$O0J2<$N$$$:$l$+$N7A<0$K$J$j$^$9!#(B 280.1422 + 280.1423 +\begin{itemize} 280.1424 +\item \texttt{remote:ssh:\emph{ip-address}}---$BM?$($i$l$?(B IP $B%"%I%l%9$+$i$N(B 280.1425 + ssh $B1s3V@\B3!#(B 280.1426 + 280.1427 +\item \texttt{remote:http:\emph{ip-address}}---$BM?$($i$l$?(B IP $B%"%I%l%9$+$i$N(B 280.1428 + http $B1s3V@\B3!#(B 280.1429 + $B%/%i%$%"%s%H$,(B SSL $B$r;HMQ$7$?>l9g!"(B 280.1430 + \texttt{remote:https:\emph{ip-address}} $B7A<0$K$J$j$^$9!#(B 280.1431 + 280.1432 +\item Empty---$B1s3V@\B3$K4X$9$k>pJs$r<hF@$G$-$J$+$C$?>l9g!#(B 280.1433 + 280.1434 +\end{itemize} 280.1435 + 280.1436 +\section{Hook reference} 280.1437 + 280.1438 +\subsection{\hook{changegroup}---after remote changesets added} 280.1439 +\label{sec:hook:changegroup} 280.1440 + 280.1441 +$B$3$N%U%C%/$O!"(B 280.1442 +$BNc$($P(B \hgcmd{pull} $B$J$$$7(B \hgcmd{unbundle} $B$K$h$C$F!"(B 280.1443 +$B$"$i$+$8$aB8:_$7$F$$$k%A%'%s%8%;%C%H$N0l72$,!"(B 280.1444 +$B%j%]%8%H%j$KDI2C$5$l$?8e$K<B9T$5$l$^$9!#(B 280.1445 +$B$3$l$i$NA`:n$OG$0U8D$N%A%'%s%8%;%C%H$rDI2C$G$-$^$9$,!"(B 280.1446 +$B$3$N%U%C%/$O3FA`:nKh$K#12s$E$D<B9T$5$l$^$9!#(B 280.1447 +$B$3$N$3$H$O!"(B 280.1448 +$B%A%'%s%8%;%C%H$,$^$H$^$C$FDI2C$5$l$k$+H]$+$K4X$o$i$:!"(B 280.1449 +\hook{incoming} $B%U%C%/$N<B9T$,%A%'%s%8%;%C%HKh$K<B9T$5$l$k$N$HBP>HE*$G$9!#(B 280.1450 + 280.1451 +$BDI2C$5$l$?%A%'%s%8%;%C%H$KBP$9$k<+F02=$5$l$?%S%k%I!&%F%9%H$N3+;O7@5!$H$7$?$j!"(B 280.1452 +$B%P%0%G!<%?%Y!<%9$N99?7!"(B 280.1453 +$B%j%]%8%H%j$,?7$?$J%A%'%s%8%;%C%H$r<h$j9~$s$@$3$H$N9XFI<T$X$NDLCN!"(B 280.1454 +$B$H$$$C$?$b$N$,!"(B 280.1455 +$B$3$N%U%C%/$KA[Dj$5$l$kMQES$N0lIt$G$9!#(B 280.1456 + 280.1457 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1458 + 280.1459 +\begin{description} 280.1460 +\item[\texttt{node}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1461 + $BDI2C$5$l$k0l72$NCf$N:G=i$N%A%'%s%8%;%C%H$N(BID$B!#(B 280.1462 + $B$3$N%A%'%s%8%;%C%H$+$i(B 280.1463 + \index{tags!\texttt{tip}}\texttt{tip} 280.1464 + $B$^$G!J(B\texttt{tip} $B<+?H$b4^$`!K$NA4$F$N%A%'%s%8%;%C%H$,!"(B 280.1465 + $BC1FH$N(B \hgcmd{pull}$B!"(B\hgcmd{push} $B$J$$$7(B \hgcmd{unbundle} 280.1466 + $BA`:n$K$h$jDI2C$5$l$?$3$H$K$J$j$^$9!#(B 280.1467 + 280.1468 +\item[\texttt{source}] $BJ8;zNs!#(B 280.1469 + $B%A%'%s%8%;%C%H$NM3Mh85$rI=$7$^$9!#(B 280.1470 + $B>\:Y$O(B\ref{sec:hook:sources}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1471 + 280.1472 +\item[\texttt{url}] URL$B!#(B 280.1473 + $BFCDj$G$-$k>l9g$K8B$j!"1s3V%j%]%8%H%j$N>l=j$rI=$7$^$9!#(B 280.1474 + $B>\:Y$O(B\ref{sec:hook:url}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1475 + 280.1476 +\end{description} 280.1477 + 280.1478 +$BMWJLES;2>H(B: 280.1479 +\hook{incoming} $B!J(B\ref{sec:hook:incoming}~$B@a!K!"(B 280.1480 +\hook{prechangegroup} $B!J(B\ref{sec:hook:prechangegroup}~$B@a!K!"(B 280.1481 +\hook{pretxnchangegroup} $B!J(B\ref{sec:hook:pretxnchangegroup}~$B@a!K(B 280.1482 + 280.1483 +\subsection{\hook{commit}---after a new changeset is created} 280.1484 +\label{sec:hook:commit} 280.1485 + 280.1486 +$B$3$N%U%C%/$O!"?7$7$$%A%'%s%8%;%C%H$,:n@.$5$l$?8e$G<B9T$5$l$^$9!#(B 280.1487 + 280.1488 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1489 + 280.1490 +\begin{description} 280.1491 +\item[\texttt{node}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1492 + $B?7$7$/%3%_%C%H$5$l$?%A%'%s%8%;%C%H$N(BID$B!#(B 280.1493 + 280.1494 +\item[\texttt{parent1}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1495 + $B?7$7$/%3%_%C%H$5$l$?%A%'%s%8%;%C%H$K$H$C$F!"(B 280.1496 + $BBh#1?F$H$J$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1497 + 280.1498 +\item[\texttt{parent2}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1499 + $B?7$7$/%3%_%C%H$5$l$?%A%'%s%8%;%C%H$K$H$C$F!"(B 280.1500 + $BBh#2?F$H$J$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1501 + 280.1502 +\end{description} 280.1503 + 280.1504 +$BMWJLES;2>H(B: \hook{precommit} $B!J(B\ref{sec:hook:precommit}~$B@a!K!"(B 280.1505 +\hook{pretxncommit} $B!J(B\ref{sec:hook:pretxncommit}~$B@a!K(B 280.1506 + 280.1507 +\subsection{\hook{incoming}---after one remote changeset is added} 280.1508 +\label{sec:hook:incoming} 280.1509 + 280.1510 +$B$3$N%U%C%/$O!"(B 280.1511 +$BNc$($P(B \hgcmd{push} $B$K$h$C$F!"(B 280.1512 +$B$"$i$+$8$aB8:_$7$F$$$k%A%'%s%8%;%C%H$,!"(B 280.1513 +$B%j%]%8%H%j$KDI2C$5$l$?8e$K<B9T$5$l$^$9!#(B 280.1514 +$BJ#?t$N%A%'%s%8%;%C%H$,C10l$NA`:n$GDI2C$5$l$?>l9g$G$b!"(B 280.1515 +$B$3$N%U%C%/$ODI2C$5$l$?8D!9$N%A%'%s%8%;%C%HKh$K<B9T$5$l$^$9!#(B 280.1516 + 280.1517 +$B$3$N%U%C%/$r(B \hook{changegroup} $B%U%C%/!J(B\ref{sec:hook:changegroup}~$B@a;2>H!K(B 280.1518 +$B$HF1MM$NL\E*$K;HMQ$9$k$3$H$,$G$-$^$9!#(B 280.1519 +$B0l72$N%A%'%s%8%;%C%HKh$N%U%C%/5/F0$NJ}$,JXMx$J>l9g$b$"$j$^$9$,!"(B 280.1520 +$B;~$K$O%A%'%s%8%;%C%H$4$H$N%U%C%/5/F0$bJXMx$G$9!#(B 280.1521 + 280.1522 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1523 + 280.1524 +\begin{description} 280.1525 +\item[\texttt{node}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1526 + $B?7$7$/DI2C$5$l$?%A%'%s%8%;%C%H$N(BID$B!#(B 280.1527 + 280.1528 +\item[\texttt{source}] $BJ8;zNs!#(B 280.1529 + $B%A%'%s%8%;%C%H$NM3Mh85$rI=$7$^$9!#(B 280.1530 + $B>\:Y$O(B\ref{sec:hook:sources}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1531 + 280.1532 +\item[\texttt{url}] URL$B!#(B 280.1533 + $BFCDj$G$-$k>l9g$K8B$j!"1s3V%j%]%8%H%j$N>l=j$rI=$7$^$9!#(B 280.1534 + $B>\:Y$O(B\ref{sec:hook:url}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1535 + 280.1536 +\end{description} 280.1537 + 280.1538 +$BMWJLES;2>H(B: 280.1539 +\hook{changegroup} $B!J(B\ref{sec:hook:changegroup}~$B@a!K!"(B 280.1540 +\hook{prechangegroup} $B!J(B\ref{sec:hook:prechangegroup}~$B@a!K!"(B 280.1541 +\hook{pretxnchangegroup} $B!J(B\ref{sec:hook:pretxnchangegroup}~$B@a!K(B 280.1542 + 280.1543 +\subsection{\hook{outgoing}---after changesets are propagated} 280.1544 +\label{sec:hook:outgoing} 280.1545 + 280.1546 +$B$3$N%U%C%/$O!"(B 280.1547 +$BNc$($P(B \hgcmd{push} $B$J$$$7(B \hgcmd{bundle} $B$K$h$C$F!"(B 280.1548 +$BB>$N%j%]%8%H%j$X$H%A%'%s%8%;%C%H$N0l72$,EAGE$7$?8e$K<B9T$5$l$^$9!#(B 280.1549 + 280.1550 +$B%A%'%s%8%;%C%H$,30It$KEAGE$7$?$3$H$N4IM}<T$X$NDLCN$J$I$O!"(B 280.1551 +$B$3$N%U%C%/$KA[Dj$5$l$kMQES$N#1$D$G$9!#(B 280.1552 + 280.1553 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1554 + 280.1555 +\begin{description} 280.1556 +\item[\texttt{node}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1557 + $BB>$N%j%]%8%H%j$X$HEAGE$9$k0l72$NCf$N:G=i$N%A%'%s%8%;%C%H$N(BID$B!#(B 280.1558 + 280.1559 +\item[\texttt{source}] $BJ8;zNs!#(B 280.1560 + $BEAGEA`:n$NH/9TM3Mh$rI=$7$^$9!J(B\ref{sec:hook:sources}~$B@a$r;2>H$7$F$/$@$5$$!K!#(B 280.1561 + $B1s3V%/%i%$%"%s%H$+$i$N(B \hgcmd{pull} $BMW5a$N>l9g!"(B 280.1562 + \texttt{source} $B$O(B \texttt{serve} $B$H$J$j$^$9!#(B 280.1563 + $B%A%'%s%8%;%C%H72$r<hF@$7$h$&$H$9$k%/%i%$%"%s%H$,%m!<%+%k%[%9%H>e$K5o$k>l9g!"(B 280.1564 + $B%/%i%$%"%s%H$NA`:n<oJL$K1~$8$F!"(B 280.1565 + \texttt{source} $B$NCM$O(B 280.1566 + \texttt{bundle}$B!"(B\texttt{pull} $B$J$$$7(B \texttt{push} $B$N$$$:$l$+$K$J$j$^$9!#(B 280.1567 + 280.1568 +\item[\texttt{url}] URL$B!#(B 280.1569 + $BFCDj$G$-$k>l9g$K8B$j!"1s3V%j%]%8%H%j$N>l=j$rI=$7$^$9!#(B 280.1570 + $B>\:Y$O(B\ref{sec:hook:url}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1571 + 280.1572 +\end{description} 280.1573 + 280.1574 +$BMWJLES;2>H!'(B 280.1575 +\hook{preoutgoing} $B!J(B\ref{sec:hook:preoutgoing}~$B@a!K(B 280.1576 + 280.1577 +\subsection{\hook{prechangegroup}---before starting to add remote changesets} 280.1578 +\label{sec:hook:prechangegroup} 280.1579 + 280.1580 +$B$3$N@)8fMQ%U%C%/$O!"(B 280.1581 +$BB>$N%j%]%8%H%j$+$i$N%A%'%s%8%;%C%H72$NDI2C$,(B 280.1582 +Mercurial $B$K$h$j3+;O$5$l$kD>A0$K<B9T$5$l$^$9!#(B 280.1583 + 280.1584 +$B$3$N%U%C%/$O%A%'%s%8%;%C%H72$NE>Aw3+;O$,5v2D$5$l$kA0$K<B9T$5$l$k$?$a!"(B 280.1585 +$B%U%C%/<+BN$ODI2C$5$l$k%A%'%s%8%;%C%H$K4X$9$k>pJs$rF@$k$3$H$,$G$-$^$;$s!#(B 280.1586 +$B$3$N%U%C%/$N<B9T$,<:GT$7$?>l9g!"%A%'%s%8%;%C%H72$OE>Aw$5$l$^$;$s!#(B 280.1587 + 280.1588 +$B$3$N%U%C%/$NMQES$N0l$D$K!"(B 280.1589 +$B%j%]%8%H%j$KBP$9$k30It$+$i$N%A%'%s%8%;%C%HDI2C$N6X;_$,$"$j$^$9!#(B 280.1590 +$BNc$($P!"(B 280.1591 +$B%m!<%+%k%[%9%H>e$N4IM}<T$,%j%]%8%H%j$rJQ99$G$-$k0lJ}$G!"(B 280.1592 +$BMxMQ<T$,%5!<%P7PM3$GJQ99$r(B \hgcmd{push} $B$G$-$J$$$h$&$K!"(B 280.1593 +$B0l;~E*$J$$$71J5W$K(B``$BE`7k(B''$B$9$k$3$H$b$G$-$^$9!#(B 280.1594 + 280.1595 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1596 + 280.1597 +\begin{description} 280.1598 + 280.1599 +\item[\texttt{source}] $BJ8;zNs!#(B 280.1600 + $B%A%'%s%8%;%C%H$NM3Mh85$rI=$7$^$9!#(B 280.1601 + $B>\:Y$O(B\ref{sec:hook:sources}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1602 + 280.1603 +\item[\texttt{url}] URL$B!#(B 280.1604 + $BFCDj$G$-$k>l9g$K8B$j!"1s3V%j%]%8%H%j$N>l=j$rI=$7$^$9!#(B 280.1605 + $B>\:Y$O(B\ref{sec:hook:url}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1606 + 280.1607 +\end{description} 280.1608 + 280.1609 +$BMWJLES;2>H!'(B 280.1610 +\hook{changegroup} $B!J(B\ref{sec:hook:changegroup}~$B@a!K!"(B 280.1611 +\hook{incoming} $B!J(B\ref{sec:hook:incoming}~$B@a!K!"(B 280.1612 +\hook{pretxnchangegroup} $B!J(B\ref{sec:hook:pretxnchangegroup}~$B@a!K(B 280.1613 + 280.1614 +\subsection{\hook{precommit}---before starting to commit a changeset} 280.1615 +\label{sec:hook:precommit} 280.1616 + 280.1617 +$B$3$N%U%C%/$O!"(B 280.1618 +Mercurial $B$,?7$?$J%A%'%s%8%;%C%H$r%3%_%C%H$9$kA0$K<B9T$5$l$^$9!#(B 280.1619 +$B%3%_%C%H$5$l$k%U%!%$%k!"%3%_%C%H%a%C%;!<%8$J$$$7F|IU$H$$$C$?!"(B 280.1620 +$B%3%_%C%H$K4X$9$k%a%?%G!<%?$r(B 280.1621 +Mercurial $B$,B7$($kA0$K<B9T$5$l$^$9!#(B 280.1622 + 280.1623 +$B$3$N%U%C%/$NMQES$N0l$D$K!"(B 280.1624 +$B%A%'%s%8%;%C%H$N<u$1F~$l$r5v$90lJ}$G$N!"(B 280.1625 +$B?7$?$J%A%'%s%8%;%C%H$N%3%_%C%H$N6X;_$,$"$j$^$9!#(B 280.1626 +$BB>$NMQES$H$H$7$F$O!"(B 280.1627 +$B%S%k%I$d%F%9%H$r<B;\$7!"(B 280.1628 +$B$=$l$i$,@.8y$7$?>l9g$K$N$_%3%_%C%H$r5v2D$9$k!"(B 280.1629 +$B$H$$$&$b$N$b$"$j$^$9!#(B 280.1630 + 280.1631 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1632 + 280.1633 +\begin{description} 280.1634 +\item[\texttt{parent1}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1635 + $B:n6HNN0h%G%#%l%/%H%j$K$H$C$F!"(B 280.1636 + $BBh#1?F$H$J$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1637 + 280.1638 +\item[\texttt{parent2}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1639 + $B:n6HNN0h%G%#%l%/%H%j$K$H$C$F!"(B 280.1640 + $BBh#2?F$H$J$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1641 + 280.1642 +\end{description} 280.1643 + 280.1644 +$B%3%_%C%H$,?J9T$7$?>l9g!"(B 280.1645 +$B:n6HNN0h%G%#%l%/%H%j$N!JN>!K?F$,!"(B 280.1646 +$B?7$?$J%A%'%s%8%;%C%H$N?F$H$J$j$^$9!#(B 280.1647 + 280.1648 +$BMWJLES;2>H!'(B 280.1649 +\hook{commit} $B!J(B\ref{sec:hook:commit}~$B@a!K!"(B 280.1650 +\hook{pretxncommit} $B!J(B\ref{sec:hook:pretxncommit}~$B@a!K(B 280.1651 + 280.1652 +\subsection{\hook{preoutgoing}---before starting to propagate changesets} 280.1653 +\label{sec:hook:preoutgoing} 280.1654 + 280.1655 +$B$3$N%U%C%/$O!"(B 280.1656 +Mercurial $B$,30It$KE>Aw$5$l$k%A%'%s%8%;%C%H$rFCDj$9$kD>A0$K<B9T$5$l$^$9!#(B 280.1657 + 280.1658 +$B%A%'%s%8%;%C%H$,B>$N%j%]%8%H%j$XE>Aw$5$l$k$N$rKI$0$3$H$O!"(B 280.1659 +$B$3$N%U%C%/$KA[Dj$5$l$kMQES$N#1$&$G$9!#(B 280.1660 + 280.1661 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1662 + 280.1663 +\begin{description} 280.1664 +\item[\texttt{source}] $BJ8;zNs!#(B 280.1665 + $BEv3:%j%]%8%H%j$KBP$9$k%A%'%s%8%;%C%H$N<hF@MW5a$NH/9TM3Mh$rI=$7$^$9(B 280.1666 + $B!J(B\ref{sec:hook:sources}~$B@a$r;2>H$7$F$/$@$5$$!K!#(B 280.1667 + $B$3$N%Q%i%a!<%?$,<h$jF@$kCM$K4X$7$F$O!"(B 280.1668 + \hook{outgoing} $B$N(B \texttt{source} $B%Q%i%a!<%?$K4X$9$k(B 280.1669 + \ref{sec:hook:outgoing}~$B@a$N5-=R$r;2>H$7$F$/$@$5$$!#(B 280.1670 + 280.1671 +\item[\texttt{url}] URL$B!#(B 280.1672 + $BFCDj$G$-$k>l9g$K8B$j!"1s3V%j%]%8%H%j$N>l=j$rI=$7$^$9!#(B 280.1673 + $B>\:Y$O(B\ref{sec:hook:url}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1674 + 280.1675 +\end{description} 280.1676 + 280.1677 +$BMWJLES;2>H(B: 280.1678 +\hook{outgoing} $B!J(B\ref{sec:hook:outgoing}~$B@a!K(B 280.1679 + 280.1680 +\subsection{\hook{pretag}---before tagging a changeset} 280.1681 +\label{sec:hook:pretag} 280.1682 + 280.1683 +$B$3$N@)8f%U%C%/$O!"(B 280.1684 +$B%?%0$,@8@.$5$l$kA0$K<B9T$5$l$^$9!#(B 280.1685 +$B%U%C%/$N<B9T$,@.8y$7$?>l9g!"%?%0$N@8@.$O7QB3$5$l!"(B 280.1686 +$B%U%C%/$N<B9T$,<:GT$7$?>l9g!"%?%0$O@8@.$5$l$^$;$s!#(B 280.1687 + 280.1688 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1689 + 280.1690 +\begin{description} 280.1691 +\item[\texttt{local}] $B??56CM!#(B 280.1692 + $B%?%0$,%j%]%8%H%j$KBP$7$F%m!<%+%k$J$b$N(B 280.1693 + $B!J(B\sfilename{.hg/localtags} $B$K>pJs$,3JG<$5$l$k!K$J$N$+!"(B 280.1694 + Mercurial $B$K4IM}$5$l$k$b$N!J(B\sfilename{.hgtags} $B$K>pJs$,3JG<!K(B 280.1695 + $B$J$N$+$rI=$7$^$9!#(B 280.1696 + 280.1697 +\item[\texttt{node}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1698 + $B%?%0IU$1$5$l$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1699 + 280.1700 +\item[\texttt{tag}] $BJ8;zNs!#(B 280.1701 + $B:n@.$5$l$k%?%0$NL>A0!#(B 280.1702 + 280.1703 +\end{description} 280.1704 + 280.1705 +$B@8@.$5$l$k%?%0$,9=@.4IM}BP>]$H$J$k>l9g!"(B 280.1706 +\hook{precommit} $B!J(B\ref{sec:hook:commit}~$B@a!K$*$h$S(B 280.1707 +\hook{pretxncommit} $B!J(B\ref{sec:hook:pretxncommit}~$B@a!K(B 280.1708 +$B%U%C%/$b<B9T$5$l$^$9!#(B 280.1709 + 280.1710 +$BMWJLES;2>H!'(B 280.1711 +\hook{tag} $B!J(B\ref{sec:hook:tag}~$B@a!K(B 280.1712 + 280.1713 +\subsection{\hook{pretxnchangegroup}---before completing addition of 280.1714 + remote changesets} 280.1715 +\label{sec:hook:pretxnchangegroup} 280.1716 + 280.1717 +$B$3$N@)8f%U%C%/$O!"(B 280.1718 +$B%H%i%s%6%/%7%g%s(B--- 280.1719 +$B$3$N%H%i%s%6%/%7%g%s$O!"(B 280.1720 +$BB>$N%j%]%8%H%j$+$i$N0l72$N%A%'%s%8%;%C%H$NDI2C$r4IM}$7$^$9(B 280.1721 +---$B$,40N;$9$kA0$K<B9T$5$l$^$9!#(B 280.1722 +$B%U%C%/$N<B9T$,@.8y$7$?>l9g!"%H%i%s%6%/%7%g%s$O40N;$7!"(B 280.1723 +$BA4$F$N%A%'%s%8%;%C%H$,%j%]%8%H%j$K$*$$$F1JB32=$5$l$^$9!#(B 280.1724 +$B%U%C%/$N<B9T$,<:GT$7$?>l9g!"(B 280.1725 +$B%H%i%s%6%/%7%g%s$O4,$-La$5$l!"(B 280.1726 +$B%A%'%s%8%;%C%H$K4X$9$k%G!<%?$OGK4~$5$l$^$9!#(B 280.1727 + 280.1728 +$B$3$N%U%C%/$O!"(B 280.1729 +$B!V$[$\DI2C$5$l$?!W%A%'%s%8%;%C%H$K4X$9$k%a%?%G!<%?$K%"%/%;%9$G$-$^$9$,!"(B 280.1730 +$B1JB32=$5$l$k$h$&$JA`:n(B\footnote{$BLuCm(B: 280.1731 +$BNc$($P!"30It$N(B DBMS $B$X$N%G!<%?3JG<$d!"(B 280.1732 +$B8x3+MQ%U%!%$%k$X$N=q$-=P$7Ey!#(B} 280.1733 +$B$r$3$l$i$N%G!<%?$K4p$E$$$F9T$&$Y$-$G$O$"$j$^$;$s(B 280.1734 +$B:n6H%G%#%l%/%H%j$bJQ99$9$Y$-$G$O$"$j$^$;$s!#(B 280.1735 + 280.1736 +$B$3$N%U%C%/$N<B9TCf$K!"(B 280.1737 +$BB>$N(B Mercurial $B%W%m%;%9$,F1$8%j%]%8%H%j$K%"%/%;%9$7$F$-$?>l9g!"(B 280.1738 +$B$3$N%W%m%;%9$+$i$O!"(B 280.1739 +$B!V$[$\DI2C$5$l$?!W%A%'%s%8%;%C%H$,1JB32=$5$l$?$b$N$N$h$&$K8+$($^$9!#(B 280.1740 +$B$3$N>u67$r2sHr$9$k<j=g$rF'$^$J$$$H!"(B 280.1741 +$B6%9g>uBV$K$J$j$+$M$^$;$s!#(B 280.1742 + 280.1743 +$B$3$N%U%C%/$O!"%A%'%s%8%;%C%H72$KBP$9$k?GCG$KMxMQ2DG=$G$9!#(B 280.1744 +$B%U%C%/$N<B9T$,<:GT$7$?>l9g!"(B 280.1745 +$B%H%i%s%6%/%7%g%s$,4,$-La$5$l!"(B 280.1746 +$BA4$F$N%A%'%s%8%;%C%H$,(B``$B5qH](B''$B$5$l$^$9!#(B 280.1747 + 280.1748 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1749 + 280.1750 +\begin{description} 280.1751 +\item[\texttt{node}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1752 + $BDI2C$5$l$k0l72$NCf$N:G=i$N%A%'%s%8%;%C%H$N(BID$B!#(B 280.1753 + $B$3$N%A%'%s%8%;%C%H$+$i(B 280.1754 + \index{tags!\texttt{tip}}\texttt{tip} 280.1755 + $B$^$G!J(B\texttt{tip} $B<+?H$b4^$`!K$NA4$F$N%A%'%s%8%;%C%H$,!"(B 280.1756 + $BC1FH$N(B \hgcmd{pull}$B!"(B\hgcmd{push} $B$J$$$7(B \hgcmd{unbundle} 280.1757 + $BA`:n$K$h$jDI2C$5$l$?$3$H$K$J$j$^$9!#(B 280.1758 + 280.1759 +\item[\texttt{source}] $BJ8;zNs!#(B 280.1760 + $B%A%'%s%8%;%C%H$NM3Mh85$rI=$7$^$9!#(B 280.1761 + $B>\:Y$O(B\ref{sec:hook:sources}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1762 + 280.1763 +\item[\texttt{url}] URL$B!#(B 280.1764 + $BFCDj$G$-$k>l9g$K8B$j!"1s3V%j%]%8%H%j$N>l=j$rI=$7$^$9!#(B 280.1765 + $B>\:Y$O(B\ref{sec:hook:url}~$B@a$r;2>H$7$F$/$@$5$$!#(B 280.1766 + 280.1767 +\end{description} 280.1768 + 280.1769 +$BMWJLES;2>H!'(B 280.1770 +\hook{changegroup} $B!J(B\ref{sec:hook:changegroup}$B!K!"(B 280.1771 +\hook{incoming} $B!J(B\ref{sec:hook:incoming}$B!K!"(B 280.1772 +\hook{prechangegroup} $B!J(B\ref{sec:hook:prechangegroup}$B!K(B 280.1773 + 280.1774 +\subsection{\hook{pretxncommit}---before completing commit of new changeset} 280.1775 +\label{sec:hook:pretxncommit} 280.1776 + 280.1777 +$B$3$N@)8f%U%C%/$O!"(B 280.1778 +$B%H%i%s%6%/%7%g%s(B--- 280.1779 +$B$3$N%H%i%s%6%/%7%g%s$O!"(B 280.1780 +$B?7$?$J%A%'%s%8%;%C%H$N%3%_%C%H$r4IM}$7$^$9(B 280.1781 +---$B$,40N;$9$kA0$K<B9T$5$l$^$9!#(B 280.1782 +$B%U%C%/$N<B9T$,@.8y$7$?>l9g!"%H%i%s%6%/%7%g%s$O40N;$7!"(B 280.1783 +$B%A%'%s%8%;%C%H$,%j%]%8%H%j$K$*$$$F1JB32=$5$l$^$9!#(B 280.1784 +$B%U%C%/$N<B9T$,<:GT$7$?>l9g!"(B 280.1785 +$B%H%i%s%6%/%7%g%s$O4,$-La$5$l!"(B 280.1786 +$B%3%_%C%H$K4X$9$k%G!<%?$OGK4~$5$l$^$9!#(B 280.1787 + 280.1788 +$B$3$N%U%C%/$O!"(B 280.1789 +$B!V$[$\?75,:n@.$5$l$?!W%A%'%s%8%;%C%H$K4X$9$k%a%?%G!<%?$K%"%/%;%9$G$-$^$9$,!"(B 280.1790 +$B1JB32=$5$l$k$h$&$JA`:n$r$3$l$i$N%G!<%?$K4p$E$$$F9T$&$Y$-$G$O$"$j$^$;$s(B 280.1791 +$B:n6H%G%#%l%/%H%j$bJQ99$9$Y$-$G$O$"$j$^$;$s!#(B 280.1792 + 280.1793 +$B$3$N%U%C%/$N<B9TCf$K!"(B 280.1794 +$BB>$N(B Mercurial $B%W%m%;%9$,F1$8%j%]%8%H%j$K%"%/%;%9$7$F$-$?>l9g!"(B 280.1795 +$B$3$N%W%m%;%9$+$i$O!"(B 280.1796 +$B!V$[$\?75,:n@.$5$l$?!W%A%'%s%8%;%C%H$,1JB32=$5$l$?$b$N$N$h$&$K8+$($^$9!#(B 280.1797 +$B$3$N>u67$r2sHr$9$k<j=g$rF'$^$J$$$H!"(B 280.1798 +$B6%9g>uBV$K$J$j$+$M$^$;$s!#(B 280.1799 + 280.1800 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1801 + 280.1802 +\begin{description} 280.1803 + 280.1804 +\item[\texttt{node}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1805 + $B?7$7$/%3%_%C%H$5$l$?%A%'%s%8%;%C%H$N(BID$B!#(B 280.1806 + 280.1807 +\item[\texttt{parent1}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1808 + $B?7$7$/%3%_%C%H$5$l$?%A%'%s%8%;%C%H$K$H$C$F!"(B 280.1809 + $BBh#1?F$H$J$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1810 + 280.1811 +\item[\texttt{parent2}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1812 + $B?7$7$/%3%_%C%H$5$l$?%A%'%s%8%;%C%H$K$H$C$F!"(B 280.1813 + $BBh#2?F$H$J$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1814 + 280.1815 +\end{description} 280.1816 + 280.1817 +$BMWJLES;2>H!'(B 280.1818 +\hook{precommit} $B!J(B\ref{sec:hook:precommit}~$B@a!K(B 280.1819 + 280.1820 +\subsection{\hook{preupdate}---before updating or merging working directory} 280.1821 +\label{sec:hook:preupdate} 280.1822 + 280.1823 +$B$3$N@)8f%U%C%/$O!"(B 280.1824 +$B:n6HNN0h%G%#%l%/%H%j$K$*$1$k(B \hgcmd{update} $B$J$$$7(B \hgcmd{merge} 280.1825 +$B$N<B;\A0$K<B9T$5$l$^$9!#(B 280.1826 +$B$3$N%U%C%/$O!"(B 280.1827 +Mercurial $B$N(B \hgcmd{update} 280.1828 +$B<B;\A03NG'$,(B \hgcmd{update} $B$J$$$7(B \hgcmd{merge} 280.1829 +$B$r<B9T2DG=$HH=CG$7$?>l9g$K$7$+<B9T$5$l$^$;$s!#(B 280.1830 +$B%U%C%/$N<B9T$,@.8y$7$?>l9g!"(B 280.1831 +\hgcmd{update} $B$J$$$7(B \hgcmd{merge} $B$N<B9T$O7QB3$5$l$^$9$,!"(B 280.1832 +$B%U%C%/$N<B9T$,<:GT$7$?>l9g!"(B 280.1833 +\hgcmd{update} $B$J$$$7(B \hgcmd{merge} $B$O<B9T$5$l$^$;$s!#(B 280.1834 + 280.1835 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1836 + 280.1837 +\begin{description} 280.1838 +\item[\texttt{parent1}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1839 + $B:n6HNN0h%G%#%l%/%H%j$,(B \hgcmd{update} $B$5$l$k?F%A%'%s%8%;%C%H$N(BID$B!#(B 280.1840 + $B:n6HNN0h%G%#%l%/%H%j$,(B \hgcmd{merge} $B$5$l$k>l9g$O!"(B 280.1841 + $B8=:_$N?F%A%'%s%8%;%C%H$HF1$8$K$J$j$^$9!#(B 280.1842 + 280.1843 +\item[\texttt{parent2}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1844 + $B:n6HNN0h%G%#%l%/%H%j$,(B \hgcmd{merge} $B$5$l$k>l9g$K$N$_@_Dj$5$l$^$9!#(B 280.1845 + $B:n6HNN0h%G%#%l%/%H%j$N(B \hgcmd{merge} $BBP>]$H$J$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1846 + 280.1847 +\end{description} 280.1848 + 280.1849 +$BMWJLES;2>H!'(B 280.1850 +\hook{update} $B!J(B\ref{sec:hook:update}~$B@a!K(B 280.1851 + 280.1852 +\subsection{\hook{tag}---after tagging a changeset} 280.1853 +\label{sec:hook:tag} 280.1854 + 280.1855 +$B$3$N%U%C%/$O!"%?%0$,@8@.$5$l$?8e$G<B9T$5$l$^$9!#(B 280.1856 + 280.1857 +$B$3$N%U%C%/$KEO$5$l$k%Q%i%a!<%?$O(B: 280.1858 + 280.1859 +\begin{description} 280.1860 +\item[\texttt{local}] $B??56CM!#(B 280.1861 + $B%?%0$,%j%]%8%H%j$KBP$7$F%m!<%+%k$J$b$N(B 280.1862 + $B!J(B\sfilename{.hg/localtags} $B$K>pJs$,3JG<$5$l$k!K$J$N$+!"(B 280.1863 + Mercurial $B$K4IM}$5$l$k$b$N!J(B\sfilename{.hgtags} $B$K>pJs$,3JG<!K(B 280.1864 + $B$J$N$+$rI=$7$^$9!#(B 280.1865 + 280.1866 +\item[\texttt{node}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1867 + $B%?%0IU$1$5$l$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1868 + 280.1869 +\item[\texttt{tag}] $BJ8;zNs!#(B 280.1870 + $B:n@.$5$l$k%?%0$NL>A0!#(B 280.1871 + 280.1872 +\end{description} 280.1873 + 280.1874 +$B@8@.$5$l$k%?%0$,9=@.4IM}BP>]$H$J$k>l9g!"(B 280.1875 +$B$3$N%U%C%/$N<B9T$K@hN)$C$F(B 280.1876 +\hook{commit} $B%U%C%/!J(B\ref{sec:hook:commit}~$B@a!K$,<B9T$5$l$^$9!#(B 280.1877 + 280.1878 +$BMWJLES;2>H!'(B 280.1879 +\hook{pretag} $B!J(B\ref{sec:hook:pretag}~$B@a!K(B 280.1880 + 280.1881 +\subsection{\hook{update}---after updating or merging working directory} 280.1882 +\label{sec:hook:update} 280.1883 + 280.1884 +$B$3$N%U%C%/$O!"(B 280.1885 +$B:n6HNN0h%G%#%l%/%H%j$K$*$1$k(B \hgcmd{update} $B$J$$$7(B \hgcmd{merge} 280.1886 +$B$,40N;$7$?:]$K<B9T$5$l$^$9!#(B 280.1887 +\hgcmd{merge} $B$O<:GT$7F@$k(B 280.1888 +$B!J30It%3%^%s%I$N(B \command{hgmerge} 280.1889 +$B$,3F%U%!%$%k$K$*$1$k>WFM$N2r>C$K<:GT$7$?>l9g!K$N$G!"(B 280.1890 +$B$3$N%U%C%/$K$O(B \hgcmd{update} $B$J$$$7(B \hgcmd{merge} 280.1891 +$B$N@.H]$,EA$($i$l$^$9!#(B 280.1892 + 280.1893 +\begin{description} 280.1894 +\item[\texttt{error}] $B??56CM!#(B 280.1895 + \hgcmd{update} $B$J$$$7(B \hgcmd{merge} $B<B9T$,@.8y$7$?$+H]$+$rI=$7$^$9!#(B 280.1896 + 280.1897 +\item[\texttt{parent1}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1898 + $B?7$7$/%3%_%C%H$5$l$?%A%'%s%8%;%C%H$K$H$C$F!"(B 280.1899 + $BBh#1?F$H$J$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1900 + 280.1901 +\item[\texttt{parent2}] $B%A%'%s%8%;%C%H(BID$B!#(B 280.1902 + $B?7$7$/%3%_%C%H$5$l$?%A%'%s%8%;%C%H$K$H$C$F!"(B 280.1903 + $BBh#2?F$H$J$k%A%'%s%8%;%C%H$N(BID$B!#(B 280.1904 + 280.1905 +\end{description} 280.1906 + 280.1907 +$BMWJLES;2>H!'(B 280.1908 +\hook{preupdate} $B!J(B\ref{sec:hook:preupdate}$B@a!K(B 280.1909 + 280.1910 +%%% Local Variables: 280.1911 +%%% mode: latex 280.1912 +%%% TeX-master: "00book" 280.1913 +%%% End:
281.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 281.2 +++ b/ja/htlatex.sh Fri Aug 14 12:10:47 2009 -0700 281.3 @@ -0,0 +1,8 @@ 281.4 +#!/bin/sh 281.5 + 281.6 +# USAGE: htlatex.sh <html-target> <????> <latex-option> 281.7 +#LATEX=latex 281.8 +#LATEX=platex 281.9 +LATEX=jlatex 281.10 + 281.11 +${LATEX} $3 '\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCode"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1.a.b.c.{\g@addto@macro\@documentclasshook{\RequirePackage[#1,html]{tex4ht}}\let\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csname tex4ht\endcsname{#1,html}\def\HCode####1{\documentstyle[tex4ht,}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode '$2'.a.b.c.\input ' $1
282.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 282.2 +++ b/ja/intro.tex Fri Aug 14 12:10:47 2009 -0700 282.3 @@ -0,0 +1,648 @@ 282.4 +\chapter{Introduction} 282.5 +\label{chap:intro} 282.6 + 282.7 +\section{About revision control} 282.8 + 282.9 +$B9=@.4IM}$H$O!"(B 282.10 +$BJ#?t$NHG$r;}$D>pJs72$r4IM}$9$k<j=g$N$3$H$G$9!#(B 282.11 +$B:G$bC1=c$J<jK!$G$O!"(B 282.12 +$BB?$/$N?M!9$,$3$l$r<jF0$G9T$$$^$9!#(B 282.13 +$B%U%!%$%k99?7;~$K$O!"(B 282.14 +$BD>A0$NHG$KMxMQ$7$?CM$h$j$bBg$-$JCM$r3d$jEv$F$F$+$i!"(B 282.15 +$B$=$NCM$r4^$a$??7$7$$L>A0$G%U%!%$%k$rJ]B8$9$k!"(B 282.16 +$B$H$$$C$?6q9g$G$9!#(B 282.17 + 282.18 +$B$7$+$7$J$,$i!"$?$C$?#1$D$N%U%!%$%k$G$"$C$F$b!"(B 282.19 +$BJ#?t$NHG$r<jF0$G4IM}$9$k:n6H$O4V0c$$$,$A$G$9$N$G!"(B 282.20 +$B$3$N<j=g$r<+F02=$9$k%=%U%H%&%'%"%D!<%k$K$OD9$$Nr;K$,$"$j$^$9!#(B 282.21 +$B=i4|$N9=@.4IM}$r<+F02=$9$k%D!<%k$O!"(B 282.22 +$BC10l%f!<%6$K$h$kC10l%U%!%$%k$NHG4IM}$NJd=u$r0U?^$7$F$$$^$7$?!#(B 282.23 +$B$3$3?t==G/$N4V$K!"(B 282.24 +$B9=@.4IM}%D!<%k$NE,MQHO0O$OBgJQ3HBg$5$l$F$-$^$7$?!#(B 282.25 +$B8=:_$G$O!"(B 282.26 +$BJ#?t$N%U%!%$%k$KBP$9$kJ#?t$N%f!<%6$N6&F1:n6H$r4IM}$9$k$^$G$K$J$C$F$$$^$9!#(B 282.27 +$B:#;~$N:GA1$N9=@.4IM}%D!<%k$O!"(B 282.28 +$B6&F1:n6H$9$k?t@i?M$N%f!<%6$K$h$C$F!"(B 282.29 +$B?t==K|$N%U%#%k$+$i$J$k%W%m%8%'%/%H$N%G!<%?$,J#@=$5$l$F$b!"(B 282.30 +$B$S$/$H$b$7$^$;$s!#(B 282.31 + 282.32 +\subsection{Why use revision control?} 282.33 + 282.34 +$B%W%m%8%'%/%H$K$*$$$F!"FI<T$G$"$k$"$J$?$d!"(B 282.35 +$B$"$J$?$N%A!<%`$,<+F02=$5$l$?9=@.4IM}%D!<%k$r;HMQ$7$?$/$J$k$N$O!"(B 282.36 +$B0J2<$N$h$&$JM}M3$,$"$k$+$i$G$O$J$$$G$7$g$&$+!#(B 282.37 + 282.38 +\begin{itemize} 282.39 +\item $B%W%m%8%'%/%H$NNr;K$HH/E8$r5-O?$7$F$/$l$k$N$G!"(B 282.40 + $B<+J,$G$=$l$r5-O?$9$kI,MW$,L5$$$?$a!#(B 282.41 + $B9=@.4IM}%D!<%k$r;HMQ$9$k$3$H$G!"(B 282.42 + $BJQ99Kh$K!"(B\emph{$B2?;~(B}$B!"(B\emph{$BC/$,(B}$B!"(B\emph{$B2?8N(B}$B!"(B 282.43 + \emph{$B2?$r(B}$BJQ99$7$?$+$N5-O?$r8+$k$3$H$,$G$-$^$9!#(B 282.44 + 282.45 +\item $BB>$N%a%s%P!<$H$N6&F1:n6H$,MF0W$K$J$k$?$a!#(B 282.46 + $BNc$($P!"@x:_E*$KN>N)$7$J$$JQ99$,$[$\F1;~$K9T$o$l$?:]$K!"(B 282.47 + $B9=@.4IM}%D!<%k$O$=$N$3$H$r8!=P$7$?>e$G!"(B 282.48 + $B$3$N$h$&$J>WFM$N2r>C$r<j=u$1$7$F$/$l$^$9!#(B 282.49 + 282.50 +\item $B4V0c$$$+$i$NI|5l$r<j=u$1$7$F$/$l$k$?$a!#(B 282.51 + $BJQ99<B;\$7$?8e$G4V0c$$$K5$IU$$$?>l9g!"(B 282.52 + $BJ#?t$N%U%!%$%k$KEO$k4V0c$$$G$"$C$F$b!"(B 282.53 + $B0JA0$N>uBV$KI|5l$9$k$3$H$,$G$-$^$9!#(B 282.54 + $B<B$N$H$3$m!"(B 282.55 + \emph{$BK\Ev$K(B}$BNI$$9=@.4IM}%D!<%k$G$"$l$P!"(B 282.56 + $BLdBj$,:.F~$7$?;~E@$N87L)$J3d$j=P$7$r8z2LE*$KC5$7=P$9$3$H$,$G$-$k$G$7$g$&(B 282.57 + $B!J>\:Y$O!"(B\ref{sec:undo:bisect}~$B@a$r;2>H$7$F$/$@$5$$!K(B\footnote{$BLuCm(B: 282.58 + $B$D$^$j!"$=$l$,$G$-$k(B Mercurial $B$O(B\emph{$BK\Ev$K(B}$BNI$$9=@.4IM}%D!<%k$@!"(B 282.59 + $B$H$$$&$3$H$G$9$M!J>P!K(B}$B!#(B 282.60 + 282.61 +\item $B%W%m%8%'%/%H$NJ#?t$NHG$N4V$G$NF1;~:n6H$d!"(B 282.62 + $BHG$N4V$G$N9T$-Mh$rJd=u$7$F$/$l$k$?$a!#(B 282.63 + 282.64 +\end{itemize} 282.65 + 282.66 +$B$3$l$i$NM}M3$NKX$I$,(B--- 282.67 +$B>/$J$/$H$bM}6~$N>e$G$O(B 282.68 +---$B0l?M$-$j$N%W%m%8%'%/%H$G$b!"(B 282.69 +$BI4?M$H6&F1:n6H$9$k%W%m%8%'%/%H$G$bM-8z$G$9!#(B 282.70 + 282.71 +$B$3$l$i#2$D$N5,LO$N0[$J$k%1!<%9(B 282.72 +$B!J(B``lone hacker'' $B$H(B ``huge team''$B!K$N$=$l$>$l$K$*$$$F!"(B 282.73 +$B9=@.4IM}%D!<%k$N<BMQ@-$K4X$9$k=EMW$JLdBj$O!"(B 282.74 +$B%D!<%k$+$iF@$i$l$k(B\emph{$BMx1W(B}$B$H$=$N(B\emph{$B%3%9%H(B}$B$r$I$N$h$&$KHf3S$9$k$+!"(B 282.75 +$B$H$$$&E@$K$"$j$^$9!#(B 282.76 +$BM}2r$d;HMQ$,Fq$7$$9=@.4IM}%D!<%k$O!"(B 282.77 +$B%3%9%H$,9b$/IU$/$G$7$g$&!#(B 282.78 + 282.79 +$B9=@.4IM}$N%D!<%k$H%W%m%;%9H4$-$G$O!"(B 282.80 +500 $B?M$+$i$J$k%W%m%8%'%/%H$O$*$=$i$/<+J,<+?H$N=E$_$G!"(B 282.81 +$B$9$0$K$G$bJx$l$F$7$^$&$G$7$g$&!#(B 282.82 +$B$3$N>l9g!"(B 282.83 +$B9=@.4IM}%D!<%k(B\emph{$BH4$-(B}$B$K$O<:GT$,J]>Z$5$l$?$h$&$J$b$N$G$9$+$i!"(B 282.84 +$B$=$l$r;W$($P!"(B 282.85 +$B9=@.4IM}%D!<%k$rMxMQ$9$k%3%9%H$K$D$$$F$O9M$($k$^$G$bL5$$$G$7$g$&!#(B 282.86 + 282.87 +$B0lJ}$G!"0l?M$G$N(B``quick hack''$B$N>l9g!"(B 282.88 +$B9=@.4IM}%D!<%k$r;H$&%3%9%H$O%W%m%8%'%/%HA4BN$N%3%9%H$HF10l$NH&$G$9$+$i!"(B 282.89 +$B9=@.4IM}$r;H$&M>CO$OKX$IL5$$$h$&$K8+$($k$+$b$7$l$^$;$s!#(B 282.90 +$B$7$+$7!"$=$l$OK\Ev$G$7$g$+!)(B 282.91 + 282.92 +Mercurial $B$O$3$l$i(B\emph{$BN>J}(B}$B$N5,LO$N3+H/$r>e<j$K%5%]!<%H$7$^$9!#(B 282.93 +$B$o$:$+?tJ,$G4pK\$r=,F@$G$-!"(B 282.94 +$B$=$NDc%*!<%P%X%C%I$N$*1"$G(B 282.95 +$B:G$b>.$5$J%W%m%8%'%/%H$K$b4JC1$K9=@.4IM}$rE,MQ$G$-$^$9!#(B 282.96 + 282.97 +$B9=@.4IM}%D!<%k$NC1=c$5$O!"(B 282.98 +$BFq2r$J35G0$d!"(B 282.99 +\emph{$BK\Ev$K(B}$B$d$m$&$H$7$F$$$k$3$H$H?4M}E*$K6%9g$9$k%3%^%s%INs$H$$$C$?$b$N$r!"(B 282.100 +$BBgNL$K?H$KIU$1$kI,MW$,L5$$$3$H$r0UL#$7$^$9!#(B 282.101 +$BF1;~$K!"(B 282.102 +Mercurial $B$N9b@-G=$5$H(B P2P $BE*FC@-$O!"(B 282.103 +$BBg$-$J%W%m%8%'%/%H$X$NMxMQ$X$H6l$bL5$/3HBg$G$-$^$9!#(B 282.104 + 282.105 +$B1?1D$N2<<j$J%W%m%8%'%/%H$r5_$($k9=@.4IM}%D!<%k$O$"$j$^$;$s$,!"(B 282.106 +$BNI$$%D!<%k$rA*Br$9$k$3$H$G!"(B 282.107 +$B%W%m%8%'%/%H$G$N:n6H$K$*$1$k3j$i$+$5$,A4$/0c$C$F$-$^$9!#(B 282.108 + 282.109 +\subsection{The many names of revision control} 282.110 + 282.111 +$B9=@.4IM}$OB?MM$JNN0h$J$N$G!"(B 282.112 +$B<B:]$K$OE}0l$5$l$?L>A0$dF,;z8l8l$,$"$j$^$;$s!#(B 282.113 + 282.114 +$B$h$/L\$K$9$k0lHLE*$JL>>N$*$h$SN,>N$r0J2<$KNs5s$7$^$9!#(B 282.115 + 282.116 +\begin{itemize} 282.117 +\item Revision control (RCS) 282.118 +\item Software configuration management (SCM), or configuration management 282.119 +\item Source code management 282.120 +\item Source code control, or source control 282.121 +\item Version control (VCS) 282.122 +\end{itemize} 282.123 + 282.124 +$B$3$l$i$NMQ8l$O<B:]$K$O$=$l$>$l0[$J$k0UL#$r;}$C$F$$$k!"(B 282.125 +$B$H<gD%$9$k?M$b$$$^$9$,!"(B 282.126 +$B<B:]$K$O$*8_$$$KHs>o$K=EJ#$7$?0UL#$r;}$C$F$$$k$N$G!"(B 282.127 +$B$3$l$i$KBP$7$F8DJL$K$"$l$3$l8@$&$3$H$K$O;?F1$b$G$-$^$;$s$7!"(B 282.128 +$BM-MQ@-$b$"$j$^$;$s(B\footnote{$BLuCm!'(B 282.129 +$B:r:#$N%=%U%H%&%'%"3+H/$K$*$1$kMQK!$r4U$_$F!"(B 282.130 +$B86J8$G(B ``revision control'' $B$H$J$C$F$$$k2U=j$O!"(B 282.131 +$B0U?^E*$K(B``$B9=@.4IM}(B''(configuration management)$B$HLu$7$F$$$^$9!#(B}$B!#(B 282.132 + 282.133 +\section{A short history of revision control} 282.134 + 282.135 +$B:G$bM-L>$J@N$N9=@.4IM}%D!<%k$O!"(B 282.136 +Bell Labs $B$N(B Marc Rochkind $B$,(B 1970 $BG/Be=iF,$K<BAu$7$?(B 282.137 +SCCS $B!J(BSource Code Control System$B!K$G$9!#(B 282.138 +SCCS $B$O8DJL$N%U%!%$%k$KBP$7$F5!G=$7!"(B 282.139 +$B%W%m%8%'%/%H$K=>;v$9$kA4$F$N:n6H<T$O!"(B 282.140 +$BC10l%7%9%F%`>e$N6&M-:n6HNN0h$X$N%"%/%;%98"$,I,MW$G$7$?!#(B 282.141 +$B$"$k;~E@$G$N$"$k%U%!%$%k$NJQ99$O!"$?$@0l?M$N:n6H<T$N$_$,2DG=$G!"(B 282.142 +$B%U%!%$%k$N%"%/%;%9$O%m%C%/$K$h$jD4Dd$5$l$F$$$^$7$?!#(B 282.143 +$B%U%!%$%k$r%m%C%/$7$?$^$^3+J|$7K:$l$F$7$^$$!"(B 282.144 +$B4IM}<T$NJd=uL5$7$K$OB>$N?M$,%U%!%$%k$rJQ99$G$-$J$/$7$F$7$^$&$3$H$O!"(B 282.145 +$BNI$/$"$k$3$H$G$7$?!#(B 282.146 + 282.147 +SCCS $B$N%U%j!<$JBeBX%D!<%k$H$7$F(B 282.148 +1980 $BG/Be=iF,$K(B Walter Tichy $B$,(B 282.149 +RCS $B!J(BRevison Control System$B!K$H8F$V%W%m%0%i%`$r3+H/$7$^$7$?!#(B 282.150 +SCCS $B$HF1MM!"(B 282.151 +RCS $B$NMxMQ$K$O!"(B 282.152 +$BC10l$N6&M-:n6HNN0h$G$N:n6H$H!"(B 282.153 +$BJ#?t$N:n6H<T$,F1;~$K2~JQ$9$k$N$rKI$0$?$a$N%m%C%/$,I,MW$G$7$?!#(B 282.154 + 282.155 +1980 $BG/Be8e4|!"(BDick Grune $B$O(B RCS $B$rMQ$$$F!"(B 282.156 +$BEv=i(B cmt $B$H8F$P$l$k%7%'%k%9%/%j%W%H72$r<BAu$7!"(B 282.157 +$B8e$K$3$l$i$O(B CVS $B!J(BConcurrent Versions System$B!K$H2~L>$5$l$^$7$?!#(B 282.158 +CVS $B$K$*$1$kBg$-$JJQ3W$O!"(B 282.159 +$B3F3+H/<T$4$H$N:n6HNN0h$K$*$$$F!"(B 282.160 +$B3+H/<T$,J?9T3n$D4vJ,FHN)$7$?:n6H$,$G$-$k$h$&$K$J$C$?$3$H$G$9!#(B 282.161 +SCCS $B$d(B RCS $B$G$ONI$/$"$C$?!"(B 282.162 +$B$$$D$G$bB>?M$NB-$rF'$s$G$7$^$&>u67$,!"(B 282.163 +$B3+H/<T$4$H$N:n6HNN0h$NF3F~$K$h$C$FKI$,$l$k$h$&$K$J$j$^$7$?!#(B 282.164 +$B3F3+H/<T$O!"(B 282.165 +$B%W%m%8%'%/%H$K4X$9$kA4$F$N%U%!%$%k$NJ#@=$r;}$A!"(B 282.166 +$B3F<+$NJ#@=$rFHN)$7$FJQ99$9$k$3$H$,$G$-$^$7$?!#(B 282.167 +$BCf1{$N%j%]%8%H%j$X$NJQ99$N%3%_%C%H$K@hN)$C$F!"(B 282.168 +$BJQ99FbMF$N%^!<%8$r$9$kI,MW$,$"$j$^$7$?!#(B 282.169 + 282.170 +Brian Berliner $B$O(B 282.171 +Grune $B$N%*%j%8%J%k%9%/%j%W%H$r85$K(B C $B$G=q$-D>$7!"(B 282.172 +$B0JMh8=BeHG$N(B CVS $B$X$HH/E8$9$k%3!<%I$r(B 1989 $B$K%j%j!<%9$7$^$7$?!#(B 282.173 +CVS $B$O$=$N8e!"(B 282.174 +$B!V%/%i%$%"%s%H!&%5!<%P!W%"!<%-%F%/%A%c$NF3F~$K$h$j!"(B 282.175 +$B%M%C%H%o!<%/@\B31[$7$NA`:n$r2DG=$H$9$k5!G=$r3MF@$7$^$7$?!#(B 282.176 +CVS $B$N%"!<%-%F%/%A%c$OCf1{=8LsE*$J$b$N$G!"(B 282.177 +$B%5!<%P$N$_$,%W%m%8%'%/%H$NMzNr$N$3$T!<$r;}$C$F$$$^$9!#(B 282.178 +$B%/%i%$%"%s%HB&$N:n6HNN0h$O!"(B 282.179 +$B%W%m%8%'%/%H%U%!%$%k$N:G?7HG$rJ#@=$7$?$b$N$H!"(B 282.180 +$B%5!<%P$N>l=jEy$rCN$k$?$a$N$o$:$+$J%a%?%G!<%?$r;}$C$F$$$k$@$1$G$9!#(B 282.181 +CVS $B$OHs>o$K@.8y$7$F$$$F!"(B 282.182 +$B$*$=$i$/@$3&$G:G$b9-$/;HMQ$5$l$F$$$k9=@.4IM}%7%9%F%`$G$7$g$&!#(B 282.183 + 282.184 +Sun Microsystems $B$O(B 1990 $BG/Be=iF,$K!"(B 282.185 +TeamWare $B$H8F$P$l$kJ,;69=@.4IM}%7%9%F%`$N$O$7$j$H$J$k$b$N$r3+H/$7$^$7$?!#(B 282.186 +TeamWare $B$K$*$1$k!J8D?M$N!K:n6HNN0h$O!"(B 282.187 +$B%W%m%8%'%/%H$N40A4$JJ#@=$r3JG<$7$F$$$^$9!#(B 282.188 +TeamWare $B$K$O!VCf1{%j%]%8%H%j!W$H$$$&35G0$,$"$j$^$;$s(B 282.189 +$B!J(BCVS $B$OMzNr3JG<$r(B RCS $B$K0MB8$7$F$$$^$7$?$,!"(B 282.190 +TeamWare $B$O(B SCCS $B$rMxMQ$7$F$$$^$7$?!K!#(B 282.191 + 282.192 +1990 $BG/Be$,?J$`$K$D$l$F!"(B 282.193 +$BLdBj0U<1$+$i(B CVS $B$K4X$9$kLdBj$,B?$/82:_2=$7$F$-$^$7$?!#(B 282.194 +$BNc$($P(B CVS $B$O!"(B 282.195 +$BJ#?t$N%U%!%$%k$KBP$9$kF1;~99?7$r!"(B 282.196 +$BO@M}E*$KIT2DJ,$JC10l$N:nMQ$H$7$F$^$H$a$kBX$o$j$K!"(B 282.197 +$B%U%!%$%k$4$H$K8DJL$K5-O?$7$F$$$^$9!#(B 282.198 +$B$^$?!"%U%!%$%k3,AX$r>e<j$/4IM}$G$-$J$$$?$a!"(B 282.199 +$B%U%!%$%k$d%G%#%l%/%H%j$r2~L>$9$k$3$H$G!"(B 282.200 +$BMF0W$K%j%]%8%H%j$r:.Mp$5$;$k$3$H$,$G$-$^$9!#(B 282.201 +$B$J$*0-$$$3$H$K!"(B 282.202 +CVS $B<+?H$N%=!<%9%3!<%I$OFI$`$K$bJ]<i$9$k$K$bFq2r$J$?$a!"(B 282.203 +$B%"!<%-%F%/%A%c>e$NLdBjE@$r=$@5$9$k(B``$B6lDKEY(B''$B$OK!30$J$b$N$G$7$?!#(B 282.204 + 282.205 +CVS $B$N3+H/$r9T$C$F$$$?(B 282.206 +Jim Blandy $B$*$h$S(B Karl Fogel $B$NFs?M$O!"(B 282.207 +$B$h$jNI$$%"!<%-%F%/%A%c$r;}$A!"(B 282.208 +$B>03n$D%3!<%I$,e:No$J%D!<%k$G(B CVS $B$rCV$-49$($k%W%m%8%'%/%H$r!"(B 282.209 +2001 $BG/$K;O$a$^$7$?!#(B 282.210 +$B7k2L$H$7$F@8$_=P$5$l$?(B Subversion $B$O!"(B 282.211 +CVS $B$NCf1{=8Ls7?%/%i%$%"%s%H!?%5!<%P%b%G%k$+$i$ON%$l$J$+$C$?$b$N$N!"(B 282.212 +$BJ#?t%U%!%$%k$NIT2DJ,%3%_%C%H$d!"(B 282.213 +$B$h$jNI$$L>A06u4V$N4IM}!"(B 282.214 +$B$*$h$S(B CVS $B$h$j$b35$MNI9%$J%D!<%k$H8@$&$KB-$k$=$NB>$NB?$/$N5!G=$r;}$C$F$$$^$9!#(B 282.215 +$B=i2s$N%j%j!<%90JMh!"$=$N?M5$$OB.$d$+$K>e>:$7$F$$$^$9!#(B 282.216 + 282.217 +$B$=$l$H35$MF1;~4|$K!"(B 282.218 +Graydon Hoare $B$O(B Monotone 282.219 +$B$H8F$P$l$kLn?4E*$JJ,;69=@.4IM}%7%9%F%`$K<h$j3]$+$j;O$a$^$7$?!#(B 282.220 +Monotone $B$O!"(B 282.221 +CVS $B@_7W>e$NB?$/$NLdBj$K<h$jAH$_!"(BP2P $B%"!<%-%F%/%A%c$r;}$D0lJ}$G!"(B 282.222 +$BB?$/$N3W?7E*$JE@$K$*$$$F=i4|$N!J$=$7$F$=$N8e$N!K(B 282.223 +$B9=@.4IM}%D!<%k$+$iHt$SH4$1$F$$$^$9!#(B 282.224 +Monotone $B$O!"(B 282.225 +$B0E9f$GMQ$$$i$l$k%O%C%7%eCM$r<1JL;R$H$7$F;HMQ$7$F$*$j!"(B 282.226 +$B0[$J$kM3Mh$N%3!<%I$K$H$C$FIT2D7g$J(B``$B?.Mj(B''$B$N35G0$r;}$C$F$$$^$9!#(B 282.227 + 282.228 +Mercurial $B$O(B 2005 $BG/$KCB@8$7$^$7$?!#(B 282.229 +$B@_7W>e$N4v$D$+$N8+CO$K$*$$$F(B Monotone $B$+$i1F6A$r<u$1$k0lJ}$G!"(B 282.230 +Mercurial $B$OMxMQ$N4JJX@-!"@-G=$N9b$5!"(B 282.231 +$B$*$h$SBg5,LO%W%m%8%'%/%H$X$NE,MQ@-$K<g4c$rCV$$$F$$$^$9!#(B 282.232 + 282.233 +\section{Trends in revision control} 282.234 + 282.235 +$B2a5n#4#0G/$KEO$k9=@.4IM}%D!<%k$N3+H/$HMxMQ$K$*$1$kJ6$l$bL5$$798~$H$7$F!"(B 282.236 +$B9=@.4IM}%D!<%k$NMxMQ<T$O!"(B 282.237 +$BMxMQ$7$F$$$k%D!<%k$N5!G=$K@:DL$9$k$H6&$K!"(B 282.238 +$B%D!<%k$N@)Ls$K$h$C$FM^@)$5$l$k$h$&$G$9!#(BXXXXXX 282.239 +There has been an unmistakable trend in the development and use of 282.240 +revision control tools over the past four decades, as people have 282.241 +become familiar with the capabilities of their tools and constrained 282.242 +by their limitations. 282.243 + 282.244 +$B:G=i$N@$Be$O!"(B 282.245 +$BC10l%U%!%$%k$r3F<+$N%3%s%T%e!<%?$G4IM}$9$k$3$H$+$i;O$^$j$^$7$?!#(B 282.246 +$B$3$N@$Be$N%D!<%k$O!"(B 282.247 +$B<jF0$K$h$k>lEv$?$j$J9=@.4IM}$KHf$Y$l$PBg$-$JA0?J$G$O$"$j$^$7$?$,!"(B 282.248 +$BGSB>$K$h$kA`:n%b%G%k$H!"(B 282.249 +$BC10l%3%s%T%e!<%?>e$G$NMxMQ$rA0Ds$H$7$?@_7W$N$?$a!"(B 282.250 +$B>.$5$/6[L)$J%A!<%`$G$NMxMQ$K8BDj$5$l$F$$$^$7$?!#(B 282.251 + 282.252 +$BBhFs@$Be$O!"(B 282.253 +$B%M%C%H%o!<%/<gBN$N%"!<%-%F%/%A%c$X$N0\9T$H!"(B 282.254 +$B%W%m%8%'%/%HA4BN$N0l3g4IM}$K$h$C$F!"(B 282.255 +$B$3$l$i$N@)Ls$r4KOB$7$^$7$?!#(B 282.256 +$B$7$+$7!"%W%m%8%'%/%H5,LO$,Bg$-$/$J$l$P$J$k$[$I!"?7$?$JLdBj$,H/@8$7$^$7$?!#(B 282.257 +$B%/%i%$%"%s%H$O%5!<%P$HIQHK$KO"7H$9$kI,MW$,$"$k$?$a!"(B 282.258 +$B%5!<%P$OBg5,LO%W%m%8%'%/%H$X$NE,MQ$,LdBj$K$J$j$^$7$?!#(B 282.259 +$B?.Mj@-$NDc$$%M%C%H%o!<%/@\B3$G$O!"(B 282.260 +$B1s3V%f!<%6$,%5!<%P$HA4$/O"7H$,$G$-$J$$$3$H$b$"$j$^$7$?!#(B 282.261 +$B%*!<%W%s%=!<%9%W%m%8%'%/%H$,F?L>$NFI$_9~$_@lMQ%"%/%;%9$r3+J|$9$k$K$D$l!"(B 282.262 +$B%j%]%8%H%j$X$N%3%_%C%H8"8B$r;}$?$J$$?M!9$O!"(B 282.263 +$B9=@.4IM}%D!<%k$NDL>o$NJ}K!$G$O<+J,$?$A$NJQ99$,5-O?$G$-$:!"(B 282.264 +$B$=$l8N$K%W%m%8%'%/%H$KBP$7$FF/$-$+$1$k$3$H$,$G$-$J$$$3$H$K5$IU$-;O$a$^$7$?!#(B 282.265 + 282.266 +$B8=@$Be$N9=@.4IM}%D!<%k$O!";v<B>e(B P2P $B$G$9!#(B 282.267 +$B$3$l$i$O!"(B 282.268 +$BC10l$NCf1{%5!<%P$KBP$9$k0MB8$r;}$?$:!"(B 282.269 +$B$=$N$?$a9=@.4IM}%G!<%?$rI,MW$J>l=j$KJ,;6$9$k$3$H$,2DG=$G$9!#(B 282.270 +$B%$%s%?!<%M%C%H$r2p$7$?O"7H$K$*$1$k2]Bj$O!"(B 282.271 +$B5;=QE*$J@)Ls$K4X$9$k$b$N$+$i!"(B 282.272 +$BA*Br(B(of what ?)$B$H9g0U(B(of what)$B7A@.$NLdBj$X$H0\9T$7$D$D$"$j$^$9(B XXXX$B!#(B 282.273 +Collaboration over the Internet 282.274 +has moved from constrained by technology to a matter of choice and 282.275 +consensus. 282.276 +$B:G?7$N%D!<%k$O!"(B 282.277 +$B%*%U%i%$%s>u67$G$bL5@)8B$KFHN)$7$FA`:n$G$-!"(B 282.278 +$B%M%C%H%o!<%/@\B3$OB>$N%j%]%8%H%j$H$NF14|$K$N$_I,MW$H$5$l$^$9!#(B 282.279 + 282.280 +\section{A few of the advantages of distributed revision control} 282.281 + 282.282 +$BA0@$Be$X$NBP93GO$H$7$F!"(B 282.283 +$B$3$3?tG/$N4V$KJ,;69=@.4IM}%D!<%k$,7xO43n$DJXMx$K$J$C$F$-$F$O$$$k$b$N$N!"(B 282.284 +$B8E$$%D!<%k$rMxMQ$7$F$$$k?M!9$O!"(B 282.285 +$BI,$:$7$bJ,;69=@.4IM}%D!<%k$ND9=j$K5$IU$$$F$$$k$o$1$G$O$"$j$^$;$s!#(B 282.286 +$BCf1{=8LsE*7?!J%D!<%k!K$HHf3S$7$F!"(B 282.287 +$BJ,;67?!J%D!<%k!K$NM%$l$F$$$kE@$,4v$D$+$"$j$^$9!#(B 282.288 + 282.289 +$B3+H/<T8D?M$K$H$C$F$O!"(B 282.290 +$BCf1{=8Ls7?$HHf3S$7$?>l9g!"(B 282.291 +$B35$M$$$D$G$bJ,;67?$NJ}$,9bB.$G$9!#(B 282.292 +$B$3$l$O!"(B 282.293 +$BCf1{=8Ls7?$G$OKX$I$N%a%?%G!<%?$,Cf1{%5!<%P>e$K$7$+B8:_$7$J$$$?$a!"(B 282.294 +$BB?$/$NDj7?=hM}$NEY$K%M%C%H%o!<%/1[$7$K%5!<%P$H$NDL?.$,I,MW!"(B 282.295 +$B$H$$$&C1=c$JM}M3$N$?$a$G$9!#(B 282.296 +$BJ,;67?$N>l9g$O!"A4$F$N%a%?%G!<%?$r<j85$K3JG<$7$F$$$^$9!#(B 282.297 +$BB>$NA4$F$,F1$8$@$H$7$F$b!"(B 282.298 +$B%M%C%H%o!<%/1[$7$NDL?.$OCf1{=8Ls7?$K$H$C$F$N%*!<%P%X%C%I$H$J$j$^$9!#(B 282.299 +$B9=@.4IM}%D!<%k$H$NBPOC$KB?$/$N;~4V$rHq$d$=$&$H8@$&$N$G$9$+$i!"(B 282.300 +$B%F%-%Q%-$HF0$/1~Ez@-$NNI$$%D!<%k$N2ACM$r7Z;k$7$F$O$$$1$^$;$s!#(B 282.301 + 282.302 +$B7+$jJV$7$K$J$j$^$9$,!"(B 282.303 +$BJ,;67?$O%a%?%G!<%?$r2?2U=j$K$bJ#@=$G$-$k$N$G!"(B 282.304 +$B%5!<%P4D6-$N5$$^$0$l(B\footnote{$BLuCm(B: 282.305 +$BFCDj$N%5!<%P$NF0:nITNIEy(B}$B$O5$$K$J$j$^$;$s!#(B 282.306 +$BCf1{=8Ls7?$G%5!<%P$,2P$rJ.$$$?>l9g$K$O!"(B 282.307 +$B%P%C%/%"%C%W%a%G%#%"$N?.Mj@-$H!"(B 282.308 +$B:G8e$N%P%C%/%"%C%W$,:G6a$N$b$N$G$"$k$3$H$r5'$k$K0c$$$"$j$^$;$s!#(B 282.309 +$BJ,;67?$N>l9g!"(B 282.310 +$B3F3+H/<T$N%3%s%T%e!<%?>e$KL5?t$N%P%C%/%"%C%W$,B8:_$9$k$3$H$K$J$j$^$9!#(B 282.311 + 282.312 +$BJ,;67?$OCf1{=8Ls7?$N>l9g$h$j$b!"(B 282.313 +$B%M%C%H%o!<%/$N?.Mj@-$K$h$k1F6A$r<u$1$^$;$s!#(B 282.314 +$B$=$l$I$3$m$+!"(B 282.315 +$BHs>o$K8BDjE*$J4v$D$+$N%3%^%s%I$r=|$1$P!"(B 282.316 +$BCf1{=8Ls7?$G$O%M%C%H%o!<%/@\B3H4$-$K$O2?$b$G$-$^$;$s!#(B 282.317 +$BJ,;67?$N>l9g!"(B 282.318 +$B:n6HCf$K%M%C%H%o!<%/@\B3$,@Z$l$F$b!"(B 282.319 +$B$=$N;v$K5$IU$+$J$$$+$b$7$l$^$;$s!#(B 282.320 +$BB>$N%3%s%T%e!<%?>e$N%j%]%8%H%j$H$NO"7H$@$1$O$G$-$J$/$J$j$^$9$,!"(B 282.321 +$B<j85$N%j%]%8%H%j$H$NO"7H$HHf$Y$l$P!"(B 282.322 +$B$=$N$h$&$JO"7H$,I,MW$J;vBV$O$o$:$+$J$b$N$G$9!#(B 282.323 +$BJ,;6$7$F$$$k$J6&F1:n6H%A!<%`$N>l9g$K$O!"(B 282.324 +$B$3$l$O=EMW$G$9!#(B 282.325 + 282.326 +\subsection{Advantages for open source projects} 282.327 + 282.328 +$B%=!<%9$r%O%C%-%s%0$7$F$_$h$&$H;W$C$?%*!<%W%s%=!<%9$N%W%m%8%'%/%H$,!"(B 282.329 +$BJ,;69=@.4IM}%D!<%k$r;HMQ$7$F$$$?>l9g!"(B 282.330 +$B<+?H$r%W%m%8%'%/%H$N(B``$BCf3K(B''$B$H$_$J$9?MC#$HD>$A$KBPEy$K$J$l$^$9!#(B 282.331 +$BH`$i$,%j%]%8%H%j$r8x3+$7$F$$$l$P!"(B 282.332 +$BFbIt$N?MC#$HF1$8%D!<%k!&F1$8<j=g$G!"(B 282.333 +$B%W%m%8%'%/%H$NMzNr$N%3%T!<$d!"JQ99$N<B;\!":n6H$N5-O?$H$$$C$?$3$H$r!"(B 282.334 +$B$9$0$K$G$b9T$&$3$H$,$G$-$^$9!#(B 282.335 +$BCf1{=8Ls7?$N>l9g$O$=$l$H$OBP>HE*$K!"(B 282.336 +$BCf1{$N%5!<%P$KBP$9$kJQ99%3%_%C%H$N8"8B$rM?$($i$l$J$$8B$j!"(B 282.337 +``$BFI$_9~$_@lMQ(B''$B%b!<%I$G$7$+;H$&$3$H$,$G$-$^$;$s!#(B 282.338 +$B%3%_%C%H8"8B$,IUM?$5$l$k$^$G$OJQ99$N5-O?$O$G$-$:!"(B 282.339 +$BCf1{$N%j%]%8%H%j$H$NF14|$N:]$K$O>o$K<j85$G$NJQ99$,GKB;$9$k4m81$rJz$($F$$$^$9!#(B 282.340 + 282.341 +\subsubsection{The forking non-problem} 282.342 + 282.343 +$BJ,;69=@.4IM}%D!<%k$O!"(B 282.344 +$B%W%m%8%'%/%H$r(B``$BJ,Nv(B''$B$5$;0W$/$7$F$7$^$&$?$a!"(B 282.345 +$B%*!<%W%s%=!<%9%W%m%8%'%/%H$K$H$C$F$"$k<o$N4m81MW0x$H$J$k!"(B 282.346 +$B$H8@$o$l$F$-$^$7$?!#(B 282.347 +$BJ,Nv$O!"(B 282.348 +$B$3$l0J>e0l=o$K3+H/$r7QB3$G$-$J$$$H7kO@IU$1$k860x$H$J$k$h$&$J!"(B 282.349 +$B3+H/%0%k!<%W4V$G$N0U8+$dFC@-$NAj0c$N$,$"$k>l9g$KH/@8$7$^$9!#(B 282.350 +$BN>?X1D$O!"(B 282.351 +$B%W%m%8%'%/%H$N%=!<%9%3!<%I$N35$M40A4$J%3%T!<$r;}$C$F!"(B 282.352 +$B$*8_$$$NJ}8~$X$HJ,$+$l$F$f$-$^$9!#(B 282.353 + 282.354 +$B;~$K$O!"J,Nv$7$?3F?X1D$,!"(B 282.355 +$B$*8_$$$NAj0c$K@^$j9g$$$rIU$1$k7hDj$r$9$k$3$H$,$"$j$^$9!#(B 282.356 +$BCf1{=8Ls7?$N9=@.4IM}%7%9%F%`$G$O!"(B 282.357 +$B@^$j9g$$$rIU$1$k$?$a$N(B\emph{$B5;=QE*$J(B}$B=hM}$,6l$7$/!"(B 282.358 +$BBgItJ,$O<jF0$G<B;\$7$J$1$l$P$J$j$^$;$s!#(B 282.359 +$BC/$NJQ99MzNr$,(B``$B@8$-;D$k(B''$B$N$+$r7hDj$7$?>e$G!"(B 282.360 +$B2?$H$+$7$FB>$N%A!<%`$NJQ99$r%=!<%9%D%j!<$K0\?"$7$J$1$l$P$J$j$^$;$s!#(B 282.361 +$B$3$N:n6H$ODL>o!"(B 282.362 +$BB>J}$NMzNr>pJs$N0lIt$J$$$7A4It$r<:$&$3$H$K$J$j$^$9!#(B 282.363 + 282.364 +$BJ,;67?$K$H$C$F$O!"(B 282.365 +$BJ,Nv$3$=$,%W%m%8%'%/%H$rH/E8$5$;$k(B\emph{$BM#0l$N(B}$BJ}K!$J$N$G$9!#(B 282.366 +$B8D!9$NJQ99$O!"A4$F@x:_E*$JJ,NvE@$J$N$G$9!#(B 282.367 +$BJ,Nv$O>o$KH/@8$7$F$$$kA4$/4pK\E*$J;v>]$J$N$G!"(B 282.368 +$BJ,;69=@.4IM}$O<B:]$KJ,Nv$r>e<j$/(B\emph{$B%^!<%8(B}$B$G$-$J$1$l$P$J$i$J$$!"(B 282.369 +$B$H$$$&E@$K$3$N9M$(J}$N6/$_$,$"$j$^$9!#(B 282.370 + 282.371 +$BA4$F$N?M$NA4$F$N:n6H$,!"(B 282.372 +$B>o$KJ,Nv$H%^!<%8$N4QE@$+$iAH$_N)$F$i$l$?>l9g!"(B 282.373 +$B%*!<%W%s%=!<%9@$3&$,(B``$BJ,Nv(B''$B$H$7$F8@5Z$9$k$b$N$O!"(B 282.374 +\emph{$B=c?h$K(B}$B<R2qE*$JLdBj$H$J$k$G$7$g$&!#(B 282.375 +$B$I$A$i$+$H$$$($P!"(B 282.376 +$BJ,;67?$OJ,Nv$N2DG=@-$r(B\emph{$BDc2<(B}$B$5$;$F$$$^$9!#(B 282.377 + 282.378 +\begin{itemize} 282.379 +\item $BCf1{=8Ls7?$,>7$$$F$7$^$&(B``$BFbIt(B''$B!J%3%_%C%H8"8B$r;}$D?M!9!K(B 282.380 + $B$H(B``$B30It(B''$B!J;}$?$6$k?M!9!K$H$$$C$?<R2qE*6hJ,$rL5$/$7$^$9!#(B 282.381 + 282.382 +\item $B9=@.4IM}%=%U%H%&%'%"$N;kE@$G$O!"C1$J$k%^!<%8$K2a$.$^$;$s$N$G!"(B 282.383 + $B<R2qE*J,Nv$N8e$NOB2r$rMF0W$K$7$^$9!#(B 282.384 + 282.385 +\end{itemize} 282.386 + 282.387 +$B%W%m%8%'%/%HA4HL$X$N6[L)$JE}<#$N0];}$,Cf1{=8Ls7?%D!<%k$K$h$C$FF@$i$l$k!"(B 282.388 +$B$H?.$8$F$$$k$?$a$K!"J,;67?$KDq93$9$k?M$b$$$^$9!#(B 282.389 +$B$7$+$7!"$=$&$$$C$?4|BT$N85$G(B 282.390 +CVS $B$J$$$7(B Subversion $B$K$h$k%j%]%8%H%j$r8x3+$7$F$b!"(B 282.391 +$BL5?t$KB8:_$9$k%D!<%k$K$h$C$F!"(B 282.392 +$B%W%m%8%'%/%HA4BN$NMzNr$r!JNc$(CY$$$H$O8@$(!K<h$j=P$7!"(B 282.393 +$B$"$J$?$N@)8f$N5Z$P$J$$>l=j$G:F9=C[$9$k$3$H$,$G$-$F$7$^$$$^$9!#(B 282.394 +``$B%W%m%8%'%/%HA4HL$X$N6[L)$JE}<#$N0];}(B''$B$,:x3P$G$"$k0lJ}!"(B 282.395 +So while your control in this case is illusory, you are 282.396 +foregoing the ability to fluidly collaborate with whatever people feel 282.397 +compelled to mirror and fork your history. 282.398 +XXXXXX 282.399 + 282.400 +\subsection{Advantages for commercial projects} 282.401 + 282.402 +$BB?$/$N>&6H%W%m%8%'%/%H$O!"(B 282.403 +$B@$3&Cf$K;6$i$P$C$?%A!<%`$,@A$1Ii$C$F$$$^$9!#(B 282.404 +$BCf1{$N%5!<%P$+$i1s$/N%$l$?%a%s%P!<$O!"(B 282.405 +$B%3%^%s%I<B9T$NCY$5$d!"(B 282.406 +$B$*$=$i$/KX$I?.Mj@-$NL5$$%5!<%P$H$N@\B3$rL\$K$9$k$3$H$G$7$g$&!#(B 282.407 +$B>&6HE*$J9=@.4IM}%7%9%F%`$O!"(B 282.408 +$B1s3V%5%$%HJ#@=(B\footnote{$BLuCm!'(B 282.409 +``$BJ]<i$,BgJQ(B''$B$H8@$C$F$$$k$3$H$+$i!"(B 282.410 +$B$3$N>l9g$NJ#@=$O(B``$B%5!<%P$NJ#@=(B''$B$r;X$7$F$$$k$N$+$J!)(B 282.411 +}$B$NDI2C5!G=$K$h$k$3$l$i$NLdBj$r2r7h$7$h$&$H$7$F$$$^$9$,!"(B 282.412 +$BDL>o!"$3$&$$$C$?5!G=$O9b2A$GJ]<i$,BgJQ$G$9!#(B 282.413 +$BJ,;67?$N>l9g$O!"(B 282.414 +$B$=$b$=$b$3$&$$$C$?LdBj$GG:$`I,MW$,$"$j$^$;$s!#(B 282.415 +$B99$K!"Nc$($P%5%$%H$4$H$K0lBf$:$D$H$$$&1vG_$G!"(B 282.416 +$B?.Mj$G$-$k%5!<%P$rJ#?tN)$A>e$2$k$3$H$b4JC1$G$9$N$G!"(B 282.417 +$B9b2A$G5wN%$N$"$k%M%C%H%o!<%/7PO)1[$7$N%j%]%8%H%j4V$G!"(B 282.418 +$BM>7W$JDL?.$r$9$kI,MW$O$"$j$^$;$s!#(B 282.419 + 282.420 +$BCf1{=8Ls7?$N9=@.4IM}%7%9%F%`$O!"(B 282.421 +$BAjBPE*$K%9%1!<%i%S%j%F%#$,Dc$$798~$K$"$j$^$9!#(B 282.422 +$B9b2A$JCf1{=8Ls%7%9%F%`$@$+$i$H$$$C$F!"(B 282.423 +$BJ?9TMxMQ$9$k?t%@!<%9$N%f!<%6$NIi2Y$K$h$C$F%@%&%s$7$F$7$^$&$3$H$O!"(B 282.424 +$BM-$jF@$J$$$3$H$G$O$"$j$^$;$s!#(B 282.425 +$B7+$jJV$7$K$J$j$^$9$,!"(B 282.426 +$B9bIi2Y$K$*$1$k%@%&%s$KBP$9$kE57?E*$JBP1~$O!"(B 282.427 +$B9b2A$G8E=-$$J#@=5!G=$NMxMQ$G$9!#(B 282.428 +$BJ,;67?%D!<%k$r;HMQ$9$k>l9g!"Cf1{%5!<%P(B-- 282.429 +$B2>$K;}$C$F$$$k$H$7$F$b0lBf$@$1$G$7$g$&$,(B 282.430 +--$B$K$*$1$kIi2Y$OHs>o$KDc$$$N$G!"(B 282.431 +$B$b$C$HBg?M?t$N%A!<%`$NMW5a$rC10l$N0B2A$J%5!<%P$G;+$/$3$H$,$G$-$^$9$7!"(B 282.432 +$BIi2YJ,;6$OC1$K%9%/%j%W%H:n@.$NLdBj$H$J$j$^$9!#(B 282.433 + 282.434 +$B8\5R$N85$K=P$FLdBjBP1~$9$k%a%s%P!<$,$$$k>l9g!"(B 282.435 +$BJ,;69=@.4IM}$OM-1W$G$9!#(B 282.436 +$BB>$N%S%k%I$+$i$O3VN%$5$l$?>uBV$GFCJL$J%S%k%I$N$?$a$KJ#?t$N=$@5$r;n$7$?$j!"(B 282.437 +$B>c32$dB`9T$NMW0x$r%=!<%9$N=$@5MzNr$+$i8z2LE*$K8!:w$7$?$j$H$$$C$?$3$H$r!"(B 282.438 +$B5R@h4D6-$G<+<R$N%M%C%H%o!<%/$K@\B3$9$k$3$HL5$7$K9T$&$3$H$,$G$-$^$9!#(B 282.439 + 282.440 +\section{Why choose Mercurial?} 282.441 + 282.442 +Mercurial $B$O!"(B 282.443 +$B$H$j$o$19=@.4IM}%7%9%F%`$H$7$FNI$$A*Br$r$7$?$H8@$($k!"(B 282.444 +$BN`$r8+$J$$FCD'$r;}$C$F$$$^$9!#(B 282.445 + 282.446 +\begin{itemize} 282.447 +\item $B=,F@!&MxMQ$,MF0W(B 282.448 +\item $B7ZNL(B 282.449 +\item $B5,LO3HBg$KBQ$(F@$k(B 282.450 +\item $B2~B$$,MF0W(B 282.451 +\end{itemize} 282.452 + 282.453 +$B9=@.4IM}%7%9%F%`$K47$l?F$7$s$G$$$k$N$G$"$l$P!"(B 282.454 +Mercurial $B$r;H$($k$h$&$K$J$k$N$K#5J,$b3]$+$i$J$$H&$G$9!#(B 282.455 +$B$=$&$G$J$$>l9g$G$b!"(B 282.456 +$B99$K?tJ,0J>e$O3]$+$i$J$$$G$7$g$&!#(B 282.457 +Mercurial $B$N%3%^%s%I$d5!G=72$O!"(B 282.458 +$BA4BNE*$KE}0l@-$H0l4S@-$,J]$?$l$F$$$^$9$N$G!"(B 282.459 +$BBt;3$NNc30;v9`$G$O$J$/!"(B 282.460 +$B>/?t$N0lHLE*$JJ}K!$@$1$r3P$($F$*$1$PNI$$$N$G$9!#(B 282.461 + 282.462 +$B>.$5$J%W%m%8%'%/%H$N>l9g!"(B 282.463 +$B$9$0$K$G$b(B Mercurial $B$r;H$$;O$a$k$3$H$,$G$-$k$G$7$g$&!#(B 282.464 +$B?7$?$JJQ99$d%V%i%s%A$r@8@.$7!"(B 282.465 +$BJQ99$r!JF10l%[%9%H$J$$$7%M%C%H%o!<%/1[$7$G!K;}$AJb$$$?$j!"(B 282.466 +$BMzNr;2>H$d>uBV3NG'$H$$$C$?A4$F$NA`:n$,9bB.$G$9!#(B 282.467 +$B85MhHs>o$K9bB.$JA`:n$K2C$($F!"(B 282.468 +$BL\$K8+$($k%*!<%P!<%X%C%I$,>/$J$$$?$a$K!"(B 282.469 +Mercurial $B$O=SIR$5$rJ]$A!"(B 282.470 +$BMxMQ<T$N:n6H$rK8$2$k$3$H$rHr$1$k$3$H$,$G$-$^$9!#(B 282.471 + 282.472 +Mercurial $B$NM-MQ@-$O>.$5$J%W%m%8%'%/%H$K8BDj$5$l$^$;$s!#(B 282.473 +$B?tI4$+$i?t@i$N%a%s%P$r;}$A!"(B 282.474 +$B%=!<%9%3!<%I$,?tK|%U%!%$%k!&(B 282.475 +$B?tI4%a%,%P%$%H$K5Z$V%W%m%8%'%/%H$G$b:NMQ$5$l$F$$$^$9!#(B 282.476 + 282.477 +Mercurial $B$N4pK\5!G=$KK~B-$G$-$J$$>l9g$G$b!"(B 282.478 +$BMF0W$K3HD%$9$k$3$H$,$G$-$^$9!#(B 282.479 +Mercurial $B$O=hM}$N%9%/%j%W%H2=$KE,$7$F$*$j!"(B 282.480 +Python $B$r;H$C$Fe:No$K<BAu$5$l$F$$$k$3$H$,!"(B 282.481 +$B!V%$%/%9%F%s%7%g%s!W$H$$$&7A<0$G$N5!G=DI2C$rMF0W$K$7$F$$$^$9!#(B 282.482 +$B!V>c32FCDj$NJd=u!W$+$i!V@-G=8~>e!W$H$$$C$?9-$$HO0O$G!"(B 282.483 +$BI>H=$NNI$$M-MQ$JB?$/$N%$%/%9%F%s%7%g%s$,4{$KDs6!$5$l$F$$$^$9!#(B 282.484 + 282.485 +\section{Mercurial compared with other tools} 282.486 + 282.487 +$B$3$N@h$rFI$`A0$K!"(B 282.488 +$BCx<T<+?H$N7P83!?4X?4!?!J$"$($F8@$$$^$9$,!KJP8+$H$$$C$?$b$N$,!"(B 282.489 +$BK\@a$KH?1G$;$6$k$rF@$J$$E@$r$4M}2r$/$@$5$$!#(B 282.490 +$BCx<T$O!"0J2<$K$"$2$k9=@.4IM}%D!<%k$N$=$l$>$l$r!"(B 282.491 +$B:GD9$G?tG/DxEY;HMQ$7$?7P83$,$"$j$^$9!#(B 282.492 + 282.493 +\subsection{Subversion} 282.494 + 282.495 +Subversion $B$O(B CVS $B$NCV$-49$($rL\;X$7$F3+H/$5$l$?!"(B 282.496 +$BI>H=$N$h$$9=@.4IM}%D!<%k$G$9!#(B 282.497 +Subversion $B$OCf1{=8Ls7?$N!V%/%i%$%"%s%H!?%5!<%P!W(B 282.498 +$B%"!<%-%F%/%A%c$r;}$C$F$$$^$9!#(B 282.499 + 282.500 +Subversion $B$H(B Mercurial $B$O!"(B 282.501 +$BF1$8:nMQ$r;}$D;w$?$h$&$JL>A0$N%3%^%s%I$r;}$C$F$$$k$N$G!"(B 282.502 +$B0lJ}$KFk@w$_$N$"$k%f!<%6$OB>J}$NMQK!$rMF0W$K=,F@$G$-$^$9!#(B 282.503 +$B$3$l$i$ON>J}$H$bA4$F$NCxL>$J(B OS $B>e$GMxMQ2DG=$G$9!#(B 282.504 + 282.505 +Subversion $B$OMzNr$r0U<1$7$?%^!<%85!G=$r;}$C$F$$$J$$$N$G!"(B 282.506 +$B$I$N%j%S%8%g%s$N%V%i%s%A4V$G%^!<%8$9$Y$-$+$r!"(B 282.507 +$B%f!<%6<+?H$,87L)$K;XDj$9$k$3$H$r6/@)$7$^$9!#(B 282.508 +$B$3$N;XDj$,$G$-$J$+$C$?$j4V0c$($?$j$7$?>l9g!"(B 282.509 +$B%^!<%8$K$*$1$kITI,MW$J>WFM$r<jF0$G2r7h$9$k1)L\$K$J$j$^$9!#(B 282.510 + 282.511 +$BCx<T$,%Y%s%A%^!<%/7WB,$7$?8B$j$G$O!"(B 282.512 +Subversion $B$NA4$F$N9=@.4IM}A`:n$K$*$$$F!"(B 282.513 +Mercurial $B$O@-G=$NLL$GAjEv$KM%0L$K$$$^$9!#(B 282.514 +$BI.<T$NHf3S$K$h$k$H!"(B 282.515 +Subversion $B$N(B 1.4.3~$BHG$K$*$1$k(B 282.516 +\emph{ra\_local} $B%U%!%$%k3JG<(B 282.517 +$B!JMxMQ2DG=$J:GB.$N%"%/%;%95!G=!K$HHf3S$7$?>l9g!"(B 282.518 +$B#2G\$+$i#6G\DxEY$NM%0L@-$,$"$j$^$7$?!#(B 282.519 +$B%M%C%H%o!<%/1[$7$N%j%]%8%H%j$rI,MW$H$9$k!"(B 282.520 +$B$h$j8=<BE*$JG[CV$N>l9g!"(B 282.521 +Subversion $B$OAjEv$KITMx$J>u67$K$J$k$G$7$g$&!#(B 282.522 +$BB?$/$N(B Subversion $B%3%^%s%I$O%5!<%P$H$NO"7H$,I,MW$J>e$K!"(B 282.523 +Subversion $B$OM-MQ$JJ#@=5!G=$r;}$C$F$$$J$$$?$a!"(B 282.524 +$B>/!9Bg$-$a$N%W%m%8%'%/%H$N>l9g!"(B 282.525 +$B%5!<%P$N@-G=$,%\%H%k%M%C%/$H$J$k$G$7$g$&!#(B 282.526 + 282.527 +$B$=$l$K2C$($F!"(B 282.528 +$B%U%!%$%k$N99?7$N8!:w!J(B\texttt{status}$B!K(B 282.529 +$B$d8=9THG$H$N:9J,I=<(!J(B\texttt{diff}$B!K$H$$$C$?!"(B 282.530 +$B4v$D$+$N6&DLA`:n$K$*$1$k%M%C%H%o!<%/=hM}$r2sHr$9$k$?$a$K!"(B 282.531 +Subversion $B$OAjEv$J3JG<%*!<%P%X%C%I$rJz$(9~$s$G$$$^$9!#(B 282.532 +Mercurial $B$N%j%]%8%H%j$,%W%m%8%'%/%H$N40A4$JMzNr$rJ];}$7$F$$$k$K$b4X$o$i$:!"(B 282.533 +Subversion $B$,Jz$(9~$`:n6H%3%T!<$O!"(B 282.534 +Mercurial $B%j%]%8%H%j$H:n6HNN0h%G%#%l%/%H%j$N%5%$%:$H!"(B 282.535 +$B7k2L$H$7$F$*$*$h$=F1%5%$%:$+!"$"$k$$$O$=$l0J>e$K$J$k$3$H$,B?$$$G$9!#(B 282.536 + 282.537 +$B9=@.4IM}4XO"$N%5!<%I%Q!<%F%#%D!<%k$K4X$7$F$O!"(B 282.538 +$B$=$N:9$O=y!9$KKd$^$C$F$O$$$k$b$N!"(B 282.539 +Mercurial $B$HHf3S$7$F!"(B 282.540 +$B8=;~E@$G$O(B Subversion $B$NJ}$,$h$jB?$/$N%5%]!<%H$r<u$1$k$3$H$,$G$-$^$9!#(B 282.541 +$B$^$?!"(BMercurial $B$HF1MM$K(B 282.542 +Subversion $B$OAG@2$i$7$$%f!<%6%^%K%e%"%k$,$"$j$^$9!#(B 282.543 + 282.544 +Subversion $B%j%]%8%H%j$+$i(B Mercurial $B%j%]%8%H%j$X$N!"(B 282.545 +$B@53N$G40A4$JJQ99MzNr$N<h$j9~$_$r9T$&%D!<%k$,4v$D$b$"$j$^$9$N$G!"(B 282.546 +$B8E$$%D!<%k$+$i$N0\9T$OHf3SE*MF0W$G$9!#(B 282.547 + 282.548 +\subsection{Git} 282.549 + 282.550 +git $B$O!"(B 282.551 +Linux $B%+!<%M%k%=!<%9%D%j!<$r4IM}$9$k$?$a$K3+H/$5$l$?J,;69=@.4IM}%D!<%k$G$9!#(B 282.552 +Mercurial $B$HF1MM$K!"(B 282.553 +$B$=$N=i4|$N@_7W$O(B Monotone $B$+$i1F6A$r<u$1$F$$$^$9!#(B 282.554 + 282.555 +git $B$O05E]E*$J$^$G$N%3%^%s%I72$r;}$C$F$*$j!"(B 282.556 +1.5.0~$BHG$K$*$$$F$O(B 139~$B8D$NFHN)$7$?%3%^%s%I$,$"$j$^$9!#(B 282.557 +$B$3$l$i$O=,F@$,Fq$7$$$H$NI>H=$G$9!#(B 282.558 +$B%f!<%6%^%K%e%"%k$,B8:_$;$:!"(B 282.559 +$B8DJL$N%3%^%s%I$K4X$9$kJ8=q$,$"$k$N$_$G$9!#(B 282.560 + 282.561 +$B@-G=$NLL$G$O(B git $B$OHs>o$K9bB.$G$9!#(B 282.562 +$B>/$J$/$H$b(B Linux $B$K$*$$$F$O!"(B 282.563 +Mercurial $B$h$j$b(B git $B$NJ}$,Aa$$%1!<%9$,4v$D$+$"$j$^$9!#(B 282.564 +$B$7$+$7$J$,$iK\=q$N<9I.;~E@$G$O!"(B 282.565 +Windows $B4D6-$K$*$1$k@-G=!J$*$h$S0lHLE*$J%5%]!<%H!K$K4X$7$F$O(B 282.566 +Mercurial $B$K5Z$S$^$;$s!#(B 282.567 + 282.568 +Mercurial $B$N%j%]%8%H%j$OJ]<i$NI,MW$,$"$j$^$;$s$,!"(B 282.569 +git $B%j%]%8%H%j$O<jF0$K$h$k%a%?%G!<%?$N(B``$B5M$aD>$7(B''$B$rIQHK$K9T$&I,MW$,$"$j$^$9!#(B 282.570 +$B$3$N5M$aD>$7$r$7$J$$>l9g!"(B 282.571 +$BMxMQNN0h$,B.$d$+$KA}2C$9$k0lJ}$G!"@-G=$,Dc2<$7$F$7$^$$$^$9!#(B 282.572 +$B873J3n$DIQHK$K5M$aD>$7$r$7$J$$(B git $B%j%]%8%H%j$rBt;3Jz$($k%5!<%P$O!"(B 282.573 +$B%P%C%/%"%C%W$N4V!"Hs>o$K(B disk-bound $B$K$J$j$^$9$7!"(B 282.574 +$B7k2L$H$7$F!"(B 282.575 +$BF|;~%P%C%/%"%C%W=hM}$K#2#4;~4V0J>e$rMW$9$k$h$&$K$J$C$F$7$^$C$?Nc$,!"(B 282.576 +$B$$$/$D$b$"$j$^$9!#(B 282.577 +$B5M$aBX$($K$h$C$FA/EY$,J]$?$l$F$$$k(B git $B%j%]%8%H%j$O!"(B 282.578 +Mercurial $B$N%j%]%8%H%j$h$j$b$o$:$+$K>.$5$$$G$9$,!"(B 282.579 +$B5M$aBX$($5$l$F$$$J$$>l9g$O$+$J$j$NBg$-$5$G$9!#(B 282.580 + 282.581 +git $B$N4pK\ItJ,$O(B C $B$G<BAu$5$l$F$$$^$9!#(B 282.582 +$BB?$/$N(B git $B%3%^%s%I$O%7%'%k$J$$$7(B Perl $B$N%9%/%j%W%H$K$h$j<BAu$5$l$F$$$^$9$,!"(B 282.583 +$B$=$NIJ<A$OHs>o$KI}$,9-$$$G$9!#(B 282.584 +$BCWL?E*$H$_$J$9$Y$-%(%i!<$,H/@8$7$F$$$kCf$G0G1@$K=hM}$rB3$1$k%9%/%j%W%H$r!"(B 282.585 +$B2?EY$+8+$+$1$?$3$H$,$"$j$^$9!#(B 282.586 + 282.587 +\subsection{CVS} 282.588 + 282.589 +CVS $B$O$*$=$i$/@$3&Cf$G:G$b9-$/;HMQ$5$l$F$$$k9=@.4IM}%D!<%k$G$9!#(B 282.590 +$B$=$NNr;K$ND9$5$H!"FbItE*$J$^$H$^$j$NL5$5$+$i!"(B 282.591 +$BD9$$4V!"K\<AE*$K$OJ]<i$5$l$F$-$^$;$s$G$7$?!#(B 282.592 + 282.593 +CVS $B$OCf1{=8Ls7?$N!V%/%i%$%"%s%H!?%5!<%P!W(B 282.594 +$B%"!<%-%F%/%A%c$r;}$C$F$$$^$9!#(B 282.595 +CVS $B$O4XO"$9$k%U%!%$%k$NJQ99$rIT2DJ,%3%_%C%H$X$H%0%k!<%W2=$7$J$$$?$a!"(B 282.596 +$BNc$($P!"(B 282.597 +$B!V$"$kMxMQ<T$K$h$k@.2L$N%3%_%C%H$,!"(B 282.598 +$B%^!<%8$NI,MW@-$+$iItJ,E*$K$7$+@.8y$7$J$+$C$?>l9g!"(B 282.599 +$BB>$NMxMQ<T$+$i$OH`$N0U?^$7$?JQ99$N0lIt$7$+8+$k$3$H$,$G$-$J$$!W$H$$$C$?!"(B 282.600 +``$B%S%k%I$rMp$9(B''$B9T0Y$,MF0W$K9T$($F$7$^$$$^$9!#(B 282.601 +$B$3$l$O!"%W%m%8%'%/%HMzNr$KBP$9$k:n6H$N?J$aJ}$K$b1F6A$7$^$9!#(B 282.602 +$B$H$"$k%?%9%/$N0lIt$H$7$F!"(B 282.603 +$B$"$k%a%s%P$,9T$C$?JQ99$rA4$FI=<($7$h$&$H$7$?>l9g!"(B 282.604 +$B4XO"$9$k3F%U%!%$%k!J$I$N%U%!%$%k$,$=$&$G$"$k$+$rCN$C$F$$$l$P!"(B 282.605 +$B$NOC$G$9$,!K$KBP$7$F9T$o$l$?JQ99$N!"(B 282.606 +$B8D!9$N%3%_%C%H%m%0$HF|IU$r<jF0$G3NG'$9$kI,MW$,$"$j$^$9!#(B 282.607 + 282.608 +CVS $B$N%?%0$d%V%i%s%A$N9M$(J}$O:.Mp$7$F$$$k$?$a!"(B 282.609 +$B$=$l$K$D$$$F@bL@$9$k5$$K$b$J$l$^$;$s!#(B 282.610 +$B%U%!%$%k$d%G%#%l%/%H%j$N2~L>$,%5%]!<%H$5$l$F$$$J$$$?$a!"(B 282.611 +$B%j%]%8%H%j$,4JC1$K;(A3$H$7$F$7$^$$$^$9!#(B 282.612 +$BFbItE*$J@09g@-$r%A%'%C%/$9$k5!G=$b;}$?$J$$$?$a!"(B 282.613 +$B%j%]%8%H%j$,GKB;$7$F$$$k$N$+H]$+$rH=Dj$7$?$j!"(B 282.614 +$B$I$N$h$&$KGKB;$7$F$$$k$N$+$r$7$k$3$H$O!"0lHL$K$OIT2DG=$G$9!#(B 282.615 +$B8=B8!&?75,$N$$$:$l$N%W%m%8%'%/%H$KBP$7$F$b!"(B 282.616 +CVS $B$O$*A&$a$G$-$^$;$s!#(B 282.617 + 282.618 +Mercurial $B$O(B CVS $B$N%j%]%8%H%j$r<h$j9~$`$3$H$,$G$-$^$9!#(B 282.619 +$B$7$+$7!"$$$/$D$+$NCm0U$,I,MW$G!"(B 282.620 +$B$3$l$O(B CVS $B$N%j%]%8%H%j$r<h$j9~$`$3$H$N$G$-$k!"(B 282.621 +$BB>$N9=@.4IM}%D!<%k$KBP$7$F$bF1MM$G$9!#(B 282.622 +CVS $B$OIT2DJ,%3%_%C%H$r;}$C$F$*$i$:!"(B 282.623 +$B%U%!%$%k%7%9%F%`3,AX$NMzNr4IM}$b9T$C$F$$$J$$$?$a!"(B 282.624 +CVS $B$+$iMzNr$r@53N3n$D87L)$K:F9=C[$9$k$3$H$OIT2DG=$G$9!#(B 282.625 +$B4vJ,$+$N?dB,$,I,MW$G$"$j!"2~L>$ODL>o8!CN$G$-$^$;$s!#(B 282.626 +$B9bEY$J(B CVS $B4IM}$NB?$/$,<jF0$G9T$o$l!"$=$l8N$K4V0c$$$d$9$$$3$H$+$i!"(B 282.627 +CVS $B$+$i$N<h$j9~$_$r9T$&%D!<%k$K$H$C$F!"(B 282.628 +$BGKB;$7$?%j%]%8%H%j$+$i$N<h$j9~$_$OJ#?t$NLdBj$K9T$-Ev$?$k$N$,>o$G$9(B 282.629 +$B!JI.<T$N8D?ME*7P83$+$i;W$$=P$;$k!"LLGr$/$bL5$$LdBj$NNc$H$7$F$O!"(B 282.630 +$B40A4$K56J*$N%?%$%`%9%?%s%W$d!"(B 282.631 +$B#1#0G/0J>e%m%C%/$5$l$?$^$^$N%U%!%$%k$J$I$,$"$j$^$9!K!#(B 282.632 + 282.633 +\subsection{Commercial tools} 282.634 + 282.635 +Perforce $B$OCf1{=8Ls7?$N!V%/%i%$%"%s%H!?%5!<%P!W(B 282.636 +$B%"!<%-%F%/%A%c$r;}$C$F$$$^$9$,!"(B 282.637 +$B%/%i%$%"%s%HB&$G$OA4$/%-%c%C%7%e$r9T$C$F$$$^$;$s!#(B 282.638 +$B6aG/$N9=@.4IM}%D!<%k$H0[$J$j!"(B 282.639 +$BJT=8BP>]$H$J$kA4$F$N%U%!%$%k$K4X$7$F!"(B 282.640 +Perforce $B$O%3%^%s%I<B9T$K$h$k%5!<%P$X$NDLCN$r%f!<%6$KBP$7$FMW5a$7$^$9!#(B 282.641 + 282.642 +Perforce $B$N@-G=$O>.5,LO$J%A!<%`$G$OHs>o$KNI9%$G$9$,!"(B 282.643 +$B%f!<%6?t$,?t%@!<%9$rD6$($k:"$+$i5^B.$KDc2<$7$^$9!#(B 282.644 +$B>/!9Bg5,LO$J3+H/8~$1$N(B Perforce $B%$%s%9%H!<%k$O!"(B 282.645 +$B%f!<%6%"%/%;%9$K$h$kIi2Y$r>e<j$/=hM}$9$k$?$a$K!"(B 282.646 +$B!V%W%m%-%7!W$NG[CV$,MW5a$5$l$^$9!#(B 282.647 + 282.648 +%%% Local Variables: 282.649 +%%% mode: latex 282.650 +%%% TeX-master: "00book" 282.651 +%%% End:
283.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 283.2 +++ b/ja/license.tex Fri Aug 14 12:10:47 2009 -0700 283.3 @@ -0,0 +1,139 @@ 283.4 +\chapter{Open Publication License} 283.5 +\label{cha:opl} 283.6 + 283.7 +Version 1.0, 8 June 1999 283.8 + 283.9 +\section{Requirements on both unmodified and modified versions} 283.10 + 283.11 +The Open Publication works may be reproduced and distributed in whole 283.12 +or in part, in any medium physical or electronic, provided that the 283.13 +terms of this license are adhered to, and that this license or an 283.14 +incorporation of it by reference (with any options elected by the 283.15 +author(s) and/or publisher) is displayed in the reproduction. 283.16 + 283.17 +Proper form for an incorporation by reference is as follows: 283.18 + 283.19 +\begin{quote} 283.20 + Copyright (c) \emph{year} by \emph{author's name or designee}. This 283.21 + material may be distributed only subject to the terms and conditions 283.22 + set forth in the Open Publication License, v\emph{x.y} or later (the 283.23 + latest version is presently available at 283.24 + \url{http://www.opencontent.org/openpub/}). 283.25 +\end{quote} 283.26 + 283.27 +The reference must be immediately followed with any options elected by 283.28 +the author(s) and/or publisher of the document (see 283.29 +section~\ref{sec:opl:options}). 283.30 + 283.31 +Commercial redistribution of Open Publication-licensed material is 283.32 +permitted. 283.33 + 283.34 +Any publication in standard (paper) book form shall require the 283.35 +citation of the original publisher and author. The publisher and 283.36 +author's names shall appear on all outer surfaces of the book. On all 283.37 +outer surfaces of the book the original publisher's name shall be as 283.38 +large as the title of the work and cited as possessive with respect to 283.39 +the title. 283.40 + 283.41 +\section{Copyright} 283.42 + 283.43 +The copyright to each Open Publication is owned by its author(s) or 283.44 +designee. 283.45 + 283.46 +\section{Scope of license} 283.47 + 283.48 +The following license terms apply to all Open Publication works, 283.49 +unless otherwise explicitly stated in the document. 283.50 + 283.51 +Mere aggregation of Open Publication works or a portion of an Open 283.52 +Publication work with other works or programs on the same media shall 283.53 +not cause this license to apply to those other works. The aggregate 283.54 +work shall contain a notice specifying the inclusion of the Open 283.55 +Publication material and appropriate copyright notice. 283.56 + 283.57 +\textbf{Severability}. If any part of this license is found to be 283.58 +unenforceable in any jurisdiction, the remaining portions of the 283.59 +license remain in force. 283.60 + 283.61 +\textbf{No warranty}. Open Publication works are licensed and provided 283.62 +``as is'' without warranty of any kind, express or implied, including, 283.63 +but not limited to, the implied warranties of merchantability and 283.64 +fitness for a particular purpose or a warranty of non-infringement. 283.65 + 283.66 +\section{Requirements on modified works} 283.67 + 283.68 +All modified versions of documents covered by this license, including 283.69 +translations, anthologies, compilations and partial documents, must 283.70 +meet the following requirements: 283.71 + 283.72 +\begin{enumerate} 283.73 +\item The modified version must be labeled as such. 283.74 +\item The person making the modifications must be identified and the 283.75 + modifications dated. 283.76 +\item Acknowledgement of the original author and publisher if 283.77 + applicable must be retained according to normal academic citation 283.78 + practices. 283.79 +\item The location of the original unmodified document must be 283.80 + identified. 283.81 +\item The original author's (or authors') name(s) may not be used to 283.82 + assert or imply endorsement of the resulting document without the 283.83 + original author's (or authors') permission. 283.84 +\end{enumerate} 283.85 + 283.86 +\section{Good-practice recommendations} 283.87 + 283.88 +In addition to the requirements of this license, it is requested from 283.89 +and strongly recommended of redistributors that: 283.90 + 283.91 +\begin{enumerate} 283.92 +\item If you are distributing Open Publication works on hardcopy or 283.93 + CD-ROM, you provide email notification to the authors of your intent 283.94 + to redistribute at least thirty days before your manuscript or media 283.95 + freeze, to give the authors time to provide updated documents. This 283.96 + notification should describe modifications, if any, made to the 283.97 + document. 283.98 +\item All substantive modifications (including deletions) be either 283.99 + clearly marked up in the document or else described in an attachment 283.100 + to the document. 283.101 +\item Finally, while it is not mandatory under this license, it is 283.102 + considered good form to offer a free copy of any hardcopy and CD-ROM 283.103 + expression of an Open Publication-licensed work to its author(s). 283.104 +\end{enumerate} 283.105 + 283.106 +\section{License options} 283.107 +\label{sec:opl:options} 283.108 + 283.109 +The author(s) and/or publisher of an Open Publication-licensed 283.110 +document may elect certain options by appending language to the 283.111 +reference to or copy of the license. These options are considered part 283.112 +of the license instance and must be included with the license (or its 283.113 +incorporation by reference) in derived works. 283.114 + 283.115 +\begin{enumerate} 283.116 +\item To prohibit distribution of substantively modified versions 283.117 + without the explicit permission of the author(s). ``Substantive 283.118 + modification'' is defined as a change to the semantic content of the 283.119 + document, and excludes mere changes in format or typographical 283.120 + corrections. 283.121 + 283.122 + To accomplish this, add the phrase ``Distribution of substantively 283.123 + modified versions of this document is prohibited without the 283.124 + explicit permission of the copyright holder.'' to the license 283.125 + reference or copy. 283.126 + 283.127 +\item To prohibit any publication of this work or derivative works in 283.128 + whole or in part in standard (paper) book form for commercial 283.129 + purposes is prohibited unless prior permission is obtained from the 283.130 + copyright holder. 283.131 + 283.132 + To accomplish this, add the phrase ``Distribution of the work or 283.133 + derivative of the work in any standard (paper) book form is 283.134 + prohibited unless prior permission is obtained from the copyright 283.135 + holder.'' to the license reference or copy. 283.136 + 283.137 +\end{enumerate} 283.138 + 283.139 +%%% Local Variables: 283.140 +%%% mode: latex 283.141 +%%% TeX-master: "00book" 283.142 +%%% End:
284.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 284.2 +++ b/ja/metadata.svg Fri Aug 14 12:10:47 2009 -0700 284.3 @@ -0,0 +1,328 @@ 284.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 284.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 284.6 +<svg 284.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 284.8 + xmlns:cc="http://web.resource.org/cc/" 284.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 284.10 + xmlns:svg="http://www.w3.org/2000/svg" 284.11 + xmlns="http://www.w3.org/2000/svg" 284.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 284.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 284.14 + width="744.09448819" 284.15 + height="1052.3622047" 284.16 + id="svg2" 284.17 + sodipodi:version="0.32" 284.18 + inkscape:version="0.44.1" 284.19 + sodipodi:docname="metadata.svg" 284.20 + sodipodi:docbase="/home/bos/hg/hgbook/en"> 284.21 + <defs 284.22 + id="defs4"> 284.23 + <marker 284.24 + inkscape:stockid="Arrow1Mend" 284.25 + orient="auto" 284.26 + refY="0.0" 284.27 + refX="0.0" 284.28 + id="Arrow1Mend" 284.29 + style="overflow:visible;"> 284.30 + <path 284.31 + id="path2944" 284.32 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 284.33 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 284.34 + transform="scale(0.4) rotate(180) translate(10,0)" /> 284.35 + </marker> 284.36 + </defs> 284.37 + <sodipodi:namedview 284.38 + id="base" 284.39 + pagecolor="#ffffff" 284.40 + bordercolor="#666666" 284.41 + borderopacity="1.0" 284.42 + gridtolerance="10000" 284.43 + guidetolerance="10" 284.44 + objecttolerance="10" 284.45 + inkscape:pageopacity="0.0" 284.46 + inkscape:pageshadow="2" 284.47 + inkscape:zoom="1.4" 284.48 + inkscape:cx="232.14286" 284.49 + inkscape:cy="490.68696" 284.50 + inkscape:document-units="px" 284.51 + inkscape:current-layer="layer1" 284.52 + inkscape:window-width="906" 284.53 + inkscape:window-height="620" 284.54 + inkscape:window-x="181" 284.55 + inkscape:window-y="58" /> 284.56 + <metadata 284.57 + id="metadata7"> 284.58 + <rdf:RDF> 284.59 + <cc:Work 284.60 + rdf:about=""> 284.61 + <dc:format>image/svg+xml</dc:format> 284.62 + <dc:type 284.63 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 284.64 + </cc:Work> 284.65 + </rdf:RDF> 284.66 + </metadata> 284.67 + <g 284.68 + inkscape:label="Layer 1" 284.69 + inkscape:groupmode="layer" 284.70 + id="layer1"> 284.71 + <path 284.72 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1;display:inline" 284.73 + d="M 326.94646,467.18359 L 326.94646,510.98123" 284.74 + id="path1910" 284.75 + inkscape:connector-type="polyline" 284.76 + inkscape:connection-end="#rect2962" 284.77 + inkscape:connection-start="#rect2764" /> 284.78 + <path 284.79 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1;display:inline" 284.80 + d="M 326.94646,531.98123 L 326.94646,591.77887" 284.81 + id="path1912" 284.82 + inkscape:connector-type="polyline" 284.83 + inkscape:connection-start="#rect2962" 284.84 + inkscape:connection-end="#rect3000" /> 284.85 + <path 284.86 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1;display:inline" 284.87 + d="M 316.1622,531.98123 L 192.30212,652.57648" 284.88 + id="path1916" 284.89 + inkscape:connector-type="polyline" 284.90 + inkscape:connection-end="#rect3038" 284.91 + inkscape:connection-start="#rect2962" /> 284.92 + <path 284.93 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#484848;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1" 284.94 + d="M 254.23217,467.18359 L 254.23216,510.98123" 284.95 + id="path3088" 284.96 + inkscape:connector-type="polyline" 284.97 + inkscape:connection-start="#rect1872" 284.98 + inkscape:connection-end="#rect2960" /> 284.99 + <path 284.100 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#484848;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1" 284.101 + d="M 254.23215,531.98123 L 254.23215,591.77887" 284.102 + id="path3090" 284.103 + inkscape:connector-type="polyline" 284.104 + inkscape:connection-start="#rect2960" 284.105 + inkscape:connection-end="#rect2998" /> 284.106 + <path 284.107 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#484848;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4.5, 1.5;stroke-dashoffset:0;stroke-opacity:1" 284.108 + d="M 248.84002,531.98123 L 186.90999,652.57648" 284.109 + id="path3092" 284.110 + inkscape:connector-type="polyline" 284.111 + inkscape:connection-start="#rect2960" 284.112 + inkscape:connection-end="#rect3038" /> 284.113 + <rect 284.114 + style="fill:#7b7df5;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.115 + id="rect1872" 284.116 + width="51.42857" 284.117 + height="20" 284.118 + x="228.51788" 284.119 + y="446.68359" /> 284.120 + <rect 284.121 + style="fill:#cacbfb;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.122 + id="rect2764" 284.123 + width="51.42857" 284.124 + height="20" 284.125 + x="301.23218" 284.126 + y="446.68359" /> 284.127 + <rect 284.128 + style="fill:#cacbfb;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.129 + id="rect2766" 284.130 + width="51.42857" 284.131 + height="20" 284.132 + x="155.80359" 284.133 + y="446.68359" /> 284.134 + <rect 284.135 + style="fill:#cacbfb;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.136 + id="rect2768" 284.137 + width="51.42857" 284.138 + height="20" 284.139 + x="83.089294" 284.140 + y="446.68359" /> 284.141 + <path 284.142 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.143 + d="M 135.01786,456.68359 L 155.30359,456.68359" 284.144 + id="path2770" 284.145 + inkscape:connector-type="polyline" 284.146 + inkscape:connection-start="#rect2768" 284.147 + inkscape:connection-end="#rect2766" /> 284.148 + <path 284.149 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.150 + d="M 207.73216,456.68359 L 228.01788,456.68359" 284.151 + id="path2772" 284.152 + inkscape:connector-type="polyline" 284.153 + inkscape:connection-start="#rect2766" 284.154 + inkscape:connection-end="#rect1872" /> 284.155 + <path 284.156 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.157 + d="M 280.44645,456.68359 L 300.73218,456.68359" 284.158 + id="path2774" 284.159 + inkscape:connector-type="polyline" 284.160 + inkscape:connection-start="#rect1872" 284.161 + inkscape:connection-end="#rect2764" /> 284.162 + <path 284.163 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 284.164 + d="M 62.303571,456.68359 L 82.589294,456.68359" 284.165 + id="path2778" 284.166 + inkscape:connector-type="polyline" 284.167 + inkscape:connection-end="#rect2768" /> 284.168 + <rect 284.169 + style="fill:#84f57b;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.170 + id="rect2960" 284.171 + width="51.42857" 284.172 + height="20" 284.173 + x="228.51787" 284.174 + y="511.48123" /> 284.175 + <rect 284.176 + style="fill:#cefbca;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.177 + id="rect2962" 284.178 + width="51.42857" 284.179 + height="20" 284.180 + x="301.23218" 284.181 + y="511.48123" /> 284.182 + <rect 284.183 + style="fill:#cefbca;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.184 + id="rect2964" 284.185 + width="51.42857" 284.186 + height="20" 284.187 + x="155.80357" 284.188 + y="511.48123" /> 284.189 + <rect 284.190 + style="fill:#cefbca;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.191 + id="rect2966" 284.192 + width="51.42857" 284.193 + height="20" 284.194 + x="83.089287" 284.195 + y="511.48123" /> 284.196 + <path 284.197 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.198 + d="M 135.01786,521.48121 L 155.30359,521.48121" 284.199 + id="path2968" 284.200 + inkscape:connector-type="polyline" /> 284.201 + <path 284.202 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.203 + d="M 207.73216,521.48121 L 228.01788,521.48121" 284.204 + id="path2970" 284.205 + inkscape:connector-type="polyline" /> 284.206 + <path 284.207 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.208 + d="M 280.44645,521.48121 L 300.73218,521.48121" 284.209 + id="path2972" 284.210 + inkscape:connector-type="polyline" /> 284.211 + <path 284.212 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 284.213 + d="M 62.30358,521.48121 L 82.5893,521.48121" 284.214 + id="path2974" 284.215 + inkscape:connector-type="polyline" /> 284.216 + <rect 284.217 + style="fill:#f57b8f;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.218 + id="rect2998" 284.219 + width="51.42857" 284.220 + height="20" 284.221 + x="228.51787" 284.222 + y="592.27887" /> 284.223 + <rect 284.224 + style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.225 + id="rect3000" 284.226 + width="51.42857" 284.227 + height="20" 284.228 + x="301.23218" 284.229 + y="592.27887" /> 284.230 + <rect 284.231 + style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.232 + id="rect3002" 284.233 + width="51.42857" 284.234 + height="20" 284.235 + x="155.80357" 284.236 + y="592.27887" /> 284.237 + <rect 284.238 + style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.239 + id="rect3004" 284.240 + width="51.42857" 284.241 + height="20" 284.242 + x="83.089287" 284.243 + y="592.27887" /> 284.244 + <path 284.245 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.246 + d="M 135.01786,602.27884 L 155.30359,602.27884" 284.247 + id="path3006" 284.248 + inkscape:connector-type="polyline" /> 284.249 + <path 284.250 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.251 + d="M 207.73216,602.27884 L 228.01788,602.27884" 284.252 + id="path3008" 284.253 + inkscape:connector-type="polyline" /> 284.254 + <path 284.255 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.256 + d="M 280.44645,602.27884 L 300.73218,602.27884" 284.257 + id="path3010" 284.258 + inkscape:connector-type="polyline" /> 284.259 + <path 284.260 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 284.261 + d="M 62.30358,602.27884 L 82.5893,602.27884" 284.262 + id="path3012" 284.263 + inkscape:connector-type="polyline" /> 284.264 + <rect 284.265 + style="fill:#ffced6;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.266 + id="rect3034" 284.267 + width="51.42857" 284.268 + height="20" 284.269 + x="228.51787" 284.270 + y="653.07648" /> 284.271 + <rect 284.272 + style="fill:#f57b8f;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.273 + id="rect3038" 284.274 + width="51.42857" 284.275 + height="20" 284.276 + x="155.80357" 284.277 + y="653.07648" /> 284.278 + <rect 284.279 + style="fill:#fbcad2;fill-opacity:1;stroke:#595959;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 284.280 + id="rect3040" 284.281 + width="51.42857" 284.282 + height="20" 284.283 + x="83.089287" 284.284 + y="653.07648" /> 284.285 + <path 284.286 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.287 + d="M 135.01786,663.07646 L 155.30359,663.07646" 284.288 + id="path3042" 284.289 + inkscape:connector-type="polyline" /> 284.290 + <path 284.291 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 284.292 + d="M 207.73216,663.07646 L 228.01788,663.07646" 284.293 + id="path3044" 284.294 + inkscape:connector-type="polyline" /> 284.295 + <path 284.296 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#747474;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1" 284.297 + d="M 62.30358,663.07646 L 82.5893,663.07646" 284.298 + id="path3048" 284.299 + inkscape:connector-type="polyline" /> 284.300 + <text 284.301 + xml:space="preserve" 284.302 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.303 + x="82.072548" 284.304 + y="432.64789" 284.305 + id="text3094"><tspan 284.306 + sodipodi:role="line" 284.307 + id="tspan3096" 284.308 + x="82.072548" 284.309 + y="432.64789">Changelog</tspan></text> 284.310 + <text 284.311 + xml:space="preserve" 284.312 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.313 + x="82.306923" 284.314 + y="498.97327" 284.315 + id="text3098"><tspan 284.316 + sodipodi:role="line" 284.317 + id="tspan3100" 284.318 + x="82.306923" 284.319 + y="498.97327">Manifest</tspan></text> 284.320 + <text 284.321 + xml:space="preserve" 284.322 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 284.323 + x="82.14286" 284.324 + y="580.08569" 284.325 + id="text3102"><tspan 284.326 + sodipodi:role="line" 284.327 + id="tspan3104" 284.328 + x="82.14286" 284.329 + y="580.08569">Filelogs</tspan></text> 284.330 + </g> 284.331 +</svg>
285.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 285.2 +++ b/ja/mq-collab.tex Fri Aug 14 12:10:47 2009 -0700 285.3 @@ -0,0 +1,524 @@ 285.4 +\chapter{Advanced uses of Mercurial Queues} 285.5 +\label{chap:mq-collab} 285.6 + 285.7 +Mercurial Queues $B$NMQK!$r??$C@5D>$KOCBj$K$9$k$N$O4JC1$G$9$,!"(B 285.8 +$B>/!9M^@)$r8z$+$;$F!"9~$_F~$C$?3+H/4D6-$G$N:n6H$KLrN)$D$h$&$J!"(B 285.9 +$B$"$^$jMxMQ$5$l$J$$5!G=$r4v$D$+@bL@$7$h$&$H;W$$$^$9!#(B 285.10 + 285.11 +$B$3$N>O$G$O!"(B 285.12 +Linux $B%+!<%M%k8~$1$N(B Infiniband $B%G%P%$%9%I%i%$%P3+H/$K$*$$$F!"(B 285.13 +$B4IM}$KMQ$$$F$$$?5;K!$r;HMQNc$H$7$F<h$j>e$2$^$9!#(B 285.14 +$B$3$N%G%P%$%9%I%i%$%P$O(B 285.15 +$B!J0lHL$N%G%P%$%9%I%i%$%PDxEY$K$O!KBg$-$/!"(B 285.16 +35 $B$N%=!<%9%U%!%$%k$K$^$?$,$C$?(B 25,000 $B9T$+$i$J$C$F$*$j!"(B 285.17 +$B>/?t$N3+H/%A!<%`$K$h$jJ]<i$5$l$F$$$^$9!#(B 285.18 + 285.19 +$B$3$N>O$G07$C$F$$$kBP>]$O(B Linux $B$KFC2=$7$?$b$N$G$9$,!"(B 285.20 +$B<+?H$,=jM-$7$F$$$J$$%3!<%I$r85$KB?$/$N3+H/$r9T$&I,MW$,$"$k6ILL$G!"(B 285.21 +$BF1MM$NJ}?K$,E,MQ$G$-$k$G$7$g$&!#(B 285.22 + 285.23 +\section{The problem of many targets} 285.24 + 285.25 +Linux $B%+!<%M%k$OIQHK$KJQ99$5$l!"(B 285.26 +$BFbItE*$K$O7h$7$F0BDj$7$F$$$^$;$s!#(B 285.27 +$B3+H/<T$O%j%j!<%9$N4V$KEY!9;W$$@Z$C$?JQ99$r9T$$$^$9!#(B 285.28 +$B$3$N$?$a!"(B 285.29 +Linux $B%+!<%M%k$NFCDj$N%j%j!<%9HG$G5!G=$9$k%I%i%$%P!<$NHG$O!"(B 285.30 +$B35$7$FB>$NHG$K$*$$$F$O(B\emph{$B%3%s%Q%$%k(B}$B$9$iDL$i$J$$>l9g$,$"$j$^$9!#(B 285.31 + 285.32 +$B%I%i%$%P$NJ]<i$r9T$&$?$a$K$O!"(B 285.33 +$B$$$/$D$+$N8DJL$N(B Linux $B$NHG$r0U<1$9$kI,MW$,$"$j$^$9!#(B 285.34 + 285.35 +\begin{itemize} 285.36 +\item $BBh0l$K$O!"%a%$%s$N(B Linux $B%+!<%M%k3+H/%D%j!<$G$9!#(B 285.37 + $B$3$N>l9g$N%3!<%I$NJ]<i$O!"%+!<%M%k%3%_%e%K%F%#$NB>$N3+H/<T$H6&M-$5$l!"(B 285.38 + $BH`$i$,%+!<%M%k$N%5%V%7%9%F%`$KBP$7$F9T$&$N$HF1DxEY$K!"(B 285.39 + ``$B3+H/$7$J$,$i$N(B''$BJQ99$,9T$o$l$^$9!#(B 285.40 + 285.41 +\item $B3+H/$7$F$$$k%I%i%$%P$rMxMQ$9$k$3$H$,$G$-$J$$8E$$(B 285.42 + Linux $B%G%#%9%H%j%S%e!<%7%g%s$r;HMQ$7$F$$$k8\5R$NMWK>$K1~$($k$?$a$K!"(B 285.43 + $B8E$$(B Linux $B%+!<%M%k$NHG$KBP$9$k4v$D$+$N(B``$B%P%C%/%]!<%H(B''$B$NJ]<i$bI,MW$G$9!#(B 285.44 + $B!J%3!<%I$N(B\emph{$B%P%C%/%]!<%H(B}$B$K$O!"(B 285.45 + $B$=$N%3!<%I$N3+H/BP>]$H$J$kHG$h$j$b8E$$HG$N4D6-$G2TF0$5$;$k$?$a$N!"(B 285.46 + $B%3!<%I$N2~JQ$,I,MW$G$9!K(B 285.47 + 285.48 +\item $B:G8e$K$J$j$^$9$,!"8\5R$NMxMQ$7$F$$$k%+!<%M%k$d%G%#%9%H%j%S%e!<%7%g%s$N!"(B 285.49 + $BA4BN$KBP$9$k99?7$r6/$$$k$3$H$J$/?75,5!G=$rDs6!$9$k$?$a$K!"(B 285.50 + $B%=%U%H%&%'%"$N%j%j!<%9%9%1%8%e!<%k$O!"(B 285.51 + Linux $B%G%#%9%H%j%S%e!<%7%g%s$d%+!<%M%k3+H/<T$,MxMQ$7$F$$$k%+!<%M%k$H!"(B 285.52 + $BI,$:$7$bB-JB$_$rB7$($k$o$1$G$O$"$j$^$;$s!#(B 285.53 + 285.54 +\end{itemize} 285.55 + 285.56 +\subsection{Tempting approaches that don't work well} 285.57 + 285.58 +$BJ#?t$N0[$J$k4D6-$rBP>]$H$7$J$1$l$P$J$i$J$$0lO"$N%=%U%H%&%'%"$NJ]<i$K$O!"(B 285.59 +$B#2$D$N(B``$BI8=`E*$J(B''$BJ}K!$,$"$j$^$9!#(B 285.60 + 285.61 +$B#1$DL\$NJ}K!$O!"(B 285.62 +$B$=$l$>$l$,C10l$N4D6-$rBP>]$H$9$kJ#?t$N%V%i%s%A$r4IM}$9$kJ}K!$G$9!#(B 285.63 +$B$3$NJ}K!$NLdBjE@$O!"(B 285.64 +$B%j%]%8%H%j4V$G$NJQ99$N1}Mh(B\footnote{$BLuCm(B: $B$$$o$f$k!V%^!<%8!W$N$3$H(B}$B$K$*$$$F!"(B 285.65 +$BE4$N5,N'$G$b$C$FK>$`I,MW$,M-$k$3$H$G$9!#(B 285.66 +$B?7$7$$5!G=$d%P%0$N=$@5$O(B``$B???7$7$$(B''$B%j%]%8%H%j$G;O$a$J$1$l$P$J$i$:!"(B 285.67 +$B$=$N8e$GA4$F$N%P%C%/%]!<%HMQ%j%]%8%H%j$K?;F)$5$;$^$9!#(B 285.68 +$B%P%C%/%]!<%H$G$NJQ99$O!"$=$NEAGE$,99$K%V%i%s%A8BDj$5$l$^$9!#(B 285.69 +$B=jB030$N%V%i%s%A$KE,MQ$5$l$k$h$&$J%P%C%/%]!<%H8~$1$NJQ99$O!"(B 285.70 +$B$*$=$i$/%I%i%$%P$N%3%s%Q%$%k$rK8$2$k$G$7$g$&!#(B 285.71 + 285.72 +$B#2$DL\$NJ}K!$O!"(B 285.73 +$B8D!9$N%3!<%IJR$NM-8z!?L58z$r!"(B 285.74 +$B0U?^$9$kBP>]$K0MB8$7$F@Z$jBX$($k$?$a$N>r7oJ8$GKd$a$i$l$?!"(B 285.75 +$BC10l$N%=!<%9%D%j!<$rJ]<i$9$kJ}K!$G$9!#(B 285.76 +$B$3$l$i$N(B``ifdef''$B5-=R$O!"(B 285.77 +Linux $B%+!<%M%k%D%j!<$G$O5v$5$l$F$$$J$$$N$G!"(B 285.78 +$B$3$l$i$r<h$j=|$$$Fe:No$J%D%j!<$r@8@.$9$k$?$a$N!"(B 285.79 +$B<jF0$J$$$7<+F0$N<j=g$,I,MW$G$9!#(B 285.80 +$B$3$NN.57$GJ]<i$5$l$k%3!<%I%Y!<%9$OAa!9$K!"(B 285.81 +$BM}2r$bJ]<i$b:$Fq$J>r7oJ,4t$N!VAM$NAc!W$H$J$k$G$7$g$&!#(B 285.82 + 285.83 +$B$3$l$i$N$$$:$l$N<jK!$b!"(B 285.84 +$B@5Ev$J%=!<%9%D%j!<$N%3%T!<$r(B``$B=jM-(B''$B$7$F$$$J$$>u67$K$OE,9g$7$^$;$s!#(B 285.85 +$BI8=`%+!<%M%k$H6&$KG[I[$5$l$k(B Linux $B%I%i%$%P$N>l9g!"(B 285.86 +Linus $B;a$N%=!<%9%D%j!<$O!"(B 285.87 +$B@$3&Cf$,@5E}$H$_$J$9%3!<%I$N%3%T!<$+$i9=@.$5$l$^$9!#(B 285.88 +$B>eN.%j%]%8%H%j$K$*$1$k(B``$B;d$N(B''$B%I%i%$%P$O!"(B 285.89 +Linus $B;a$N%=!<%9%D%j!<>e$K2~JQFbMF$,H?1G$5$l$k$^$G$K$O!"(B 285.90 +$BCN$i$J$$$&$A$K8+CN$i$L?M!9$K$h$C$F0[$J$kHG$K2~JQ$5$l$F$$$k$+$b$7$l$^$;$s!#(B 285.91 + 285.92 +$B$3$l$i$N<jK!$O!"(B 285.93 +$B>eN.%j%]%8%H%j$X$N%Q%C%A$NBN:[$r@0$($k$N$rFq$7$/$7$F$7$^$&!"(B 285.94 +$B$H$$$&7gE@$b;}$C$F$$$^$9!#(B 285.95 + 285.96 +Mercurial Queues $B$O!"(B 285.97 +$B$3$l$^$G=R$Y$F$-$?>u67$G$N3+H/$r4IM}$9$k$?$a$N!"(B 285.98 +$BNI$$8uJd$H8@$($^$9!#(B 285.99 +$B$^$5$K$3$N$h$&$J>u67$K$*$$$F!"(B 285.100 +MQ $B$O:n6H$r2wE,$K$9$k99$K4v$D$+$NIU2CE*5!G=$r;}$C$F$$$^$9!#(B 285.101 + 285.102 +\section{$B%,!<%I$K$h$k>r7oIU$-%Q%C%AE,MQ(B} 285.103 + 285.104 +$B$*$=$i$/!"(B 285.105 +$BB?$/$NBP>]4D6-$KBP$9$k7rA4@-$rJ]<i$9$kJ}K!$O!"(B 285.106 +$B=jDj$N>u67$4$H$KE,MQ$5$l$kFCDj$N%Q%C%A$rA*Br$G$-$k$3$H!"(B 285.107 +$B$H8@$($k$G$7$g$&!#(B 285.108 +MQ $B$O!"(B 285.109 +$B>e5-$N5!G=$r;}$D(B``$B%,!<%I(B''$B!J(Bquilt $B$N(B \texttt{guards} $B%3%^%s%I$KM3Mh$7$^$9!K(B 285.110 +$B$H8F$P$l$k5!G=$rDs6!$7$^$9!#(B 285.111 +$B$^$:$O$8$a$K!"(B 285.112 +$B<B83$N$?$a$N4JAG$J%j%]%8%H%j$r:n@.$7$^$7$g$&!#(B 285.113 + 285.114 +\interaction{mq.guards.init} 285.115 + 285.116 +$B$3$N<j=g$K$h$j!"(B 285.117 +$B0[$J$k%U%!%$%k$rA`:n$9$k$N$G8_$$$K$O0MB8@-$NL5$$#2$D$N%Q%C%A$r;}$D!"(B 285.118 +$B>.$5$J%j%]%8%H%j$,F@$i$l$^$9!#(B 285.119 + 285.120 +$B>r7oIU$-E,MQ$N9M$(J}$O!"(B 285.121 +$BG$0U$NC1=c$JJ8;zNs$+$i$J$k(B\emph{$B%,!<%I(B}$B$5$l$?(B``$B;%(B'' 285.122 +(tag)$B$r%Q%C%A$KIUM?$7$F$*$-!"(B 285.123 +$B%Q%C%AE,MQ$N:]$K!";HMQ$9$Y$-FCDj$N%,!<%I$r(B MQ $B$KBP$7$F65$($k!"(B 285.124 +$B$H$$$&$b$N$G$9!#(B 285.125 +$B$"$i$+$8$aA*Br$7$F$*$$$?%,!<%I$K1~$8$F!"(B 285.126 +MQ $B$O%,!<%I$5$l$?%Q%C%A$rE,MQ$9$k$+8+Aw$k$+$r7hDj$7$^$9!#(B 285.127 + 285.128 +$B8D!9$N%Q%C%A$OG$0U$N?t$N%,!<%I$r;}$D$3$H$,$G$-!"(B 285.129 +$B$=$l$>$l$N%,!<%I$O(B\emph{$B%]%8%F%#%V(B} 285.130 +$B!J(B``$B%,!<%IA*Br;~$K%Q%C%A$rE,MQ$9$k>l9g(B''$B!K$+(B\emph{$B%M%,%F%#%V(B} 285.131 +$B!J(B``$B%,!<%IA*Br;~$K%Q%C%AE,MQ$r8+Aw$k(B''$B!K$N$I$A$i$+$G$9!#(B 285.132 +$B%,!<%I$r;}$?$J$$%Q%C%A$O>o$KE,MQ$5$l$^$9!#(B 285.133 + 285.134 +\section{$B%Q%C%A$N%,!<%I$r@)8f$9$k(B} 285.135 + 285.136 +\hgxcmd{mq}{qguard} $B%3%^%s%I$O!"(B 285.137 +$B$I$N%,!<%I$r%Q%C%A$KE,MQ$9$k$+$r7hDj$9$k$+!"(B 285.138 +$B$5$b$J$/$P8=;~E@$GM-8z$J%,!<%I$rI=<($7$^$9!#(B 285.139 +$B0z?t$,L5$$>l9g!"8=:_$N:G>e0L%Q%C%A$N%,!<%I$rI=<($7$^$9!#(B 285.140 + 285.141 +\interaction{mq.guards.qguard} 285.142 + 285.143 +$B%Q%C%A$K%]%8%F%#%V$J%,!<%I$r@_Dj$9$k$K$O!"(B 285.144 +$B%,!<%IL>$N@\F,<-$H$7$F(B ``\texttt{+}'' $B$rIUM?$7$^$9!#(B 285.145 + 285.146 +\interaction{mq.guards.qguard.pos} 285.147 + 285.148 +$B%Q%C%A$K%M%,%F%#%V$J%,!<%I$r@_Dj$9$k$K$O!"(B 285.149 +$B%,!<%IL>$N@\F,<-$H$7$F(B ``\texttt{-}'' $B$rIUM?$7$^$9!#(B 285.150 + 285.151 +\interaction{mq.guards.qguard.neg} 285.152 + 285.153 +\begin{note} 285.154 + \hgxcmd{mq}{qguard} $B%3%^%s%I$O!"%Q%C%A$K%,!<%I$r@_Dj$7$^$9$,!"(B 285.155 + $B%Q%C%A$N%,!<%I@_Dj$r(B\emph{$BJQ99(B}$B$7$?$j$O$7$^$;$s!#(B 285.156 + $B$D$^$j!"(B 285.157 + $B%Q%C%A$K(B \hgcmdargs{qguard}{+a +b} $B$rE,MQ$7$?8e$K!"(B 285.158 + $BF1$8%Q%C%A$K(B \hgcmdargs{qguard}{+c} $B$rE,MQ$7$?>l9g!"(B 285.159 + $B$3$N%Q%C%A$K@_Dj$5$l$F$$$k%,!<%I$O(B \texttt{+c} \emph{$B$@$1(B}$B$H$J$j$^$9!#(B 285.160 +\end{note} 285.161 + 285.162 +Mercurial $B$O!"(B 285.163 +$B2r<a!&<jF0JT=8$,6&$KMF0W$J7A<0$G!"(B 285.164 +$B%,!<%I>pJs$r(B \sfilename{series} $B$K3JG<$7$^$9(B 285.165 +$B!J8@$$49$($k$J$i!"(B 285.166 +\hgxcmd{mq}{qguard} $B%3%^%s%I$rMxMQ$9$kI,MW$OL5$/!"(B 285.167 +\sfilename{series} $B%U%!%$%k$rD>@\JT=8$7$F$b9=$$$^$;$s!K!#(B 285.168 + 285.169 +\interaction{mq.guards.series} 285.170 + 285.171 +\section{$B;HMQ$9$k%,!<%I$NA*Br(B} 285.172 + 285.173 +\hgxcmd{mq}{qselect} $B%3%^%s%I$O!"M-8z$K$9$k%,!<%I$r7hDj$7$^$9!#(B 285.174 +$B%,!<%I$,7hDj$9$k$3$H$G!"(B 285.175 +$B<!$K(B \hgxcmd{mq}{qpush} $B$r<B9T$7$?:]$K(B MQ $B$,E,MQ$9$k%Q%C%A$,7hDj$5$l$^$9!#(B 285.176 +$B$3$N%3%^%s%I$O$=$l0J30$NF/$-$r$7$^$;$s!#(B 285.177 +$BFC$K!"4{$KE,MQ:Q$_$N%Q%C%A$KBP$7$F$O!"0l@Z2?$b9T$$$^$;$s!#(B 285.178 + 285.179 +$B0z?t$,;XDj$5$l$J$$>l9g!"(B 285.180 +\hgxcmd{mq}{qselect} $B%3%^%s%I$O!"(B 285.181 +$B8=;~E@$GM-8z$K$J$C$F$$$k%,!<%I$r#19T$K#1$D$E$DI=<($7$^$9!#(B 285.182 +$B8D!9$N0z?t$O!"E,MQ$5$l$k%,!<%I$NL>A0$H$_$J$5$l$^$9!#(B 285.183 + 285.184 +\interaction{mq.guards.qselect.foo} 285.185 + 285.186 +$B8=:_A*Br$5$l$F$$$k%,!<%I$N0lMw$,(B 285.187 +\sfilename{guards} $B%U%!%$%k$K3JG<$5$l$F$$$^$9$N$G!"(B 285.188 +$B6=L#$,$"$l$P8+$F$_$k$N$bNI$$$G$7$g$&!#(B 285.189 + 285.190 +\interaction{mq.guards.qselect.cat} 285.191 + 285.192 +\hgxcmd{mq}{qpush} $B$r<B9T$9$k$3$H$G!"(B 285.193 +$B%,!<%IA*Br$N8z2L$r8+$k$3$H$,$G$-$^$9!#(B 285.194 + 285.195 +\interaction{mq.guards.qselect.qpush} 285.196 + 285.197 + 285.198 +``\texttt{+}'' $B$J$$$7(B ``\texttt{-}'' 285.199 +$B$G;O$^$kL>A0$O%,!<%IL>$K$O$G$-$^$;$s!#(B 285.200 +$B6uGrJ8;z$r4^$`$b$N$b%,!<%IL>$K$O$J$l$^$;$s$,!"(B 285.201 +$B$=$l$$$,$$$NBgDq$NJ8;z$O;HMQ2DG=$G$9!#(B 285.202 +$BIT@5$J%,!<%IL>$N;HMQ$O!"(BMQ $B$K$h$j7Y9p$5$l$^$9!#(B 285.203 + 285.204 +\interaction{mq.guards.qselect.error} 285.205 + 285.206 +$B%,!<%IA*Br$NJQ99$O!"E,MQ$5$l$k%Q%C%A$r@Z$jBX$($^$9!#(B 285.207 + 285.208 +\interaction{mq.guards.qselect.quux} 285.209 + 285.210 +$B%M%,%F%#%V$J%,!<%I$,%]%8%F%#%V$J%,!<%I$KM%@h$9$k$3$H$r!"(B 285.211 +$B0J2<$NNc$G8+$k$3$H$,$G$-$^$9!#(B 285.212 + 285.213 +\interaction{mq.guards.qselect.foobar} 285.214 + 285.215 +\section{MQ $B$N%Q%C%AE,MQ%k!<%k(B} 285.216 + 285.217 +$B%Q%C%AE,MQ$NM-L5$rH=Dj$9$k:]$K!"(BMQ $B$O0J2<$N%k!<%k$r;HMQ$7$^$9!#(B 285.218 + 285.219 +\begin{itemize} 285.220 +\item $B%,!<%IL5$7%Q%C%A$O>o$KE,MQ$5$l$^$9!#(B 285.221 + 285.222 +\item $B8=:_A*Br$5$l$F$$$k%,!<%I$K%^%C%A$9$k%M%,%F%#%V%,!<%I$,$"$k>l9g!"(B 285.223 + $B%Q%C%A$OE,MQ$5$l$^$;$s!#(B 285.224 + 285.225 +\item $B8=:_A*Br$5$l$F$$$k%,!<%I$K%^%C%A$9$k%]%8%F%#%V%,!<%I$,$"$k>l9g!"(B 285.226 + $B%Q%C%A$OE,MQ$5$l$^$9!#(B 285.227 + 285.228 +\item $B8=:_A*Br$5$l$F$$$k%,!<%I$K%^%C%A$9$k%,!<%I$,2?$bL5$$>l9g!"(B 285.229 + $B%Q%C%A$OE,MQ$5$l$^$;$s!#(B 285.230 + 285.231 +\end{itemize} 285.232 + 285.233 +\section{Trimming the work environment} 285.234 + 285.235 +$B@h$K=R$Y$?(B 285.236 +Linux $B%+!<%M%k8~$1$N(B Infiniband 285.237 +$B%G%P%$%9%I%i%$%P3+H/$G$N%Q%C%AE,MQ$G$O!"(B 285.238 +Linux $B%+!<%M%k$NDL>o$N%=!<%9%D%j!<$O;HMQ$7$^$;$s!#(B 285.239 +$B$=$NBe$o$j!"(B 285.240 +Infiniband $B%G%P%$%9%I%i%$%P3+H/$K4XO"$9$k%=!<%9!?(B 285.241 +$B%X%C%@$N$_$r4^$`%j%]%8%H%j$r:n@.$7!"(B 285.242 +$B$=$3$KBP$7$F%Q%C%A$rE,MQ$9$k$h$&$K$7$^$9!#(B 285.243 +$B$3$N%j%]%8%H%j$N%5%$%:$O%+!<%M%k%j%]%8%H%j$N(B 1\% $B$K<}$^$k$?$a!"(B 285.244 +$B:n6H$r9T$&$N$b4JC1$G$9!#(B 285.245 + 285.246 +$B=L>.HG$N%j%]%8%H%j$r:n@.$7$?$J$i$P!"(B 285.247 +$B%Q%C%A$N(B``$BE,MQBP>](B''$B$H$J$k%P!<%8%g%s$rA*Br$7$^$9(B\footnote{$BLuCm(B: 285.248 +$B$3$3$G8@$&!V(Bchoose$B!W!JA*Br!K$O!"(B 285.249 +\hgcmd{update} $B<B9T$r;X$9$N$G$O$J$$$+!)(B 285.250 +$B$=$&$G$"$l$P!"<!J8$,!V$3$l$O!A%9%J%C%W%7%g%C%H$@!W$H$$$&$N$bM}2r$G$-$k!#(B}$B!#(B 285.251 +XXXXXXXXXXXX 285.252 +This is a snapshot of the Linux kernel tree as of a revision 285.253 +of my choosing. 285.254 +XXXXXXXXXXXX 285.255 +$BE,MQBP>]$rA*Br$9$k:]$KI.<T$O!"(B 285.256 +$BEv3:%j%S%8%g%s$N%+!<%M%k%j%]%8%H%j$K$*$1$k%A%'%s%8%;%C%H(BID$B$r!"(B 285.257 +$B%3%_%C%H%a%C%;!<%8(B\footnote{$BLuCm(B: $B%Q%C%A$N!)(B XXXXXX}$BCf$K5-O?$7$F$*$-$^$9!#(B 285.258 +$B%+!<%M%k%D%j!<Cf$N3+H/$K4XO"$9$kIt0L$K4X$7$F!"(B 285.259 +$B%9%J%C%W%7%g%C%H$K$h$C$F(B``$B>u67(B''$B$HFbMF$,FCDj$G$-$k$?$a!"(B 285.260 +$B=L>.HG%j%]%8%H%j$HDL>oHG$N%+!<%M%k%D%j!<$N$$$:$l$KBP$7$F$b!"(B 285.261 +$B%Q%C%A$NE,MQ$,2DG=$K$J$j$^$9!#(BXXXXXX 285.262 +Since the snapshot 285.263 +preserves the ``shape'' and content of the relevant parts of the 285.264 +kernel tree, I can apply my patches on top of either my tiny 285.265 +repository or a normal kernel tree. 285.266 + 285.267 +$BDL>o$O!"(B 285.268 +$B%Q%C%A$NE,MQBP>]$H$J$k%=!<%9%D%j!<$N%Y!<%9$K$O!"(B 285.269 +$B>eN.%j%]%8%H%j$ND>6a$N%9%J%C%W%7%g%C%H$r;HMQ$9$Y$-$G$9!#(B 285.270 +$B$=$&$9$k$3$H$G!"(B 285.271 +$B:n@.$7$?%Q%C%A$r>eN.%j%]%8%H%j$NC4Ev<T$XAwIU$9$k:]$K!"(B 285.272 +$BKX$I!J$"$k$$$OA4$/!K2~JQ$NI,MW$,L5$/$J$k$G$7$g$&!#(B 285.273 + 285.274 +\section{Dividing up the \sfilename{series} file} 285.275 + 285.276 +$BI.<T$O!"(B\sfilename{series} $B$KNs5s$5$l$k%Q%C%A$r!"(B 285.277 +$B4v$D$+$NO@M}E*$J$^$H$^$j$KJ,N`$7$F$$$^$9!#(B 285.278 +$B$=$l$>$l$N%Q%C%AJ,N`$O!"(B 285.279 +$B$=$N8e$KNs5s$5$l$k%Q%C%A$N0U?^$r5-=R$7$?%3%a%s%H%V%m%C%/$G3+;O$5$l$^$9!#(B 285.280 + 285.281 +$BI.<T$N07$C$F$$$k%Q%C%AJ,N`$O!"0J2<$N$h$&$JJB$S$K$J$C$F$$$^$9!#(B 285.282 +$BJ,N`$N=g=x$O=EMW$J$N$G!"J,N`$r>R2p$7$?8e$G@bL@$7$^$9!#(B 285.283 + 285.284 +\begin{itemize} 285.285 +\item ``$B<uM}:Q$_(B(accepted)''$BJ,N`(B: 285.286 + $B3+H/%A!<%`$,(B Infiniband $B%5%V%7%9%F%`$NJ]<iC4Ev$KAwIU$7$F!"(B 285.287 + $B4{$K<uM}$O$5$l$F$$$k$b$N$N!"(B 285.288 + $B=L>.HG%j%]%8%H%j$,85$K$7$F$$$k%9%J%C%W%7%g%C%H$K$O!"(B 285.289 + $B$^$@H?1G$5$l$F$$$J$$%Q%C%A$NJ,N`$G$9!#(B 285.290 + $B$3$l$i$O!"(B 285.291 + $B>eN.%j%]%8%H%j$NJ]<iC4Ev$N%j%]%8%H%j$HF1$8>uBV$rF@$k$?$a$K!"(B 285.292 + $B%=!<%9%D%j!<$rJQ49$9$k(B``$BFI$_=P$78BDj(B''$B%Q%C%A$G$9!#(B 285.293 + 285.294 +\item ``$B:F:n6H(B(rework)''$BJ,N`(B: 285.295 + $B>eN.%j%]%8%H%j$NJ]<iC4Ev$KAwIU$7$?$b$N$N!"(B 285.296 + $B<uM}$KEv$?$C$FJQ99$rMW5a$5$l$?%Q%C%A$NJ,N`!#(B 285.297 + 285.298 +\item ``$BJ]N1(B(pending)''$BJ,N`(B: 285.299 + $B>eN.%j%]%8%H%j$NJ]<iC4Ev$KAwIU$3$=$7$F$$$J$$$b$N$N!"(B 285.300 + $B4{$K:n6H$r=*$($?%Q%C%A$NJ,N`!#(B 285.301 + $B$7$P$i$/$N4V$O(B``$BFI$_=P$78BDj(B''$B$H$7$F07$o$l$^$9!#(B 285.302 + $B>eN.%j%]%8%H%j$NJ]<iC4Ev$K$h$j<uM}$5$l$l$P!"(B 285.303 + $B$3$N%Q%C%A$r(B``$B<uM}:Q$_(B''$BJ,N`$NKvHx$X$H0\F0$7$^$9!#(B 285.304 + $B<uM}$KEv$?$C$FJQ99$,MW5a$5$l$?>l9g!"(B 285.305 + ``$B:F:n6H(B''$BJ,N`$N@hF,$X$H0\F0$7$^$9!#(B 285.306 + 285.307 +\item ``$B:n6HCf(B(in progress)''$BJ,N`(B: 285.308 + $BL\2<$N$H$3$m3hH/$K:n6H$,9T$o$l$F$$$k%Q%C%A$NJ,N`!#(B 285.309 + $B$3$NJ,N`$N%Q%C%A$O!"30It$K8x3+$9$Y$-$G$O$"$j$^$;$s!#(B 285.310 + 285.311 +\item ``$B%P%C%/%]!<%H(B(backport)''$BJ,N`(B: 285.312 + $B8E$$HG$N%+!<%M%k$N%=!<%9%D%j!<$KE,9g$5$;$k$?$a$N%Q%C%A$NJ,N`!#(B 285.313 + 285.314 +\item ``$BFbItMQ(B(do not ship)''$BJ,N`(B: 285.315 + $B2?$i$+$NM}M3$K$h$j!">eN.%j%]%8%H%j$NJ]<iC4Ev$X$OAwIU$5$l$J$$%Q%C%A$NJ,N`!#(B 285.316 + $B$3$N$h$&$J%Q%C%A$NNc$H$7$F$O!"(B 285.317 + $B%I%i%$%P<1JLMQ$NKd$a9~$_J8;zNs$NJQ99$r9T$&$3$H$G!"(B 285.318 + $B%=!<%9%D%j!<$N$b$N$H$O0[$J$k%I%i%$%P<BAu$NHG(B 285.319 + \footnote{$BLuCm(B: $B3+H/Cf$N%I%i%$%P$N$3$H!)(B}$B$H!"(B 285.320 + $B%G%#%9%H%j%S%e!<%7%g%s%Y%s%@$K$h$C$FG[I[$5$l$k%I%i%$%P<BAu$NHG$N4V$G!"(B 285.321 + $BF0:n3NG'Ey$K$*$1$k6hJL$rMF0W$K$9$k%Q%C%A$,$"$j$^$9!#(B 285.322 + 285.323 +\end{itemize} 285.324 + 285.325 +$B$G$O$3$3$G!"%Q%C%AJ,N`Hx$r$3$N=gHV$K$9$kM}M3$KLa$j$^$7$g$&!#(B 285.326 +$B%3%s%F%-%9%H$NJQ99$,H/@8$9$k$3$H$G!"(B 285.327 +$B%9%?%C%/>eJ}$N%Q%C%A$X$N:F:n6H(B 285.328 +\footnote{$BLuCm(B: \hgxcmd{mq}{qrefresh} $B$N<B9T$K$h$k%Q%C%A$N=$@5$N$3$H(B} 285.329 +$B$,I,MW$K$J$k$3$H$,L5$$$h$&$K!"(B 285.330 +$B%9%?%C%/Cf$GDl$K$"$k%Q%C%A$[$I0BDj$7$F$$$FM_$7$$$b$N$G$9!#(B 285.331 +$BJQ99$5$l$K$/$$%Q%C%A72$r(B 285.332 +\sfilename{series} $B%U%!%$%k$NKAF,$KCV$/$3$H$G!"(B 285.333 +$B$3$NL\E*$rC#@.$9$k$3$H$,$G$-$^$9!#(B 285.334 + 285.335 +$BB>$N%Q%C%A$NE,MQ$r6KNO>eN.%j%]%8%H%j$N>uBV$K6a$$%=!<%9%D%j!<$X9T$&$?$a$K!"(B 285.336 +$B%=!<%9%D%j!<$NJQ49$KI,MW$H;W$o$l$k%Q%C%A$b=EMW$G$9!#(B 285.337 +$B<uM}:Q$_$N%Q%C%A$b;C$/$N4VJ];}$7$F$$$k$N$O$=$N$?$a$G$9!#(B 285.338 + 285.339 +``$B%P%C%/%]!<%H(B''$B$*$h$S(B``$BFbItMQ(B''$B%Q%C%A$O!"(B 285.340 +\sfilename{series} $BKvHx6aJU$rE>!9$H$7$^$9!#(B 285.341 +$B%P%C%/%]!<%H%Q%C%A$OB>$NA4$F$N%Q%C%AE,MQ$N>e$GE,MQ$5$l$J$1$l$P$J$j$^$;$s$7!"(B 285.342 +$B$=$N>e!"(B 285.343 +``$BFbItMQ(B''$B%Q%C%A$OITET9g$,L5$$$h$&$KFbIt$KN1$^$jB3$1$kI,MW$,$"$j$^$9!#(B 285.344 + 285.345 +\section{Maintaining the patch series} 285.346 + 285.347 +$BI.<T$N:n6H$N:]$K$O!"(B 285.348 +$B%Q%C%AE,MQ$r@)8f$9$k$?$a$KJ#?t$N%,!<%I$r;HMQ$7$F$$$^$9!#(B 285.349 + 285.350 +\begin{itemize} 285.351 +\item ``$B<uM}:Q$_(B''$B%Q%C%A$K$O!"(B\texttt{accepted} $B%,!<%I$,IUM?$5$l$^$9!#(B 285.352 + $B$3$N%,!<%I$OKX$I$N>l9g$KM-8z$H$5$l$^$9!#(B 285.353 + $B4{$K%Q%C%A$,E,MQ$5$l$F$$$k%=!<%9%D%j!<$K%Q%C%A$rE,MQ$9$k:]$K$O!"(B 285.354 + $B%Q%C%A$rE,MQ$5$;$J$$$h$&$K$9$k$3$H$,(B 285.355 + \footnote{$BLuCm(B: \texttt{accepted} $B%,!<%IIU$-%Q%C%A$rL58z$K$9$k$3$H$G(B} 285.356 + $B$G$-$k$N$G!"(B 285.357 + $B8eB3$N%Q%C%A72$Oe:No$KE,MQ$5$l$^$9!#(B 285.358 + 285.359 +\item $B:n6H$O(B``$B40N;(B''$B$7$F$$$k$b$N$N!"(B 285.360 + $B>eN.%j%]%8%H%j$NJ]<iC4Ev$KAwIU$5$l$F$$$J$$%Q%C%A(B 285.361 + \footnote{$BLuCm(B: $B@h$NJ,N`$G8@$&$H$3$m$N(B``$BJ]N1(B(pending)''}$B$K$O!"(B 285.362 + $B2?$b%,!<%I$,IUM?$5$l$^$;$s!#(B 285.363 + $B>eN.%j%]%8%H%j$N%3%T!<$KBP$7$F%Q%C%A%9%?%C%/$rE,MQ$9$k>l9g!"(B 285.364 + $BFC$K2?$b%,!<%I$r;XDj$7$J$/$F$b!"(B 285.365 + $BE,EY$K0BA4$J%=!<%9%D%j!<$rF@$k$3$H$,$G$-$^$9!#(B 285.366 + 285.367 +\item $B>eN.%j%]%8%H%j$NJ]<iC4Ev$X$N!J:F!KAwIU$KEv$?$C$F!"(B 285.368 + $B:F:n6H$,I,MW$J%Q%C%A$K$O(B \texttt{rework} $B%,!<%I$,IUM?$5$l$^$9!#(B 285.369 + 285.370 +\item $BL\2<3+H/:n6HCf$K$"$k%Q%C%A(B 285.371 + \footnote{$BLuCm(B: $B@h$NJ,N`$G8@$&$H$3$m$N(B``$B:n6HCf(B(in progress)''}$B$K$O!"(B 285.372 + \texttt{devel} $B%,!<%I$,IUM?$5$l$^$9!#(B 285.373 + 285.374 +\item $B%P%C%/%]!<%H%Q%C%A$K$O!"(B 285.375 + $BE,MQBP>]%+!<%M%k$N%P!<%8%g%s$r;XDj$9$kJ#?t$N%,!<%I$,IUM?$5$l$^$9!#(B 285.376 + $BNc$($P!"(B~2.6.9 $BHG$X$N%P%C%/%]!<%H$r9T$&%Q%C%A$K$O!"(B 285.377 + \texttt{2.6.9} $B%,!<%I$,IUM?$5$l$^$9!#(B 285.378 + 285.379 +\end{itemize} 285.380 + 285.381 +$B$3$l$i$N%,!<%IJ,N`$K$h$j!"(B 285.382 +$B:G=*E*$K$I$N$h$&$J%=!<%9%D%j!<$,F@$i$l$k$+$r7hDj$9$k:]$K!"(B 285.383 +$B>/$J$+$i$L=@Fp@-$rF@$k$3$H$,$G$-$^$9!#(B 285.384 +$BB?$/$N>l9g!"(B 285.385 +$BE,@Z$J%,!<%I$NA*Br$O9=C[<j=g$NCf$G<+F02=$5$l$F$$$^$9$,!"(B 285.386 +$BFCJL$J>u678~$1$K%,!<%I$ND4@0$r<jF0$G9T$&$3$H$b2DG=$G$9!#(B 285.387 + 285.388 +\subsection{The art of writing backport patches} 285.389 + 285.390 +MQ $B$r;HMQ$9$k$3$H$G!"(B 285.391 +$B%P%C%/%]!<%H%Q%C%A$N:n@.$OC1=c$J:n6H$H$J$j$^$9!#(B 285.392 +$B5lHG$N%+!<%M%kG[2<$K$*$$$F$b%I%i%$%P$,@5>o$K2TF0$9$k$h$&$K!"(B 285.393 +$B5lHG$N%+!<%M%k$K$*$$$FDs6!$5$l$F$$$J$$5!G=$r;HMQ$9$k%3!<%I$NJQ99$,!"(B 285.394 +$B%P%C%/%]!<%H%Q%C%A$N$9$Y$-$3$H$NA4$F$G$9!#(B 285.395 + 285.396 +$BNI$$%P%C%/%]!<%H%Q%C%A$r=q$/:]$N%4!<%k$O!"(B 285.397 +$BBP>]$H$9$k5lHG%+!<%M%k8~$1$K=q$$$?$+$N$h$&$K!"(B 285.398 +$B$"$J$?$N%3!<%I$rJQ99$9$k$h$&$J%Q%C%A$K$9$k$3$H$G$9!#(B 285.399 +$B%Q%C%A$,$G$7$c$P$i$J$$Dx!"M}2r$HJ]<i$,MF0W$K$J$j$^$9!#(B 285.400 +$B%3!<%ICf$NBgNL$N(B \texttt{\#ifdef}$B!J>r7o$K1~$8$FE,MQ$5$l$k%3!<%IJR!K(B 285.401 +$B$K$h$k(B``$BAM$NAc(B''$B2=$rHr$1$k$?$a$K%P%C%/%]!<%H%Q%C%A72$r=q$/$N$G$"$l$P!"(B 285.402 +$B%P!<%8%g%s0MB8$J(B \texttt{\#ifdef} $B$r%Q%C%A$K;}$A9~$`$Y$-$G$O$"$j$^$;$s!#(B 285.403 +$B%P!<%8%g%s0MB8$J(B \texttt{\#ifdef} $B$r;HMQ$9$kBX$o$j$K!"(B 285.404 +$B8D!9$N%Q%C%A$O%P!<%8%g%s$K0MB8$7$J$$JQ99$r9T$&$h$&$K$7$F!"(B 285.405 +$B%Q%C%A$NE,MQ$r%,!<%I$K$h$C$F@)8f$9$Y$-$G$9!#(B 285.406 + 285.407 +``$BDL>o(B''$B$N%Q%C%A$H!"(B 285.408 +$B$=$NE,MQ7k2L$r99$KJQ99$9$k%P%C%/%]!<%H%Q%C%A$H$r!"(B 285.409 +$BJL8D$N%0%k!<%W$KJ,N%$9$k$N$K$O#2$D$NM}M3$,$"$j$^$9!#(B 285.410 +$BBh#1$NM}M3$O!"(B 285.411 +$B$3$l$i$N%Q%C%A$,:.$6$j9g$C$?>l9g$K!"(B 285.412 +$B>eN.%j%]%8%H%j$NJ]<iC4Ev$X$N%Q%C%AAwIU$N<+F02=$N:]$K!"(B 285.413 +\hgext{patchbomb} $B3HD%$N$h$&$J%D!<%k$r;H$&$3$H$,Fq$7$/$J$k$?$a$G$9!#(B 285.414 +$BBh#2$NM}M3$O!"(B 285.415 +$B8eB3$NDL>o%Q%C%A$NE,MQ%3%s%F%-%9%H(B 285.416 +\footnote{$BLuCm(B: \command{patch} $B%U%!%$%k$K$*$1$k!V%3%s%F%-%9%H!W(B} 285.417 +$B$r%P%C%/%]!<%H%Q%C%A$,:.Mp$5$;$F$7$^$$!"(B 285.418 +$BDL>o%Q%C%A$NE,MQA0$KE,MQ$5$l$?%P%C%/%]!<%H%Q%C%A(B\emph{$BH4$-(B}$B$G$O!"(B 285.419 +$BDL>o%Q%C%A$re:No$KE,MQ$9$k$3$H$,$G$-$J$/$J$C$F$7$^$&$?$a$G$9!#(B 285.420 + 285.421 +\section{Useful tips for developing with MQ} 285.422 + 285.423 +\subsection{Organising patches in directories} 285.424 + 285.425 +MQ $B$rMxMQ$7$?<B:_$9$k%W%m%8%'%/%H$G:n6H$r$7$F$$$k$N$G$"$l$P!"(B 285.426 +$BB?$/$N%Q%C%A$rC_@Q$9$k$3$H$bFq$7$$$3$H$G$O$"$j$^$;$s!#(B 285.427 +$BNc$($P!"I.<T$O(B 250 $B$rD6$($k%Q%C%A$rJz$($?%Q%C%A%j%]%8%H%j$r;}$C$F$$$^$9!#(B 285.428 + 285.429 +$B%Q%C%A$r8DJL$NO@M}E*$J$^$H$^$j$KJ,N`$G$-$k$N$G$"$l$P!"(B 285.430 +MQ $B$O%Q%C%AL>$K%Q%96h@Z$j$,4^$^$l$F$$$F$bLdBj$J$$$N$G!"(B 285.431 +$B$=$l$>$l$N%Q%C%A$r0[$J$k%G%#%l%/%H%j$K3JG<$9$k$3$H$b$G$-$^$9(B 285.432 +\footnote{$BLuCm(B: MQ $B$O%Q%C%AFbMF$NJ]B8@h$H$7$F!"(B 285.433 +$B%Q%C%AL>$HF1L>$N%U%!%$%k$r:n@.$9$k$?$a!"(B 285.434 +$B%Q%C%AL>$K%Q%96h@Z$j$,4^$^$l$k>l9g!"(B 285.435 +MQ $B$O<+F0E*$K%5%V%G%#%l%/%H%j$r:n@.$7$^$9(B}$B!#(B 285.436 + 285.437 +\subsection{Viewing the history of a patch} 285.438 +\label{mq-collab:tips:interdiff} 285.439 + 285.440 +$BD94|4V$K$o$?$C$F%Q%C%A$N3+H/$r9T$&>l9g!"(B 285.441 +\ref{sec:mq:repo} $B@a$G=R$Y$?$h$&$K!"(B 285.442 +$B%Q%C%A$r%j%]%8%H%j$G4IM}$9$k$N$,NI$$$G$7$g$&!#(B 285.443 +$B$=$N>l9g$OAa!9$K!"(B 285.444 +$B%Q%C%A$NJQ99MzNr$N;2>H$K(B 285.445 +\hgcmd{diff} $B$,;H$($J$$$3$H$K5$IU$/$3$H$G$7$g$&!#(B 285.446 +$B$3$l$O<B:]$N%3!<%I$NFs<!GI@8J*(B($B:9J,$N:9J,(B)$B$r8+$F$$$k$3$H0J30$K$b!"(B 285.447 +$B%?%$%`%9%?%s%W$d%Q%C%A99?7;~$N%G%#%l%/%H%jL>Ey$r2~JQ$9$k$3$H$G(B 285.448 +MQ $B$,;(2;$r2C$($F$7$^$C$F$$$k$3$H$K860x$,$"$j$^$9!#(B 285.449 + 285.450 +Mercurial $B$KF1:-$5$l$F$$$k(B \hgext{extdiff} $B3HD%$r;H$&$3$H$G!"(B 285.451 +$B#2$D$NHG$N%Q%C%A:9J,$r4vJ,FI$_$d$9$$$b$N$K$9$k$3$H$,$G$-$^$9!#(B 285.452 +$B$3$N3HD%$r;H$&$?$a$K$O!"(B 285.453 +$B%5!<%I%Q!<%F%#!<%Q%C%1!<%8$G$"$k(B 285.454 +\package{patchutils}~\cite{web:patchutils} $B$,I,MW$G$9!#(B 285.455 +$B$3$N%Q%C%1!<%8$,Ds6!$9$k(B \command{interdiff} $B$H$$$&%3%^%s%I$O!"(B 285.456 +$B:9J,4V$N:9J,$r#1$D$N:9J,$H$7$FI=<($7$^$9!#(B 285.457 +$BF1$8:9J,$N#2$D$NHG(B 285.458 +\footnote{$BLuCm(B: $B!VF1$8%Q%C%A$N0[$J$kHG!W$N0U$+!)(B} 285.459 +$B$KBP$7$F$3$N%3%^%s%I$rE,MQ$9$k$H!"(B 285.460 +$B:G=i$NHG$+$i<!$NHG$X$HJQ99$9$k$?$a$N:9J,$r@8@.$7$^$9!#(B 285.461 + 285.462 +$B$$$D$b$N$h$&$K!"(B 285.463 +\hgrc $B%U%!%$%k$N(B \rcsection{extensions} 285.464 +$B%;%/%7%g%s$K9T$rDI2C$9$k$3$H$G!"(B 285.465 +\hgext{extdiff} $B3HD%$rM-8z2=$9$k$3$H$,$G$-$^$9!#(B 285.466 + 285.467 +\begin{codesample2} 285.468 + [extensions] 285.469 + extdiff = 285.470 +\end{codesample2} 285.471 + 285.472 +\command{interdiff} $B%3%^%s%I$O#2$D$N%U%!%$%kL>$N;XDj$,I,MW$G$9$,!"(B 285.473 +\hgext{extdiff} $B3HD%$O!"(B 285.474 +$B$=$l$>$lG$0U$N?t$N%U%!%$%k$rG[2<$K;}$D!"(B 285.475 +$B#2$D$N%G%#%l%/%H%j$KBP$7$FF0:n$9$k%W%m%0%i%`$N;XDj$,I,MW$G$9!#(B 285.476 +$B$=$N$?$a!"(B 285.477 +$B$3$l$i#2$D$N%G%#%l%/%H%jG[2<$N8D!9$N%U%!%$%kBP$KBP$7$F(B 285.478 +\command{interdiff} $B$r<B9T$9$k>.$5$J%W%m%0%i%`$,I,MW$G$9!#(B 285.479 +$BK\=q$N%=!<%9%3!<%I%j%]%8%H%j$K$*$1$k(B 285.480 +\dirname{examples} $B%G%#%l%/%H%jG[2<$K!"(B 285.481 +\sfilename{hg-interdiff} $B$H$7$F3JG<$5$l$F$$$^$9!#(B 285.482 + 285.483 +\excode{hg-interdiff} 285.484 + 285.485 +\sfilename{hg-interdiff} $B$,%7%'%k$N%3%^%s%I8!:w%Q%9>e$KM-$k>l9g!"(B 285.486 +MQ $B$N%Q%C%A%G%#%l%/%H%j$+$i0J2<$N$h$&$K$7$F5/F0$9$k$3$H$,$G$-$^$9!#(B 285.487 + 285.488 +\begin{codesample2} 285.489 + hg extdiff -p hg-interdiff -r A:B my-change.patch 285.490 +\end{codesample2} 285.491 + 285.492 +$B$*$=$i$/$3$ND9$?$i$7$$%3%^%s%I$r2?EY$b;H$&$3$H$K$J$k$G$7$g$&$+$i!"(B 285.493 +$B:FEY(B \hgrc $B$rJT=8$7$F!"(B 285.494 +\hgext{hgext} $B$r(B Mercurial $B$NIaDL$N%3%^%s%IJB$K;H$($k$h$&$K$7$^$7$g$&!#(B 285.495 + 285.496 +\begin{codesample2} 285.497 + [extdiff] 285.498 + cmd.interdiff = hg-interdiff 285.499 +\end{codesample2} 285.500 + 285.501 +$B$3$N5-=R$K$h$j(B \texttt{interdiff} $B$,(B 285.502 +\hgext{hgext} $B$+$iMxMQ$G$-$k$h$&$K$J$j$^$9$N$G!"(B 285.503 +$B@h$N(B \hgxcmd{extdiff}{extdiff} $B5/F0$bC;$/$J$C$F4vJ,;H$$$d$9$/$J$k$G$7$g$&!#(B 285.504 + 285.505 +\begin{codesample2} 285.506 + hg interdiff -r A:B my-change.patch 285.507 +\end{codesample2} 285.508 + 285.509 +\begin{note} 285.510 + \command{interdiff} $B%3%^%s%I$O!"(B 285.511 + $B>l9g$@$1@5$7$/5!G=$7$^$9!#(B 285.512 + The \command{interdiff} command works well only if the underlying 285.513 + files against which versions of a patch are generated remain the 285.514 + same. 285.515 + $B%Q%C%A$N@8@.!&%U%!%$%k$NJQ99$*$h$S%Q%C%A$N99?7$r9T$C$?>l9g!"(B 285.516 + \command{interdiff} $B$OM-MQ$J=PNO$r@8@.$7$J$$$3$H$,$"$j$^$9!#(B 285.517 +\end{note} 285.518 + 285.519 +\hgext{extdiff} $B3HD%$O!"(B 285.520 +MQ $B%Q%C%A$NI=<(5!G=$N8~>e$KN1$^$i$J$$M-MQ$J$b$N$G$9!#(B 285.521 +\hgext{extdiff} $B3HD%$K4X$9$k>\:Y$O!"(B 285.522 +\ref{sec:hgext:extdiff} $B@a$r;2>H$7$F$/$@$5$$!#(B 285.523 + 285.524 +%%% Local Variables: 285.525 +%%% mode: latex 285.526 +%%% TeX-master: "00book" 285.527 +%%% End:
286.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 286.2 +++ b/ja/mq-stack.svg Fri Aug 14 12:10:47 2009 -0700 286.3 @@ -0,0 +1,270 @@ 286.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 286.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 286.6 +<svg 286.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 286.8 + xmlns:cc="http://web.resource.org/cc/" 286.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 286.10 + xmlns:svg="http://www.w3.org/2000/svg" 286.11 + xmlns="http://www.w3.org/2000/svg" 286.12 + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" 286.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 286.14 + width="744.09448819" 286.15 + height="1052.3622047" 286.16 + id="svg2" 286.17 + sodipodi:version="0.32" 286.18 + inkscape:version="0.43" 286.19 + sodipodi:docname="mq-stack.svg" 286.20 + sodipodi:docbase="/home/bos/hg/hgbook/en"> 286.21 + <defs 286.22 + id="defs4" /> 286.23 + <sodipodi:namedview 286.24 + id="base" 286.25 + pagecolor="#ffffff" 286.26 + bordercolor="#666666" 286.27 + borderopacity="1.0" 286.28 + inkscape:pageopacity="0.0" 286.29 + inkscape:pageshadow="2" 286.30 + inkscape:zoom="1.4142136" 286.31 + inkscape:cx="299.33323" 286.32 + inkscape:cy="815.646" 286.33 + inkscape:document-units="px" 286.34 + inkscape:current-layer="layer1" 286.35 + inkscape:window-width="1014" 286.36 + inkscape:window-height="689" 286.37 + inkscape:window-x="0" 286.38 + inkscape:window-y="25" /> 286.39 + <metadata 286.40 + id="metadata7"> 286.41 + <rdf:RDF> 286.42 + <cc:Work 286.43 + rdf:about=""> 286.44 + <dc:format>image/svg+xml</dc:format> 286.45 + <dc:type 286.46 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 286.47 + </cc:Work> 286.48 + </rdf:RDF> 286.49 + </metadata> 286.50 + <g 286.51 + inkscape:label="Layer 1" 286.52 + inkscape:groupmode="layer" 286.53 + id="layer1"> 286.54 + <rect 286.55 + style="fill:#0000ff;fill-opacity:0.75;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 286.56 + id="rect1307" 286.57 + width="202.93683" 286.58 + height="24.243662" 286.59 + x="230.01944" 286.60 + y="221.70146" /> 286.61 + <text 286.62 + xml:space="preserve" 286.63 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.64 + x="237.89606" 286.65 + y="237.13383" 286.66 + id="text1309"><tspan 286.67 + sodipodi:role="line" 286.68 + id="tspan1311" 286.69 + x="237.89606" 286.70 + y="237.13383">prevent-compiler-reorder.patch</tspan></text> 286.71 + <rect 286.72 + style="fill:#7979ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 286.73 + id="rect1320" 286.74 + width="202.93683" 286.75 + height="24.243662" 286.76 + x="230.01936" 286.77 + y="251.34325" /> 286.78 + <text 286.79 + xml:space="preserve" 286.80 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.81 + x="237.89598" 286.82 + y="266.77563" 286.83 + id="text1322"><tspan 286.84 + sodipodi:role="line" 286.85 + id="tspan1324" 286.86 + x="237.89598" 286.87 + y="266.77563">namespace-cleanup.patch</tspan></text> 286.88 + <rect 286.89 + style="fill:#7979ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 286.90 + id="rect2217" 286.91 + width="202.93683" 286.92 + height="24.243662" 286.93 + x="230.01936" 286.94 + y="280.98505" /> 286.95 + <text 286.96 + xml:space="preserve" 286.97 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.98 + x="237.89598" 286.99 + y="296.41742" 286.100 + id="text2219"><tspan 286.101 + sodipodi:role="line" 286.102 + id="tspan2221" 286.103 + x="237.89598" 286.104 + y="296.41742">powerpc-port-fixes.patch</tspan></text> 286.105 + <rect 286.106 + style="fill:#7979ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#3c3c3c;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 286.107 + id="rect3114" 286.108 + width="202.93683" 286.109 + height="24.243662" 286.110 + x="230.01936" 286.111 + y="310.6268" /> 286.112 + <text 286.113 + xml:space="preserve" 286.114 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.115 + x="237.89598" 286.116 + y="326.05917" 286.117 + id="text3116"><tspan 286.118 + sodipodi:role="line" 286.119 + id="tspan3118" 286.120 + x="237.89598" 286.121 + y="326.05917">report-devinfo-correctly.patch</tspan></text> 286.122 + <text 286.123 + xml:space="preserve" 286.124 + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.125 + x="200.01021" 286.126 + y="191.68094" 286.127 + id="text3170" 286.128 + sodipodi:linespacing="125%"><tspan 286.129 + sodipodi:role="line" 286.130 + id="tspan3172" 286.131 + x="200.01021" 286.132 + y="191.68094" 286.133 + style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">{</tspan></text> 286.134 + <text 286.135 + xml:space="preserve" 286.136 + style="font-size:15.25329685px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.137 + x="255.26627" 286.138 + y="248.79449" 286.139 + id="text3190" 286.140 + sodipodi:linespacing="125%" 286.141 + transform="scale(0.786716,1.271107)"><tspan 286.142 + sodipodi:role="line" 286.143 + id="tspan3192" 286.144 + x="255.26627" 286.145 + y="248.79449" 286.146 + style="font-size:61.01318741px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans">{</tspan></text> 286.147 + <text 286.148 + xml:space="preserve" 286.149 + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.150 + x="195.86807" 286.151 + y="173.17117" 286.152 + id="text4085" 286.153 + sodipodi:linespacing="125%"><tspan 286.154 + sodipodi:role="line" 286.155 + id="tspan4087" 286.156 + x="195.86807" 286.157 + y="173.17117" 286.158 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">present in series,</tspan><tspan 286.159 + sodipodi:role="line" 286.160 + x="195.86807" 286.161 + y="188.17117" 286.162 + id="tspan4089" 286.163 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">but not applied</tspan></text> 286.164 + <text 286.165 + xml:space="preserve" 286.166 + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.167 + x="195.0712" 286.168 + y="288.91745" 286.169 + id="text4091" 286.170 + sodipodi:linespacing="125%"><tspan 286.171 + sodipodi:role="line" 286.172 + id="tspan4093" 286.173 + x="195.0712" 286.174 + y="288.91745" 286.175 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">patches applied,</tspan><tspan 286.176 + sodipodi:role="line" 286.177 + x="195.0712" 286.178 + y="303.91745" 286.179 + id="tspan4111" 286.180 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">changesets present</tspan></text> 286.181 + <text 286.182 + xml:space="preserve" 286.183 + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.184 + x="195.0712" 286.185 + y="229.28813" 286.186 + id="text4095" 286.187 + sodipodi:linespacing="125%"><tspan 286.188 + sodipodi:role="line" 286.189 + id="tspan4097" 286.190 + x="195.0712" 286.191 + y="229.28813" 286.192 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">topmost</tspan><tspan 286.193 + sodipodi:role="line" 286.194 + x="195.0712" 286.195 + y="244.28813" 286.196 + id="tspan4109" 286.197 + style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:Bitstream Vera Sans">applied patch</tspan></text> 286.198 + <text 286.199 + xml:space="preserve" 286.200 + style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#666666;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.201 + x="450.4975" 286.202 + y="238.29692" 286.203 + id="text4137"><tspan 286.204 + sodipodi:role="line" 286.205 + id="tspan4139" 286.206 + x="450.4975" 286.207 + y="238.29692">201ad3209902</tspan></text> 286.208 + <text 286.209 + xml:space="preserve" 286.210 + style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#989898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.211 + x="450.05804" 286.212 + y="267.93872" 286.213 + id="text4141"><tspan 286.214 + sodipodi:role="line" 286.215 + id="tspan4143" 286.216 + x="450.05804" 286.217 + y="267.93872">126b84e593ae</tspan></text> 286.218 + <text 286.219 + xml:space="preserve" 286.220 + style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#989898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.221 + x="450.6557" 286.222 + y="297.58051" 286.223 + id="text4145"><tspan 286.224 + sodipodi:role="line" 286.225 + id="tspan4147" 286.226 + x="450.6557" 286.227 + y="297.58051">a655daf15409</tspan></text> 286.228 + <text 286.229 + xml:space="preserve" 286.230 + style="font-size:12px;font-style:normal;font-weight:normal;opacity:1;fill:#989898;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.231 + x="450.71429" 286.232 + y="327.22226" 286.233 + id="text4149"><tspan 286.234 + sodipodi:role="line" 286.235 + id="tspan4151" 286.236 + x="450.71429" 286.237 + y="327.22226">e50d59aaea3a</tspan></text> 286.238 + <rect 286.239 + style="fill:#d7d7ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#a6a6a6;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 286.240 + id="rect3106" 286.241 + width="202.93683" 286.242 + height="24.243662" 286.243 + x="230.01936" 286.244 + y="150.41792" /> 286.245 + <text 286.246 + xml:space="preserve" 286.247 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.248 + x="237.89598" 286.249 + y="165.8503" 286.250 + id="text3108"><tspan 286.251 + sodipodi:role="line" 286.252 + id="tspan3110" 286.253 + x="237.89598" 286.254 + y="165.8503">forbid-illegal-params.patch</tspan></text> 286.255 + <rect 286.256 + style="fill:#d7d7ff;fill-opacity:0.875;fill-rule:evenodd;stroke:#a6a6a6;stroke-width:1.05063355px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 286.257 + id="rect2241" 286.258 + width="202.93683" 286.259 + height="24.243662" 286.260 + x="230.16466" 286.261 + y="180.05968" /> 286.262 + <text 286.263 + xml:space="preserve" 286.264 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 286.265 + x="238.04128" 286.266 + y="195.49205" 286.267 + id="text2243"><tspan 286.268 + sodipodi:role="line" 286.269 + id="tspan2245" 286.270 + x="238.04128" 286.271 + y="195.49205">fix-memory-leak.patch</tspan></text> 286.272 + </g> 286.273 +</svg>
287.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 287.2 +++ b/ja/mq.tex Fri Aug 14 12:10:47 2009 -0700 287.3 @@ -0,0 +1,1235 @@ 287.4 +\chapter{Managing change with Mercurial Queues} 287.5 +\label{chap:mq} 287.6 + 287.7 +\section{$B%Q%C%A4IM}LdBj(B} 287.8 +\label{sec:mq:patch-mgmt} 287.9 + 287.10 +$B%=%U%H%&%'%"%Q%C%1!<%8$r%=!<%9$+$i%$%s%9%H!<%k$9$kI,MW$,$"$k$N$K!"(B 287.11 +$B%Q%C%1!<%8;HMQA0$K=$@5$7$F$*$+$J$1$l$P$J$i$J$$%P%0$r%=!<%9Cf$KH/8+$7$F$7$^$&!"(B 287.12 +$B$H$$$&$h$&$J;vBV$O$h$/$"$k$3$H$G$9!#(B 287.13 + $BJQ99$N8e!";C$/%Q%C%1!<%8$N$3$H$rK:$l$F$$$k$H!"(B 287.14 +$B?t%u7n8e$K%Q%C%1!<%8$r?7$7$$HG$G99?7$9$kI,MW$,=P$F$-$?$H$7$^$9!#(B 287.15 + $B%Q%C%1!<%8$N?7$7$$HG$,L$$@$K%P%0$r;D$7$F$$$?$J$i!"(B 287.16 +$B8E$$HG$N%=!<%9%D%j!<$+$i=$@5FbMF$rCj=P$7$F!"(B 287.17 +$B?7$7$$HG$KE,MQ$7$J$1$l$P$J$j$^$;$s!#(B 287.18 + $B$3$N$h$&$J:n6H$OB`6~$G4V0c$$$r5/$3$7$d$9$$$b$N$G$9!#(B 287.19 + 287.20 +$B$3$l$O(B``$B%Q%C%A4IM}(B''$BLdBj$NC1=c$J%1!<%9$G$9!#(B 287.21 + $B<+J,$G$OJQ99$9$k$3$H$,$G$-$J$$(B``$B>eN.(B''$B$N%=!<%9%D%j!<$,$"$k$H$7$^$9!#(B 287.22 +$B>eN.$N%=!<%9%D%j!<$N>e$G%m!<%+%k$J=$@5$r9T$&I,MW$,$"$k$J$i!"(B 287.23 +$B>eN.%=!<%9$N?7$7$$HG$KBP$7$F%m!<%+%k$J=$@5$rE,MQ$G$-$k$h$&$K!"(B 287.24 +$B$=$&$$$C$?=$@5$rJLES4IM}$7$?$$$H;W$&$G$7$g$&!#(B 287.25 + 287.26 +$B%Q%C%A4IM}LdBj$O$5$^$6$^$J>u67$GH/@8$7$^$9!#(B 287.27 +$B%*!<%W%s%=!<%9%=%U%H%&%'%"%W%m%8%'%/%H$N%f!<%6$,!"(B 287.28 +$B%W%m%8%'%/%H$N%a%s%F%J%s%9C4Ev$X!"(B 287.29 +$B%P%0=$@5$d?75,5!G=$r%Q%C%A7A<0$GAwIU$9$k>u67$,!"(B 287.30 +$B$*$=$i$/:G$b$o$+$j$d$9$$>u67$G$7$g$&!#(B 287.31 + 287.32 +$B%*!<%W%s%=!<%9%=%U%H%&%'%"$r4^$`%*%Z%l!<%F%#%s%0%7%9%F%`$NG[I[<T$O!"(B 287.33 +$BG[I[$9$k%Q%C%1!<%8$KBP$9$kJQ99$rIQHK$K9T$&$N$G!"(B 287.34 +$B<+J,$?$A$N4D6-$K$*$$$F%S%k%I$r9T$&$N$OEvA3$N$3$H$G$9!#(B 287.35 + 287.36 +$B@0Hw$N>e$G4v$D$+JQ99$r9T$$$?$$>l9g!"(B 287.37 +$BI8=`E*$J(B 287.38 +\command{diff} $B$*$h$S(B \command{patch} $B%W%m%0%i%`(B 287.39 +$B!J$3$l$i$N%D!<%k$K4X$9$k5DO@$O(B \ref{sec:mq:patch} $B@a$r;2>H$N$3$H!K(B 287.40 +$B$r;HMQ$7$F!"C10l$N%Q%C%A$r4IM}$9$k$3$H$O4JC1$G$9!#(B 287.41 +$B$7$+$7!"0lC6JQ99$N?t$,A}$(;O$a$k$H!"(B 287.42 +$BC10l$N%Q%C%A$N4IM}$O4XO"@-$NL5$$(B``$B@.2L$N2t(B''$B$K46$8;O$a$k$?$a!"(B 287.43 +$BNc$($P!"C10l$N%Q%C%A$OC10l$N%P%0=$@5$N$_$r4^$`(B 287.44 +$B!J%Q%C%A$OJ#?t$N%U%!%$%k$r=$@5$9$k$+$b$7$l$^$;$s$,!"(B 287.45 +``$BC10l$N;v(B''$B$7$+9T$o$J$$!K$h$&$K$J$k$G$7$g$&$+$i!"(B 287.46 +$B0[$J$k%P%0$d%m!<%+%k$J=$@5$KI,MW$H$5$l$k%Q%C%A$r!"(B 287.47 +$B$$$/$D$bJz$($k$3$H$K$J$k$+$b$7$l$^$;$s!#(B 287.48 + $B$3$N$h$&$J>u67$G!"(B 287.49 +$B>eN.$N%Q%C%1!<%8J]<iC4Ev<T$K%P%0=$@5$N%Q%C%A$rAw$C$?$H$9$k$H!"(B 287.50 +$BH`$i$O$=$N8e$N%j%j!<%9$K$*$$$F$=$N=$@5$r<h$j9~$`$G$7$g$&$+$i!"(B 287.51 +$B?7$7$$HG$X$N99?7$N:]$K$O!"(B 287.52 +$B$=$N%Q%C%A$NE,MQ$r<h$j$d$a$k$3$H$,$G$-$^$9!#(B 287.53 + 287.54 +$B>eN.$N%=!<%9%D%j!<$KBP$7$FC10l$N%Q%C%A$rJ]<i$9$k$3$H$O!"(B 287.55 +$BB`6~$G4V0c$$$d$9$$$G$9$,Fq$7$/$O$"$j$^$;$s!#(B 287.56 + $B$7$+$7!"J]<i$7$J$1$l$P$J$i$J$$%Q%C%A$N?t$,A}$($k$K$7$?$,$$!"(B 287.57 +$BLdBj$NJ#;($5$O$9$_$d$+$KA}2C$7$^$9!#(B 287.58 + $B$9$/$J$+$i$L%Q%C%A$rJz$(9~$`$3$H$G!"(B 287.59 +$BE,MQ$NM-L5$rGD0.$7$?$j!"$=$l$i$rJ]<i$9$k$3$H$,!"(B 287.60 +$B!VLLE]$J$3$H!W$+$i!V05E]$5$l$k$3$H!W$X$HJQ2=$9$k$G$7$g$&!#(B 287.61 + 287.62 +$B9,$$$J$3$H$K!"(BMercurial $B$O(B 287.63 +Mercurial Queues 287.64 +$B!J$"$k$$$OC1$K(B ``MQ''$B!K$H8F$P$l$k!"(B 287.65 +$B%Q%C%A4IM}LdBj$r4JAG2=$9$k6/NO$J3HD%5!G=$r;}$C$F$$$^$9!#(B 287.66 + 287.67 +\section{Mercurial Queues $B0JA0(B} 287.68 +\label{sec:mq:history} 287.69 + 287.70 +1990 $BG/Be8eH>!"2??M$+$N(B Linux $B%+!<%M%k3+H/<TC#$O!"(B 287.71 +Linux $B%+!<%M%k$N5sF0$rJQ$($k(B``$B%Q%C%A7ONs(B''$B$NJ]<i$r;O$a$F$$$^$7$?!#(B 287.72 +$B4v$D$+$N7ONs$O0BDj@-$K!"4v$D$+$OLVMe@-$K!"(B 287.73 +$B$=$NB>$N7ONs$O$h$j<B83E*$JItJ,$K>GE@$rEv$F$F$$$^$7$?!#(B 287.74 + 287.75 +$B$3$l$i$N%Q%C%A$N%5%$%:$OB.$d$+$K5pBg2=$7$^$7$?!#(B 287.76 +2002 $BG/!"(BAndrew Morton $B$,!"(B 287.77 +$B<+J,$N%Q%C%A%-%e!<4IM}:n6H$r<+F02=$9$k$N$KMQ$$$F$$$?!"(B 287.78 +$B4v$D$+$N%7%'%k%9%/%j%W%H$rH/I=$7$^$7$?!#(B 287.79 +Andrew $B$O!"(B 287.80 +Linux $B%+!<%M%k%=!<%9>e$G$N?tI4!J;~$K$O?t@i!K$N%Q%C%A$N4IM}$K!"(B 287.81 +$B$3$l$i$N%9%/%j%W%H$r>e<j$KMxMQ$7$F$$$^$7$?!#(B 287.82 + 287.83 +\subsection{A patchwork quilt$B!JLuCm!'7Q$.$O$.$N>e3]$1!K(B} 287.84 +\label{sec:mq:quilt} 287.85 + 287.86 +2003 $BG/$N=iF,!"(B 287.87 +Andreas Gruenbacher $B$H(B Martin Quinson $B$O!"(B 287.88 +Andrew $B$K$h$k%9%/%j%W%H$N<jK!$r<h$jF~$l$F!"(B 287.89 + 287.90 +``patchwork quilt''~\cite{web:quilt} $B$"$k$$$OC1$K(B ``quilt'' 287.91 +($B$3$l$K$D$$$F=R$Y$?O@J8$O(B~\cite{gruenbacher:2005}$B$r;2>H$N$3$H(B) 287.92 +$B$H8F$P$l$k%D!<%k$rH/I=$7$^$7$?!#(B 287.93 + $B%Q%C%A4IM}$,BgI}$K<+F02=$5$l$k$3$H$+$i!"(B 287.94 +quilt $B$O%*!<%W%s%=!<%93+H/<T$N4V$G=V$/4V$KBg$-$J;Y;}$rF@$^$7$?!#(B 287.95 + 287.96 +quilt $B$O!"(B 287.97 +$B:G>e0L$N%G%#%l%/%H%j$K$*$$$F(B\emph{$B%Q%C%A$N%9%?%C%/(B}$B$r4IM}$7$^$9!#(B 287.98 +$B4IM}3+;O$N:]$K$O!"(B 287.99 +quilt $B$KBP$7$F%G%#%l%/%H%j%D%j!<$r4IM}$9$k;]$H!"(B 287.100 +$B$I$N%U%!%$%k$r4IM}$7$?$$$N$+$rEA$($^$9!#(B 287.101 +quilt $B$O$3$l$i$N%U%!%$%k$NL>A0$HFbMF$rJL$J>l=j$KJ]B8$7$^$9!#(B 287.102 + $B%P%0$N=$@5$N:]$K$O!"(B 287.103 +$B?7$7$$%Q%C%A$r!JC10l$N%3%^%s%I$r;HMQ$7$F!K:n@.$7!"(B 287.104 +$B=$@5$9$kI,MW$NM-$k%U%!%$%k$NJT=8$r9T$$!"(B 287.105 +$B%Q%C%A$r(B``refresh''$B$7$^$9!#(B 287.106 + 287.107 +refresh $B$NCJ3,$G(B quilt $B$O%G%#%l%/%H%j%D%j!<$rAv::$7$^$9!#(B 287.108 +quilt $B$O<B;\$5$l$?A4$F$NJQ99$G%Q%C%A$r99?7$7$^$9!#(B 287.109 +$B:G>e0L$N%G%#%l%/%H%j$K$*$$$F:n@.$7$?JL$J%Q%C%A$rMQ$$$k$3$H$G!"(B 287.110 +``$B#1$D$N%Q%C%A$,E,MQ$5$l$?%D%j!<(B''$B$+$i(B 287.111 +``$B#2$D$N%Q%C%A$,E,MQ$5$l$?%D%j!<(B''$B$X$HJQ2=$5$;$k$?$a$KI,MW$JJQ99$r!"(B 287.112 +$BDI@W$9$k$3$H$,$G$-$^$9!#(B 287.113 + 287.114 +$B%D%j!<$KBP$9$k%Q%C%A$NE,MQ>u67$r(B\emph{$BJQ99(B}$B$9$k$3$H$b$G$-$^$9!#(B 287.115 +$B%Q%C%A$r(B``pop''$B$9$k$H!"(B 287.116 +$B$=$N%Q%C%A$K$h$kJQ99$O%G%#%l%/%H%j%D%j!<$+$i<h$j=|$+$l$^$9!#(B 287.117 +$B$7$+$7!"(B 287.118 +quilt $B$O$I$N%Q%C%A$,<h$j=|$+$l$?$N$+$r3P$($F$$$k$N$G!"(B 287.119 +$B<h$j=|$+$l$?%Q%C%A$r:F$S(B``push''$B$9$k$3$H$,$G$-!"(B 287.120 +$B%G%#%l%/%H%j%D%j!<$K$OEv3:%Q%C%A$K$h$kJQ99$,I|85$5$l$^$9!#(B 287.121 +$B:G$b=EMW$JE@$O!"(B 287.122 +``refresh''$B%3%^%s%I$N<B9T$H!"(B 287.123 +$B$=$l$K$h$k:G>e0L$N%Q%C%A$NFbMF99?7$,G$0U$N;~E@$K$G$-$k$3$H$G$9!#(B 287.124 +$B$3$l$O!"(B 287.125 +$B%Q%C%A$NE,MQ>u67$H!"$=$N%Q%C%A$K$h$kJQ99FbMF$NN>J}$r!"(B 287.126 +$BG$0U$N;~E@$GJQ99$G$-$k$3$H$r0UL#$7$^$9!#(B 287.127 + 287.128 +quilt $B$OJQ99@)8f%D!<%k$r0U<1$7$J$$$?$a!"(B 287.129 +$BE83+$5$l$?(B tarball $B$N:G>e0L%G%#%l%/%H%j$K$*$$$F$b!"(B 287.130 +Subversion $B%j%]%8%H%j$K$*$$$F$bF1Ey$K5!G=$7$^$9!#(B 287.131 + 287.132 +\subsection{patchwork quilt $B$+$i(B Mercurial Queues $B$X(B} 287.133 +\label{sec:mq:quilt-mq} 287.134 + 287.135 +2005 $BG/Cf=\!"(B 287.136 +quilt $BE*$J?6$kIq$$$r(B Mercurial $B$KDI2C$9$k$?$a$N!"(B 287.137 +Mercurial Queues $B$H8F$P$l$k3HD%5!G=$,!"(B 287.138 +Chris Mason $B$K$h$j<BAu$5$l$^$7$?!#(B 287.139 + 287.140 +quilt $B$H(B MQ $B$NBg$-$J0c$$$O!"(B 287.141 +quilt $B$,JQ99@)8f%7%9%F%`$r0U<1$7$J$$$N$KBP$7$F!"(B 287.142 +MQ $B$,(B Mercurial $B$K(B\emph{$BE}9g(B}$B$5$l$F$$$k$3$H$G$9!#(B 287.143 + push $B$5$l$k8D!9$N%Q%C%A$O!"(B 287.144 +Mercurial $B$N%A%'%s%8%;%C%H$H$7$FI=8=$5$l$^$9!#(B 287.145 + $B%Q%C%A$r(B pop $B$9$k$3$H$G!"%A%'%s%8%;%C%H$O<h$j=|$+$l$^$9!#(B 287.146 + 287.147 +$BJQ99@)8f%7%9%F%`$r0U<1$7$J$$$3$H$+$i!"(B 287.148 +Mercurial $B$H(B MQ $B$rMxMQ$G$-$J$$>u67$K$D$$$FCN$k>e$G!"(B 287.149 +$B0MA3$H$7$F(B quilt $B$OHs>o$KM-MQ$J%=%U%H%&%'%"$G$9!#(B 287.150 + 287.151 +\section{MQ $B$NBg$-$JMxE@(B} 287.152 + 287.153 +$B%Q%C%A$HJQ994IM}$NE}0l$rDL$7$F(B MQ $B$,Ds6!$9$k$b$N$N2ACM$r!"(B 287.154 +$B8XD%$72a$.$k$3$H$O$"$j$^$;$s!#(B 287.155 + 287.156 +$B%U%j!<%=%U%H%&%'%"$*$h$S%*!<%W%s%=!<%9$N@$3&$G%Q%C%A$,MxMQ$5$lB3$1$k$N$O!"(B 287.157 +$BJQ994IM}%D!<%k$,G/!9$=$N5!G=$r8~>e$5$;$F$$$k$K$b4X$o$i$:!"(B 287.158 +$B%Q%C%A$,(B\emph{$B7Z2w$5(B}$B$r;}$C$F$$$k$3$H$,Bg$-$JM}M3$N0l$D$G$9!#(B 287.159 + 287.160 +$BEAE}E*$JJQ99@)8f%D!<%k$O!"(B 287.161 +$B<B;\$7$?$3$H$K4X$9$kA4$F$r!"(B 287.162 +$B1JB3E*$G<h$j>C$7$N=PMh$J$$$b$N$H$7$F5-O?$7$^$9!#(B 287.163 +$B$3$N?6$kIq$$$KBg$-$J2ACM$,$"$k0lJ}$G!"(B 287.164 +$B4vJ,7x6l$7$/$b$"$j$^$9!#(B 287.165 +$B2a7c$J<B83$r9T$*$&$H$9$k>l9g!"(B 287.166 +$B<+J,$,9T$*$&$H$9$k$3$H$K?5=E$K$J$k$+!"(B 287.167 +$BI,MW$H$5$l$J$$!A$J$*0-$$$3$H$K$O!"8m2r$dIT0BDj$N85$H$J$k!A(B 287.168 +$B<:GT$H4V0c$$$N5-O?$r!"(B 287.169 +$B1JB3E*$JMzNr5-O?Cf$K;D$94m81$rKA$9I,MW$,$"$j$^$9!#(B 287.170 + 287.171 +$BBP>HE*$K!"(B 287.172 +MQ $B$K$*$1$kJ,;6MzNr4IM}$H%Q%C%A$N7k9g$K$h$j!"(B 287.173 +$B$"$J$?$N:n6H$rMF0W$K3VN%$9$k$3$H$,$G$-$^$9!#(B 287.174 +$B$"$J$?$N%Q%C%A$ODL>o$NJQ99MzNr$N>e$GB8B3$7B3$1!"(B 287.175 +$BK>$`;~$K$=$l$i$N<B;\!?<h$j>C$7$r9T$&$3$H$,=PMh$^$9!#(B 287.176 +$B$=$N%Q%C%A$,5$$KF~$i$J$$>l9g!"$=$l$r<h$j$d$a$k$3$H$,$G$-$^$9!#(B 287.177 +$B$=$N%Q%C%A$,40A4$K$OK>$`$b$N$G$J$$>l9g!"(B 287.178 +$BK>$`;Q$K@vN}$5$;$k$^$G!"I,MW$J$@$12?EY$G$b=$@5$9$k$3$H$,=PMh$^$9!#(B 287.179 + 287.180 +$BNc$($P!"(B 287.181 +$B%Q%C%A$HJQ994IM}$NE}9g$K$h$j!"(B 287.182 +$B%Q%C%A$NM}2r$H$=$N8z2L!A$*$h$S85$K$J$C$?%3!<%I$H$NO"7H!A$N%G%P%C%0$,!"(B 287.183 +\emph{$BHs>o$K(B}$B4JC1$K$J$j$^$9!#(B 287.184 +$BA4$F$NE,MQ:Q$_%Q%C%A$,4XO"$7$?%A%'%s%8%;%C%H$r;}$C$F$$$k$N$G!"(B 287.185 +$B$I$N%A%'%s%8%;%C%H$H%Q%C%A$,$=$N%U%!%$%k$K1F6A$r5Z$\$7$F$$$k$N$+$r!"(B 287.186 +\hgcmdargs{log}{\emph{filename}} $B$K$h$C$F8+$k$3$H$,=PMh$^$9!#(B 287.187 +\hgext{bisect} $B3HD%$rMQ$$$k$3$H$G!"(B 287.188 +$B%P%0$,;}$A9~$^$l$?$j=$@5$5$l$?;~E@$r8+$k$?$a$K!"(B 287.189 +$BA4$F$N%A%'%s%8%;%C%H$HE,MQ:Q$_%Q%C%A$rDL$7$F$NFsJ,C5:w$r9T$&$3$H$,$G$-$^$9!#(B 287.190 +\hgcmd{annotate} $B%3%^%s%I$rMQ$$$k$3$H$G!"(B 287.191 +$B%=!<%9%U%!%$%k$NFCDj$N9T$rJQ99$7$?$N$,!"(B 287.192 +$B$I$N%A%'%s%8%;%C%H$d%Q%C%A$G$"$k$+$r8+$k$3$H$,=PMh$^$9!#(B 287.193 + 287.194 +\section{$B%Q%C%A$NM}2r(B} 287.195 +\label{sec:mq:patch} 287.196 + 287.197 +MQ $B$O!"$=$l$,%Q%C%A;X8~$NFC@-$r;}$D$3$H$rI=$K=P$7$F$$$k$?$a!"(B 287.198 +$B%Q%C%A$,$I$&$$$C$?$b$N$G$"$k$+$d!"(B 287.199 +$B%Q%C%A$H$H$b$K5!G=$9$k%D!<%k$K4X$9$k$3$H$,$i$rM}2r$9$k<j=u$1$K$J$j$^$9!#(B 287.200 + 287.201 +$BEAE}E*$J(B Unix $B$N(B \command{diff} $B%3%^%s%I$O!"(B 287.202 +$B#2$D$N%U%!%$%k$rHf3S$7N><T$N0c$$$rI=<($7$^$9!#(B 287.203 +\command{patch} $B%3%^%s%I$O!"(B 287.204 +$B$3$N0c$$$r%U%!%$%k$KBP$9$k(B\emph{$BJQ99(B}$B$H$_$J$7$^$9!#(B 287.205 +$B$3$l$i$N%3%^%s%I$N4JC1$JF0:nNc$H$7$F!"(B 287.206 +$B?^(B~\ref{ex:mq:diff}$B$r8+$F$/$@$5$$!#(B 287.207 + 287.208 +\begin{figure}[ht] 287.209 + \interaction{mq.dodiff.diff} 287.210 + \label{ex:mq:diff} 287.211 + \caption{\command{diff} $B$*$h$S(B \command{patch} $B%3%^%s%I$NMxMQNc(B} 287.212 +\end{figure} 287.213 + 287.214 +\command{diff} $B$,@8@.$9$k!J$=$7$F!"(B\command{patch} $B$,F~NO$9$k!K(B 287.215 +$B%U%!%$%k$N7A<0$O(B``$B%Q%C%A!J(Bpatch$B!K(B''$B$J$$$7(B``$B:9J,!J(Bdiff$B!K(B''$B$H8F$P$l$^$9!#(B 287.216 +$B%Q%C%A$H:9J,$N4V$K0c$$$O$"$j$^$;$s(B 287.217 +$B!J0J8e$O!"$h$j0lHLE*$K;HMQ$5$l$k(B``$B%Q%C%A(B''$B$H$$$&8F>N$r;HMQ$7$^$9!K!#(B 287.218 + 287.219 +$B%Q%C%A%U%!%$%k$O!"G$0U$N%F%-%9%H$+$i;O$a$k$3$H$,$G$-$^$9!#(B 287.220 +\command{patch} $B%3%^%s%I$O$3$N%F%-%9%H$rL5;k$7$^$9$,!"(B 287.221 +MQ $B$O%A%'%s%8%;%C%H$r@8@.$9$k:]$N%3%_%C%H%a%C%;!<%8$H$_$J$7$^$9!#(B 287.222 +$B%Q%C%AFbMF$r3+;O$r8+$D$1$k$?$a$K!"(B 287.223 +\command{patch} $B$O(B ``\texttt{diff~-}'' $B$G;O$^$k:G=i$N9T$rC5$7$^$9!#(B 287.224 + 287.225 +MQ $B$O(B \emph{unified} $B:9J,$H6&$K5!G=$7$^$9(B 287.226 +$B!J(B\command{patch} $B$O$=$l0J30$N2?<oN`$+$N:9J,7A<0$G$b5!G=$7$^$9$,!"(B 287.227 +MQ $B$O(B \emph{unified} $B:9J,$G$J$$$H5!G=$7$^$;$s!K!#(B 287.228 +unified $B:9J,$O#2<oN`$N%X%C%@$r;}$C$F$$$^$9!#(B 287.229 +\emph{$B%U%!%$%k%X%C%@(B header}$B$K$O!"(B 287.230 +$BJQ99BP>]$H$J$k%U%!%$%k$N%U%!%$%kL>$,5-=R$5$l!"(B 287.231 +\command{patch} $B%3%^%s%I$,?75,$N%U%!%$%k%X%C%@$r8+$D$1$?:]$K$O!"(B 287.232 +$BJQ99$r9T$&$?$a$KEv3:$9$kL>A0$N%U%!%$%k$rC5$7$^$9!#(B 287.233 + 287.234 +$B%U%!%$%k%X%C%@$KB3$$$F!"(B\emph{hunk} $BNs$,5-=R$5$l$^$9!#(B 287.235 +$B$=$l$>$l$N(B hunk $B$O%X%C%@$G3+;O$5$l!"(B 287.236 +$B$=$N(B hunk $B$K$h$jJQ99$5$l$kBP>]$N!"(B 287.237 +$B%U%!%$%k$K$*$1$k9THV9f$NHO0O$r<1JL$7$^$9!#(B 287.238 +$B%X%C%@$KB3$/(B hunk $B$O!"(B 287.239 +$B%U%!%$%k$N2~JQ$5$l$J$$ItJ,$+$i$J$k?t9T$N%F%-%9%H$,A08e$KIU2C$5$l$^$9!#(B 287.240 +$B$3$l$i$N2~JQ$5$l$J$$ItJ,$N$3$H$r!"(Bhunk $B$KBP$9$k(B\emph{$B%3%s%F%-%9%H(B}$B$H8F$S$^$9!#(B 287.241 +$B8eB3$N(B hunk $B$H$N4V$K>/NL$N%3%s%F%-%9%H$7$+$J$$>l9g!"(B 287.242 +\command{diff} $B$O?7$?$J(B hunk $B%X%C%@$rI=<($7$^$;$s!#(B 287.243 +$BJQ99FbMF$N4V$K?t9T$N%3%s%F%-%9%H9T$rCV$$$F!"(B 287.244 +hunk $B$r$=$N$^$^B3$1$^$9!#(B 287.245 + 287.246 +$B%3%s%F%-%9%H$N8D!9$N9T$O6uGrJ8;z$G;O$^$j$^$9!#(B 287.247 +hunk $BFbIt$G$O!"(B 287.248 +``\texttt{-}'' $B$G;O$^$k9T$O(B``$B:o=|$5$l$k9T(B''$B$r!"(B 287.249 +``\texttt{+}'' $B$G;O$^$k9T$O(B``$BA^F~$5$l$k9T(B''$B$r0UL#$7$^$9!#(B 287.250 +$BNc$($P!"JQ99$5$l$k9T$O!"#19T$N:o=|$H#19T$NA^F~$GI=8=$5$l$^$9!#(B 287.251 + 287.252 +$B%Q%C%A$N$h$jHyL/$JB&LL$K4X$7$F$O8e$[$I!J(B~\ref{sec:mq:adv-patch}$B@a$K$F!K(B 287.253 +$B@bL@$7$^$9$,!"(BMQ $B$rMxMQ$9$k$KEv$?$C$F$O$3$3$^$G$NCN<1$G==J,$G$9!#(B 287.254 + 287.255 +\section{Mercurial Queues $B$NMxMQ(B} 287.256 +\label{sec:mq:start} 287.257 + 287.258 +MQ $B$O(B Mercurial $B$N3HD%$H$7$F<BAu$5$l$F$$$k$N$G!"(B 287.259 +$BMxMQ$NA0$KL@<(E*$KM-8z2=$9$kI,MW$,$"$j$^$9(B 287.260 +$B!J%@%&%s%m!<%I$NI,MW$O$"$j$^$;$s!#(B 287.261 +MQ $B$ODL>o$N(B Mercurial $B$NG[I[J*$K4^$^$l$F$$$^$9!K!#(B 287.262 +MQ $B$rM-8z$K$9$k$K$O!"(B 287.263 +\tildefile{.hgrc} $B%U%!%$%k$rJT=8$7!"(B 287.264 +~\ref{ex:mq:config} $B$K<($99T$rDI2C$7$F$/$@$5$$!#(B 287.265 + 287.266 +\begin{figure}[ht] 287.267 + \begin{codesample4} 287.268 + [extensions] 287.269 + hgext.mq = 287.270 + \end{codesample4} 287.271 + \label{ex:mq:config} 287.272 + \caption{MQ $B3HD%M-8z2=$N$?$a$K(B \tildefile{.hgrc} $B$KDI2C$9$kFbMF(B} 287.273 +\end{figure} 287.274 + 287.275 +$B3HD%$,M-8z2=$5$l$k$H!"(B 287.276 +$B$$$/$D$+$N?7$7$$%3%^%s%I$,M-8z2=$5$l$^$9!#(B 287.277 +\hgcmd{help} $B$r;H$C$F(B \hgxcmd{mq}{qinit} $B%3%^%s%I$NMxMQ2DH]$r8+$k$3$H$G!"(B 287.278 +$B3HD%$,5!G=$9$k$3$H$r3NG'$G$-$^$9!#(B 287.279 +~\ref{ex:mq:enabled} $B$NNc$r;2>H$7$F$/$@$5$$!#(B 287.280 + 287.281 +\begin{figure}[ht] 287.282 + \interaction{mq.qinit-help.help} 287.283 + \caption{MQ $BMxMQ2DH]$N3NG'(B} 287.284 + \label{ex:mq:enabled} 287.285 +\end{figure} 287.286 + 287.287 +MQ $B$O(B\emph{$BA4$F$N(B} Mercurial $B%j%]%8%H%j$GMxMQ$G$-!"(B 287.288 +$B%3%^%s%I$O$=$N%j%]%8%H%j$K$7$+:nMQ$7$^$;$s!#(B 287.289 +$BMxMQ3+;O$N:]$K$O!"(B 287.290 +\hgxcmd{mq}{qinit} $B%3%^%s%I$K$h$j%j%]%8%H%j$N=`Hw$r9T$$$^$9(B 287.291 +$B!J(B~\ref{ex:mq:qinit} $B;2>H!K!#(B 287.292 +$B$3$N%3%^%s%I$O!"(B\sdirname{.hg/patches} $B$H8F$P$l$k6u$N%G%#%l%/%H%j$r:n@.$7!"(B 287.293 +MQ $B$O$3$N%G%#%l%/%H%j$K%a%?%G!<%?$r3JG<$7$^$9!#(B 287.294 +$BB?$/$N(B Mercurial $B%3%^%s%I$HF1MM!"(B 287.295 +\hgxcmd{mq}{qinit} $B%3%^%s%I$O<B9T$,@5>o$K=*N;$7$?>l9g$K$O!"(B 287.296 +$BFC$K2?$bI=<($7$^$;$s!#(B 287.297 + 287.298 +\begin{figure}[ht] 287.299 + \interaction{mq.tutorial.qinit} 287.300 + \caption{MQ $BMxMQ$K8~$1$?%j%]%8%H%j$N=`Hw(B} 287.301 + \label{ex:mq:qinit} 287.302 +\end{figure} 287.303 + 287.304 +\begin{figure}[ht] 287.305 + \interaction{mq.tutorial.qnew} 287.306 + \caption{$B?7$7$$%Q%C%A$N:n@.(B} 287.307 + \label{ex:mq:qnew} 287.308 +\end{figure} 287.309 + 287.310 +\subsection{$B?7$7$$%Q%C%A$N:n@.(B} 287.311 + 287.312 +$B?7$7$$%Q%C%A$G:n6H$r3+;O$9$k$K$O!"(B 287.313 +\hgxcmd{mq}{qnew} $B%3%^%s%I$r;H$$$^$9!#(B 287.314 +$B$3$N%3%^%s%I$O:n@.$9$k%Q%C%A$NL>A0$r0z?t$K<h$j$^$9!#(B 287.315 +$BNc(B~\ref{ex:mq:qnew}$B$K<($9$h$&$K!"(B 287.316 +MQ $B$O$3$l$r(B \sdirname{.hg/patches} 287.317 +$B%G%#%l%/%H%jCf$N<B%U%!%$%k$NL>A0$H$_$J$7$^$9!#(B 287.318 + 287.319 +\sdirname{.hg/patches} $B%G%#%l%/%H%jG[2<$K$O$=$l0J30$K$b!"(B 287.320 +\sfilename{series} $B$H(B \sfilename{status} 287.321 +$B$H$$$$D$N?7$7$$%U%!%$%k$,:n@.$5$l$^$9!#(B 287.322 +\sfilename{series} $B$O!"(B 287.323 +$B$=$N%j%]%8%H%j$K$*$$$F(B MQ $B$,4IM}$9$kA4$F$N%Q%C%A$N0lMw$r!"(B 287.324 +$B#19T#1%Q%C%A$GJ];}$7$F$$$^$9!#(B 287.325 +\sfilename{status} $B$O(B 287.326 +$B$=$N%j%]%8%H%j$K$*$$$F(B MQ $B$,(B\emph{$BE,MQ(B}$B$7$?A4$F$N%Q%C%A$rDI@W$9$k$?$a$N!"(B 287.327 +$BFbItD"JmE*$JMQES$K;HMQ$5$l$^$9!#(B 287.328 + 287.329 +\begin{note} 287.330 + $BNc$($P!"%Q%C%A$NE,MQ=g=x$rJQ99$7$?$$$h$&$J>l9g!"(B 287.331 + \sfilename{series} $B$r<jF0$GJQ99$7$?$$>l9g$,$"$k$+$b$7$l$^$;$s!#(B 287.332 + $B$7$+$7!"(BMQ $B$NG'<1>u67$rMF0W$KB;$J$&$3$H$+$i!"(B 287.333 + $B<jF0$G$N(B \sfilename{status} $BJT=8$OKX$IA4$F$N>l9g$K$*$$$FITE,@Z$G$9!#(B 287.334 +\end{note} 287.335 + 287.336 +$B?7$7$$%Q%C%A$r:n@.$7$?$J$i$P!"(B 287.337 +$BIaCJ$HF1$8$h$&$K:n6HNN0h%G%#%l%/%H%j$N%U%!%$%k$rJT=8$G$-$^$9!#(B 287.338 +\hgcmd{diff} $B$d(B \hgcmd{annotate} $B$H$$$C$?!"(B 287.339 +Mercurial $B$NA4$F$NDL>o%3%^%s%I$O$=$l0JA0$HA4$/F1MM$K5!G=$7$^$9!#(B 287.340 + 287.341 +\subsection{$B%Q%C%A$N(B refresh} 287.342 + 287.343 +$B:n6HFbMF$rJ]B8$9$kCJ3,$K$J$C$?$J$i!"(B 287.344 +$B:n6HCf$N%Q%C%A$r99?7$9$k$?$a$K(B \hgxcmd{mq}{qrefresh} $B$r;HMQ$7$^$9(B 287.345 +$B!J?^(B~\ref{ex:mq:qnew}$B;2>H!K!#(B 287.346 +$B$3$N%3%^%s%I$O!"(B 287.347 +$B:n6HNN0h%G%#%l%/%H%j$G$NJQ99FbMF$r%Q%C%A$X$H3JG<$7!"(B 287.348 +$BBP1~$9$k%A%'%s%8%;%C%H$r!"$=$l$i$NJQ99FbMF$rJ];}$9$k$h$&$K99?7$7$^$9!#(B 287.349 + 287.350 +\begin{figure}[ht] 287.351 + \interaction{mq.tutorial.qrefresh} 287.352 + \caption{$B%Q%C%A$N(B refresh} 287.353 + \label{ex:mq:qrefresh} 287.354 +\end{figure} 287.355 + 287.356 +\hgxcmd{mq}{qrefresh} $B%3%^%s%I$O$$$D$G$b2?EY$G$b<B9T$G$-$k$N$G!"(B 287.357 +$B:n6H$N(B``$B%A%'%C%/%]%$%s%H(B''$B$H$7$FMxMQ$9$k$N$bNI$$$G$7$g$&!#(B 287.358 +$BET9g$NNI$$;~$K%Q%C%A$N(B refresh $B$r<B;\$9$k$3$H$G!"(B 287.359 +$B<B83E*$J:n6H$r9T$C$F$_$F!"$=$l$,$&$^$/5!G=$7$J$$>l9g$K$O!"(B 287.360 +$BD>6a$N(B refresh $B;~E@$^$G$NJQ99$r!"(B 287.361 +\hgcmd{revert} $B%3%^%s%I$K$h$j<h$j>C$9$3$H$,$G$-$^$9!#(B 287.362 + 287.363 +\begin{figure}[ht] 287.364 + \interaction{mq.tutorial.qrefresh2} 287.365 + \caption{$BJ#?t2s$N%Q%C%A(B refresh $B$K$h$kJQ99$NC_@Q(B} 287.366 + \label{ex:mq:qrefresh2} 287.367 +\end{figure} 287.368 + 287.369 +\subsection{$B%Q%C%A$N@Q$_=E$M$HDI@W(B} 287.370 + 287.371 +$B%Q%C%A$KBP$9$k:n6H$r=*$($k$+!"(B 287.372 +$BB>$N%Q%C%A$KBP$9$k:n6H$,I,MW$K$J$C$?$J$i!"(B 287.373 +$B:FEY(B \hgxcmd{mq}{qnew} $B%3%^%s%I$r<B9T$9$k$3$H$G!"(B 287.374 +$B?7$7$$%Q%C%A$r:n@.$7$^$9!#(B 287.375 +Mercurial $B$O!"?75,$K:n@.$7$?$3$N%Q%C%A$r!"(B 287.376 +$B4{B8$N%Q%C%A$N:G>e0L$KE,MQ$7$^$9!#(B 287.377 +$B?^(B~\ref{ex:mq:qnew2}$B$r;2>H$7$F$/$@$5$$!#(B 287.378 +$B@h$K:n6H$7$F$$$?%Q%C%A$K4^$^$l$kJQ99$O!"(B 287.379 +$B$3$N?7$7$$%Q%C%A$NJ8L.$N0lIt$H$7$F4^$^$l$^$9(B 287.380 +$B!J(B\hgcmd{annotate} $B=PNO$r8+$l$P!"$3$N$3$H$OL@$i$+$G$9!K!#(B 287.381 + 287.382 +\begin{figure}[ht] 287.383 + \interaction{mq.tutorial.qnew2} 287.384 + \caption{$B#1$DL\$N>e$K@Q$_=E$M$i$l$k#2$DL\$N%Q%C%A(B} 287.385 + \label{ex:mq:qnew2} 287.386 +\end{figure} 287.387 + 287.388 +$B$3$l$^$G$O!"(B 287.389 +\hgxcmd{mq}{qnew} $B$H(B \hgxcmd{mq}{qrefresh} $B$r=|$$$F!"(B 287.390 +Mercurial $B$NDL>o%3%^%s%I$N$_$r;HMQ$9$k$h$&$KCm0U$7$F$-$^$7$?!#(B 287.391 +$B$7$+$7!"(B 287.392 +$B?^(B~\ref{ex:mq:qseries} $B$K<($9$h$&$K!"(B 287.393 +$B%Q%C%A$K4X$9$k:n6H$r9T$&:]$K$h$jJXMx$JB?$/$N%3%^%s%I$r!"(B 287.394 +MQ $B$ODs6!$7$F$$$^$9!#(B 287.395 + 287.396 +\begin{itemize} 287.397 +\item \hgxcmd{mq}{qseries} $B%3%^%s%I$O(B 287.398 + MQ $B$,Ev3:%j%]%8%H%jCf$G4IM}$7$F$$$kA4$F$N%Q%C%A$N0lMw$r!"(B 287.399 + $B8E$$$b$N$+$i?7$7$$$b$N!J:G$b:G6a(B\emph{$B:n@.$5$l$?$b$N(B}$B!K(B 287.400 + $B$N=g=x$G0lMwI=<($7$^$9!#(B 287.401 + 287.402 +\item \hgxcmd{mq}{qapplied} $B%3%^%s%I$O!"(B 287.403 + MQ $B$,Ev3:%j%]%8%H%j$G(B\emph{$BE,MQ$7$?(B}$BA4$F$N%Q%C%A$N0lMw$r!"(B 287.404 + $B8E$$$b$N$+$i?7$7$$$b$N!J:G$b:G6aE,MQ$5$l$?$b$N!K(B 287.405 + $B$N=g=x$G0lMwI=<($7$^$9!#(B 287.406 +\end{itemize} 287.407 + 287.408 +\begin{figure}[ht] 287.409 + \interaction{mq.tutorial.qseries} 287.410 + \label{ex:mq:qseries} 287.411 + \caption{\hgxcmd{mq}{qseries} $B$*$h$S(B 287.412 + \hgxcmd{mq}{qapplied} $B$K$h$k%Q%C%A$N@Q$_=E$M$N=,F@(B} 287.413 +\end{figure} 287.414 + 287.415 +\subsection{$B%Q%C%A$N@Q$_=E$M$NA`:n(B} 287.416 + 287.417 +``$B4IM}$5$l$F$$$k(B''$B%Q%C%A$H(B``$BE,MQ$5$l$F$$$k(B''$B$=$l$N4V$K0c$$$,$"$k$3$H$r!"(B 287.418 +$B@h$N5-=R$G$O0E$K<($7$F$$$^$9$,!"(B 287.419 +$B<B:]$KN><T$N4V$K$O0c$$$,$"$j$^$9!#(B 287.420 +MQ $B$OE,MQ$9$k$3$HL5$7$K!"%Q%C%A$r%j%]%8%H%jCf$G4IM}$9$k$3$H$,$G$-$^$9!#(B 287.421 + 287.422 +\emph{$BE,MQ$5$l$?(B}$B%Q%C%A$O!"(B 287.423 +$B%j%]%8%H%jCf$KBP1~$9$k%A%'%s%8%;%C%H$r;}$A!"(B 287.424 +$B%Q%C%A$H%A%'%s%8%;%C%H$N8z2L$O:n6HNN0h%G%#%l%/%H%j$K$*$$$F8+$k$3$H$,$G$-$^$9!#(B 287.425 +\hgxcmd{mq}{qpop} $B%3%^%s%I$r;HMQ$7$F!"(B 287.426 +$B%Q%C%A$NE,MQ$r<h$j>C$9$3$H$b$G$-$^$9!#(B 287.427 + 287.428 +MQ $B$O<h$j=|$+$l$?%Q%C%A$r(B\emph{$B4IM}(B}$B$7B3$1$^$9$,!"(B 287.429 +$B$=$N%Q%C%A$O$b$O$d%j%]%8%H%jCf$KBP1~$9$k%A%'%s%8%;%C%H$r;}$?$:!"(B 287.430 +$B:n6HNN0h%G%#%l%/%H%j$K$O%Q%C%A$K$h$kJQ99$N:/@W$O;D$5$l$F$$$^$;$s!#(B 287.431 +$B?^(B~\ref{fig:mq:stack}$B$K!"(B 287.432 +$BE,MQ$5$l$?%Q%C%A$HDI@W$5$l$F$$$k$=$l$N0c$$$r<($7$^$9!#(B 287.433 + 287.434 +\begin{figure}[ht] 287.435 + \centering 287.436 + \grafix{mq-stack} 287.437 + \caption{MQ $B$N%Q%C%A$N@Q$_=E$M$K$*$1$kE,MQ:Q$_%Q%C%A$HL$E,MQ%Q%C%A(B} 287.438 + \label{fig:mq:stack} 287.439 +\end{figure} 287.440 + 287.441 +\hgxcmd{mq}{qpush} $B%3%^%s%I$r;HMQ$9$k$3$H$G!"(B 287.442 +$BL$E,MQ%Q%C%A$N:FE,MQ!"$J$$$7<h$j=|$-$r9T$&$3$H$,$G$-$^$9!#(B 287.443 +$B$3$NA`:n$K$h$j%Q%C%A$KBP1~$9$k?7$7$$%A%'%s%8%;%C%H$,:n@.$5$l!"(B 287.444 +$B%Q%C%A$K$h$kJQ99$O:F$S:n6HNN0h%G%#%l%/%H%j$K8=$l$^$9!#(B 287.445 +$B?^(B~\ref{ex:mq:qpop}$B$K!"(B 287.446 +\hgxcmd{mq}{qpop} $B$*$h$S(B \hgxcmd{mq}{qpush} $B$N<B;\Nc$r<($7$^$9!#(B 287.447 +$B?^$N$h$&$K#1$D$J$$$7#2$D$N%Q%C%A$r0lEY<h$j=|$$$F$b!"(B 287.448 +\hgxcmd{mq}{qseries} $B$N=PNO$OJQ2=$7$^$;$s$,!"(B 287.449 +$B$=$N0lJ}$G(B \hgxcmd{mq}{qapplied} $B$N=PNO$OJQ2=$7$^$9!#(B 287.450 + 287.451 +\begin{figure}[ht] 287.452 + \interaction{mq.tutorial.qpop} 287.453 + \caption{$BE,MQ%Q%C%A$N@Q$_=E$M$NJQ99(B} 287.454 + \label{ex:mq:qpop} 287.455 +\end{figure} 287.456 + 287.457 +\subsection{$BJ#?t%Q%C%A$NE,MQ(B(push)$B$*$h$S<h$j>C$7(B(pop)} 287.458 + 287.459 +\hgxcmd{mq}{qpush} $B$*$h$S(B \hgxcmd{mq}{qpop} $B$N$=$l$>$l$,!"(B 287.460 +$B%G%U%)%k%H$G$O0lEY$K0l$D$N%Q%C%A$KBP$7$F=hM}$r9T$&0lJ}$G!"(B 287.461 +$B0lEY$KJ#?t$N%Q%C%A$NE,MQ$d<h$j>C$7$r9T$&$3$H$b$G$-$^$9!#(B 287.462 +\hgxcmd{mq}{qpush} $B$K(B 287.463 +\hgxopt{mq}{qpush}{-a} $B%*%W%7%g%s$r;XDj$9$k$3$H$K$h$j!"(B 287.464 +$BA4$F$NL$E,MQ%Q%C%A$NE,MQ$,!"(B 287.465 +\hgxcmd{mq}{qpop} $B$K(B 287.466 +\hgxopt{mq}{qpop}{-a} $B%*%W%7%g%s$r;XDj$9$k$3$H$K$h$j!"(B 287.467 +$BA4$F$NE,MQ:Q$_%Q%C%A$N<h$j>C$7$r9T$&$3$H$,$G$-$^$9!#(B 287.468 +$B!J$=$l0J30$NJ#?t%Q%C%A$NE,MQ!?<h$j>C$7$NJ}K!$K4X$7$F$O!"(B 287.469 +~\ref{sec:mq:perf} $B@a$r;2>H$7$F$/$@$5$$!#!K(B 287.470 + 287.471 +\begin{figure}[ht] 287.472 + \interaction{mq.tutorial.qpush-a} 287.473 + \caption{$BA4$F$NL$E,MQ%Q%C%A$NE,MQ(B} 287.474 + \label{ex:mq:qpush-a} 287.475 +\end{figure} 287.476 + 287.477 +\subsection{$B0BA43NG'$H$=$NL58z2=(B} 287.478 + 287.479 +$B$$$/$D$+$N(B MQ $B%3%^%s%I$O!"(B 287.480 +$B=hM}$NA0$K:n6HNN0h%G%#%l%/%H%j$N3NG'$r9T$$!"(B 287.481 +$B2?$i$+$N2~JQ$,8!=P$5$l$?>l9g$K$O=hM}$rCfCG$7$^$9!#(B 287.482 +$B$3$N3NG'$O!"(B 287.483 +$B%Q%C%A$K<h$j9~$^$l$F$$$J$$JQ99FbMF$r<:$o$J$$$?$a$K9T$o$l$^$9!#(B 287.484 +$B?^(B~\ref{ex:mq:add} $B$KNc$r<($7$^$9!#(B 287.485 +\hgxcmd{mq}{qnew} $B%3%^%s%I$OL$<h$j9~$_$NJQ99(B 287.486 +$B!J$3$N%1!<%9$G$O(B \filename{file3} $B$N(B \hgcmd{add} $B$K5/0x$9$k$b$N!K$,$"$k>l9g!"(B 287.487 +$B?7$7$$%Q%C%A$r@8@.$7$^$;$s!#(B 287.488 + 287.489 +\begin{figure}[ht] 287.490 + \interaction{mq.tutorial.add} 287.491 + \caption{$B6/@)E*$J%Q%C%A$N@8@.(B} 287.492 + \label{ex:mq:add} 287.493 +\end{figure} 287.494 + 287.495 +$B:n6HNN0h%G%#%l%/%H%j$r3NG'$9$k%3%^%s%I$O!"(B 287.496 +$B$9$Y$F(B``$BN;2r:Q$_(B''$B%*%W%7%g%s$r<h$k$3$H$,$G$-!"(B 287.497 +$B$=$N%*%W%7%g%s$O>o$K(B \option{-f} $B$HL>$E$1$i$l$F$$$^$9!#(B 287.498 +\option{-f} $B%*%W%7%g%s$N87L)$J0UL#$O%3%^%s%I$4$H$K0[$J$j$^$9!#(B 287.499 +$BNc$($P!"(B 287.500 +\hgcmdargs{qnew}{\hgxopt{mq}{qnew}{-f}} 287.501 +$B$O?7$?$K@8@.$5$l$k%Q%C%A$KL$<h$j9~$_$NJQ99$rA4$F<h$j9~$_$^$9$,!"(B 287.502 +\hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-f}} 287.503 +$B$O<h$j>C$5$l$k%Q%C%A$,1F6A$r5Z$\$9%U%!%$%k$KBP$9$kJQ99$r85$KLa$7$^$9(B 287.504 +\footnote{$BLuCm(B: 287.505 +$B!V%Q%C%A$N1F6A$r85$KLa$9!W$N$G$O$J$/!"(B 287.506 +$B!V%Q%C%A$,1F6A$r5Z$\$9%U%!%$%k!W$rA4$F85$KLa$9!"$N0U(B}$B!#(B 287.507 +$BMxMQ$9$kA0$K3F%3%^%s%I$N(B \option{-f} $B%*%W%7%g%s$N%I%-%e%a%s%H$r3NG'$7$^$7$g$&!*(B 287.508 + 287.509 +\subsection{$BJ#?t%Q%C%A$N0l3g=hM}(B} 287.510 + 287.511 +\hgxcmd{mq}{qrefresh} $B%3%^%s%I$O!"(B 287.512 +$B>o$K(B\emph{$B:G>e0L$N(B}$BE,MQ:Q$_%Q%C%A$r99?7$7$^$9!#(B 287.513 +$B$3$l$O!"$"$k%Q%C%A$KBP$9$kA`:n$r!J(Brefresh $B$9$k$3$H$G!KCfCG$7!"(B 287.514 +$B<h$j>C$7!J(Bpop$B!K$J$$$7E,MQ!J(Bpush$B!K$K$h$jJL$N%Q%C%A$r:G>e0L$K;}$C$F$/$k$3$H$G!"(B 287.515 +$B$=$N%Q%C%A$KBP$7$F:n6H$9$k$3$H$,$G$-$k$3$H$r0UL#$7$^$9!#(B 287.516 + 287.517 +$B$3$N5!G=$K$h$C$F2DG=$K$J$k$3$H$rNc$K$h$C$F<($7$^$9!#(B 287.518 +$B#2$D$N%Q%C%A$K$h$C$F?7$7$$5!G=$r3+H/$7$F$$$k$b$N$H$7$^$7$g$&!#(B 287.519 +$B#1$DL\$N%Q%C%A$O%=%U%H%&%'%"$NCf3K5!G=$NJQ99$r!"(B 287.520 +$B$=$7$F#2$DL\$N%Q%C%A$O(B --- $B#1$DL\$N%Q%C%A$N>e$G(B --- 287.521 +$BCf3K5!G=$NJQ99$r;HMQ$9$k$?$a$N%f!<%6!<%$%s%?%U%'!<%9(B(UI)$B$NJQ99$r9T$$$^$9!#(B 287.522 +UI $B$X$N%Q%C%A$N:n6HCf$K!"(B 287.523 +$BCf3K5!G=$X$N%Q%C%A$K%P%0$r8+$D$1$?$H$7$F$b!"(B 287.524 +$B$=$l$r=$@5$9$k$N$O4JC1$J$3$H$G$9!#(B 287.525 +UI $B$X$N%Q%C%A$KBP$9$k(B \hgxcmd{mq}{qrefresh} $B$K$h$j:n6HCf$NJQ99$rJ]B8$7$?8e$K!"(B 287.526 +\hgxcmd{mq}{qpop} $B$K$h$jA`:nBP>]%Q%C%A$rCf3K5!G=$X$N$=$l$KJQ99$7$^$9(B 287.527 +$B!J%Q%C%A%9%?%C%/$r2<$X$H0\F0$7$^$9!K!#(B 287.528 +$BCf3K5!G=$X$N%Q%C%A$N%P%0$r=$@5$7!"(B 287.529 +\hgxcmd{mq}{qrefresh} $B$K$h$C$F%Q%C%A$X$NH?1G$r9T$C$?8e$K!"(B 287.530 +\hgxcmd{mq}{qpush} $B$K$h$jA`:nBP>]%Q%C%A$r(B UI $B$X$N%Q%C%A$KLa$9$3$H$G!"(B 287.531 +$B$d$j$+$1$N:n6H$r7QB3$9$k$3$H$,$G$-$^$9!#(B 287.532 + 287.533 +\section{$B%Q%C%A$K4X$7$F99$K>\$7$/(B} 287.534 +\label{sec:mq:adv-patch} 287.535 + 287.536 +MQ $B$O%Q%C%A$NE,MQ$K(B GNU \command{patch} $B%3%^%s%I$r;HMQ$7$^$9$N$G!"(B 287.537 +\command{patch} $B%3%^%s%I$NF0:n$H%Q%C%A$=$N$b$N$K4X$7$F!"(B 287.538 +$B$h$j>\:Y$J>pJs$rCN$k$3$H$OM-MQ$G$9!#(B 287.539 + 287.540 +\subsection{$B=|5n?t(B} 287.541 + 287.542 +$B%Q%C%A$N%U%!%$%k%X%C%@$r8+$k$H!"(B 287.543 +$B<B:]$N%Q%9L>$K$O8=$l$J$$M>J,$JMWAG$r@hF,$K;}$C$F$$$k$3$H$K5$$,IU$/$G$7$g$&!#(B 287.544 +$B$3$l$O0JA0$K%Q%C%A$,@8@.$5$l$F$$$?J}K!$NL>;D$G$9(B 287.545 +$B!J:#$G$b$3$NJ}K!$rMQ$$$F$$$^$9$,!"(B 287.546 +$B6aG/$N9=@.4IM}%D!<%k$G$O5)$G$9!K!#(B 287.547 + 287.548 +Alice $B$,(B tarball $B$rE83+$7$F%U%!%$%k$rJT=8$7$?8e$G!"(B 287.549 +$B%Q%C%A$r:n@.$7$h$&$H9M$($?$H$7$^$9!#(B 287.550 +$B:n6HNN0h%G%#%l%/%H%j$r2~L>$7!"(B 287.551 +$B:FEY(B tarball $B$rE83+!J$3$NE83+$N$?$a$K2~L>$9$k$3$H$,I,MW$K$J$j$^$9!K$7!"(B 287.552 +\command{diff} $B%3%^%s%I$K(B 287.553 +\cmdopt{diff}{-r} $B$*$h$S(B \cmdopt{diff}{-N} $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B 287.554 +$B2~JQA0$N%G%#%l%/%H%j$H2~JQ8e$N%G%#%l%/%H%j$N4V$G:F5"E*$K%Q%C%A$r@8@.$7$^$9!#(B 287.555 +$B0lJ}$K$O2~JQA0$N%G%#%l%/%H%jL>$,A4$F$N%U%!%$%k$N%Q%9KAF,$KIU2C$5$l!"(B 287.556 +$BB>J}$K$O2~JQ8e$N%G%#%l%/%H%jL>$,F1MM$KIU2C$5$l$^$9!#(B 287.557 + 287.558 +Alices $B$+$i%Q%C%A$r<u$1<h$C$??MJ*$N4D6-$K!"(B 287.559 +$B2~JQA0$H2~JQ8e%G%#%l%/%H%j$NN>J}$H87L)$K0lCW$9$kL>A0$N%G%#%l%/%H%j$,$"$k!"(B 287.560 +$B$H$$$&$N$O$"$j$=$&$b$J$$;v$G$9$+$i!"(B 287.561 +\command{patch} $B%3%^%s%I$O!"(B 287.562 +$B%Q%C%AE,MQ;~$K%Q%9L>MWAG$N2?HVL\$^$G$r<h$j=|$/$+$r;X$9(B 287.563 +\cmdopt{patch}{-p} $B%*%W%7%g%s$r;}$C$F$$$^$9!#(B 287.564 +$B$3$N%*%W%7%g%s$K;XDj$5$l$k?t$r(B\emph{$B=|5n?t(B}$B!J(Bstrip count$B!K$H8F$S$^$9!#(B 287.565 + 287.566 +``\texttt{-p1}'' $B%*%W%7%g%s$O!"(B 287.567 +``$B=|5n?t$r#1$H$_$J$9(B''$B$3$H$r0UL#$7$^$9!#(B 287.568 +\command{patch} $B%3%^%s%I$,!"(B 287.569 +$B%U%!%$%k%X%C%@$K$*$$$F%U%!%$%kL>(B \filename{foo/bar/baz} $B$r8!CN$7$?>l9g!"(B 287.570 +\filename{foo} $BItJ,$r=|5n$7$?(B 287.571 +\filename{bar/baz} $B$H$$$&%U%!%$%k$KBP$7$F%Q%C%A$r$"$F$^$9(B 287.572 +$B!J87L)$J$3$H$r8@$($P!"(B 287.573 +$B=|5n?t$O=|5n$5$l$k(B\emph{$B%Q%96h@Z$j(B}$B!J$*$h$S$=$l$KIU?o$9$kMWAG!K$N?t$r;X$7$^$9!#(B 287.574 +$B=|5n?t#1$O!"(B\filename{foo/bar} $B$r(B \filename{bar} $B$K$7$^$9$,!"(B 287.575 +\filename{/foo/bar}$B!J@hF,$N%9%i%C%7%e$KCm0U!K$O(B 287.576 +\filename{foo/bar} $B$K$J$j$^$9!K!#(B 287.577 + 287.578 +$B%Q%C%A$K$*$1$k(B``$BI8=`$N(B''$B=|5n?t$O#1$G$9$N$G!"(B 287.579 +$B$[$H$s$IA4$F$N%Q%C%A$O<h$j=|$+$l$k@hF,MWAG$r#1$D4^$s$G$$$^$9!#(B 287.580 +Mercurial $B$N(B \hgcmd{diff} $B%3%^%s%I$O$3$N7A<0$G%Q%9L>$r@8@.$7$^$9$N$G!"(B 287.581 +\hgcmd{import} $B%3%^%s%I$d(B MQ $B$O=|5n?t#1$N%Q%C%A$r4|BT$7$F$$$^$9!#(B 287.582 + 287.583 +$B=|5n?t$,#1$G$O$J$$%Q%C%A$r%Q%C%A%-%e!<$KDI2C$7$h$&$H$7$?>l9g!"(B 287.584 +$B8=;~E@$G(B \texttt{-p} $B%*%W%7%g%s$r;}$C$F$$$J$$(B 287.585 +\hgxcmd{mq}{qimport} $B!J(B~\bug{311} $B;2>H$N$3$H!K$G$O<h$j9~$`$3$H$,$G$-$^$;$s!#(B 287.586 +$B$=$N>l9g!"(B 287.587 +\hgxcmd{mq}{qnew} $B$G?75,%Q%C%A$r(B MQ $B>e$K:n@.$7!"(B 287.588 +\cmdargs{patch}{-p\emph{N}} $B$K$h$j%Q%C%A$rE,MQ!"(B 287.589 +\hgcmd{addremove} $B$G%Q%C%A$K$h$jDI2C!?:o=|$5$l$?%U%!%$%k$rFCDj$7!"(B 287.590 +\hgxcmd{mq}{qrefresh} $B$r9T$&$N$,:GA1$NJ}K!$G$9!#(B 287.591 +$B$3$N$h$&$JLLE]$J<j=g$O$$$:$lITMW$K$J$k$+$b$7$l$^$;$s!#(B 287.592 +$B>\:Y$O(B ~\bug{311} $B$r;2>H$7$F$/$@$5$$!#(B 287.593 + 287.594 +\subsection{$B%Q%C%AE,MQ<j=g(B} 287.595 + 287.596 +\command{patch} $B$,(B hunk $B$rE,MQ$9$k:]$K$O!"(B 287.597 +it tries a handful of 287.598 +(successively $B$O$I$3$K3]$+$k!)(B) 287.599 +successively less accurate strategies to try to make the hunk apply XXXXX 287.600 +$BMQ?4?<$$$3$NJ}K!$K$h$j!"8E$$HG$N%U%!%$%k$G@8@.$5$l$?%Q%C%A$G$"$C$F$b!"(B 287.601 +$B?7$7$$HG$N%U%!%$%k$KE,MQ$9$k$3$H$,!"B?$/$N>l9g$G2DG=$H$J$j$^$9!#(B 287.602 + 287.603 +\command{patch} $B%3%^%s%I$O!"(B 287.604 +$B:G=i$O(B hunk $B$K$*$1$k9THV9f!"(B 287.605 +$B%3%s%F%-%9%H$*$h$SJQ99BP>]%F%-%9%H$N87L)0lCW$r;n$_$^$9!#(B 287.606 +$B87L)0lCW$,$G$-$J$$>l9g!"(B 287.607 +$B9THV9f$K4X$9$k>pJs$rL5;k$7!"(B 287.608 +$B%3%s%F%-%9%H$N$_$N87L)0lCW$r;n$_$^$9!#(B 287.609 +$B$3$l$,@.8y$7$?>l9g!"(B 287.610 +\command{patch} $B%3%^%s%I$O!"(B 287.611 +hunk $B$,E,MQ$5$l$?$3$H$H!"(B 287.612 +$B85$N9THV9f$+$i(B\emph{$B%*%U%;%C%HJ,(B}$B$:$l$F$$$k$3$H$rI=<($7$^$9!#(B 287.613 + 287.614 +$B%3%s%F%-%9%H$N$_$K$h$k0lCW$,<:GT$7$?>l9g!"(B 287.615 +\command{patch} $B$OKAF,$*$h$SKvHx9T$r<h$j=|$$$?%3%s%F%-%9%H$rMQ$$$F!"(B 287.616 +\emph{$B=L>.(B}$B%3%s%F%-%9%H$N$_$K$h$k0lCW$r;n$_$^$9!#(B 287.617 +$B=L>.%3%s%F%-%9%H$K$h$k(B hunk $BE,MQ$,@.8y$7$?>l9g!"(B 287.618 +\emph{$B$"$$$^$$$JMW0x(B}$B$r85$K(B hunk $B$,E,MQ$5$l$?$3$H$rI=<($7$^$9(B 287.619 +$B!J$3$N;~<($5$l$k?tCM$O!"(B 287.620 +\command{patch} $B%3%^%s%I$,%Q%C%AE,MQA0$K%3%s%F%-%9%H$+$i<h$j=|$$$?9T?t$G$9!K!#(B 287.621 + 287.622 +$B$3$l$i$N$I$N5;K!$G$bE,MQ$G$-$J$$>l9g!"(B 287.623 +\command{patch} $B%3%^%s%I$OAhE@$H$J$C$F$$$k(B hunk $B$,5Q2<$5$l$?;]$rI=<($7$^$9!#(B 287.624 +\command{patch} $B%3%^%s%I$O5Q2<$5$l$?(B hunk $B!JC1$K(B ``reject'' $B$H$b8F$P$l$^$9!K(B 287.625 +$B$rF1L>$G(B \sfilename{.rej} $B3HD%;R$r;}$D%U%!%$%k$KJ]B8$7$^$9!#(B 287.626 +$B99$K$=$N>e$G!"(B 287.627 +$B%Q%C%AE,MQA0$N%U%!%$%k$N%3%T!<$r(B \sfilename{.orig} $B3HD%;RIU$-$GJ]B8$7$^$9!#(B 287.628 +$B3HD%;RL5$7$N%U%!%$%k$O!"(B 287.629 +$BE,@Z$K$NE,MQ(B\emph{$B$5$l$?(B} hunk $B$K$h$kJQ99$r4^$s$G$$$^$9!#(B 287.630 +$B%U%!%$%k(B \filename{foo} $B$rJQ99$9$k#6$D$N(B hunk $B$r;}$D%Q%C%A$,$"$j!"(B 287.631 +$B$=$N$&$A$N#1$D$,E,MQ$G$-$J$+$C$?>l9g!"(B 287.632 +$BJQ99A0$NFbMF$r;}$D(B \filename{foo.orig}$B!"(B 287.633 +$BE,MQ$G$-$J$+$C$?(B hunk $B$r#1$D;}$D(B \filename{foo.rej} $B$*$h$S(B 287.634 +$BE,MQ$G$-$?#5$D$N(B hynk $B$K$h$kJQ99$r4^$`(B \filename{foo} 287.635 +$B$N#3$D$N%U%!%$%k$,$G$-$^$9!#(B 287.636 + 287.637 +\subsection{$B%Q%C%A$N<B8=>e$NJJ(B} 287.638 + 287.639 +\command{patch} $B%3%^%s%I$N%U%!%$%k$X$N:nMQ$rCN$k>e$G!"(B 287.640 +$BM-MQ$J;v$,$$$/$D$+$"$j$^$9!#(B 287.641 + 287.642 +\begin{itemize} 287.643 +\item $B$o$+$j$-$C$?;v$G$9$,!"(B\command{patch} $B$O%P%$%J%j%U%!%$%k$r07$($^$;$s!#(B 287.644 + 287.645 +\item $B<B9T%S%C%H$b07$($^$;$s$N$G!"?7$7$$%U%!%$%k$r:n@.$9$k:]$K$O!"(B 287.646 + $BFI$_<h$j2DG=$K$O$7$^$9$,!"<B9T2DG=$K$O$7$^$;$s!#(B 287.647 + 287.648 +\item \command{patch} $B$O!":o=|BP>]%U%!%$%k$H6u%U%!%$%k$N:9J,$r$b$C$F!"(B 287.649 + $B%U%!%$%k$N:o=|$rI=$7$^$9!#(B 287.650 + $B$=$N$?$a!"(B``$B%U%!%$%k$r:o=|$9$k(B''$B$3$H$O!"(B 287.651 + $B%Q%C%A$K$*$$$F$O(B``$BA4$F$N9T$,:o=|$5$l$k(B''$B$h$&$K8+$($^$9!#(B 287.652 + 287.653 +\item $B6u$N%U%!%$%k$HDI2CBP>]%U%!%$%k$N:9J,$r$b$C$F!"(B 287.654 + $B%U%!%$%k$NDI2C$rI=$7$^$9!#(B 287.655 + $B$=$N$?$a!"(B``$B%U%!%$%k$rDI2C$9$k(B''$B$3$H$O!"(B 287.656 + $B%Q%C%A$K$*$$$F$O(B``$BA4$F$N9T$,DI2C$5$l$k(B''$B$h$&$K8+$($^$9!#(B 287.657 + 287.658 +\item $B8E$$L>A0$N%U%!%$%k$N:o=|$H?7$7$$L>A0$N%U%!%$%k$NDI2C$r$b$C$F!"(B 287.659 + $B%U%!%$%k$N2~L>$rI=$7$^$9!#(B 287.660 + $B$3$l$O!"%U%!%$%k$N2~L>$r9T$&%Q%C%A$N%5%$%:(B 287.661 + $B!J(Bfootprint$B!K$,Bg$-$/$J$k$3$H$r0UL#$7$^$9(B 287.662 + $B!J%Q%C%A$K$*$1$k%U%!%$%k$N2~L>$d%3%T!<$r(B Mercurial $B$,?dB,$9$k$3$H$O!"(B 287.663 + $B8=>u$G$O9T$o$l$J$$$3$H$K$bN10U$7$F$/$@$5$$!K(B $B!#(B 287.664 + 287.665 +\item \command{patch} $B$O6u$N%U%!%$%k$rI=8=$G$-$^$;$s$N$G!"(B 287.666 + ``$B6u$N%U%!%$%k$r%D%j!<$KDI2C$9$k(B''$B$3$H$r%Q%C%A$GI=8=$9$k$3$H$O=PMh$^$;$s!#(B 287.667 + 287.668 +\end{itemize} 287.669 + 287.670 +\subsection{$B$"$$$^$$$5$KCm0U(B} 287.671 + 287.672 +$B%*%U%;%C%HIU$-$d!"$"$$$^$$$JMW0x$r85$K$7$F$$$k>l9g$G$"$C$F$b!"(B 287.673 +$B%Q%C%A$NE,MQ$O40A4$K@.8y$9$k$3$H$,B?$$$N$G$9$,!"(B 287.674 +$B0lJ}$G$3$N$h$&$J87L)@-$r7g$$$?E,MQ<jK!$O!"(B 287.675 +$B$*$N$:$H%U%!%$%k$X$N%Q%C%AE,MQ$,IT40A4$G$"$k2DG=@-$r;D$7$F$7$^$$$^$9!#(B 287.676 +$B:G$bE57?E*$J;vNc$O!"(B 287.677 +$B%Q%C%A$r#2EYE,MQ$7$F$7$^$&$3$H$d!"(B 287.678 +$BITE,@Z$J0LCV$KE,MQ$7$F$7$^$&$3$H$G$9!#(B 287.679 +\command{patch} $B$d(B \hgxcmd{mq}{qpush} 287.680 +$B$,%*%U%;%C%H$d$"$$$^$$MW0x$K4X$7$F8@5Z$7$?:]$K$O!"(B 287.681 +$B%U%!%$%k$,E,@Z$KJQ99$5$l$F$$$k$3$H$r8e$+$i3NG'$7$F$/$@$5$$!#(B 287.682 + 287.683 +$B%*%U%;%C%HIU$-$d!"$"$$$"$^$$$JMW0x$r85$KE,MQ$5$l$?%Q%C%A$r(B refresh $B$9$k$N$,!"(B 287.684 +$BB?$/$N>l9g$K$*$$$F$*$9$9$a$J$N$O!"(B 287.685 +$B%Q%C%A$N(B refresh $B$,!"(B 287.686 +$B%Q%C%A$re:No$KE,MQ$9$k$?$a$N?7$7$$%3%s%F%-%9%H>pJs$r@8@.$9$k$+$i$G$9!#(B 287.687 +$B$?$@$7!"%Q%C%A$r(B refresh $B$9$k$3$H$G!"(B 287.688 +$B85%U%!%$%k$N0[$J$kHG$KBP$7$F%Q%C%A$NE,MQ$,<:GT$9$k$h$&$K$J$k>l9g$,$"$k$?$a!"(B 287.689 +``$BB?$/$N>l9g(B''$B$*$9$9$a$G$9$,!"(B``$B>o$K(B''$B$G$O$"$j$^$;$s!#(B 287.690 +$B%=!<%9%D%j!<$NJ#?t$NHG$KBP$7$FE,MQ2DG=$J%Q%C%A$rJ]<i$9$k$h$&$J>l9g!"(B 287.691 +$B%Q%C%AE,MQ=hM}$N7k2L$r8!>Z$9$k5!2q$rF@$k$3$H$,=PMh$k$N$G!"(B 287.692 +$B%Q%C%A$K$"$$$^$$MW0x$r;}$?$;$F$*$/$N$O5vMFHO0O$G$9!#(B 287.693 + 287.694 +\subsection{$B5Q2<$5$l$?(B hunk $B$N<h$j07$$(B} 287.695 + 287.696 +$B%Q%C%A$NE,MQ$K<:GT$9$k$H!"(B 287.697 +\hgxcmd{mq}{qpush} $B$O%(%i!<%a%C%;!<%8$rI=<($7$F=*N;$7$^$9!#(B 287.698 +\sfilename{.rej} $B%U%!%$%k$,;D$5$l$F$$$k>l9g!"(B 287.699 +$B$=$l0J>e$N%Q%C%A$r(B push $B$7$?$jB>$N:n6H$r$9$kA0$K!"(B 287.700 +$B5Q2<$5$l$?(B hunk $B$N=$@5$r9T$&$3$H$,0lHLE*$K$O:GA1$G$9!#(B 287.701 + 287.702 +$B%Q%C%A$NE,MQBP>]$G$"$k%=!<%9$N99?7$K$h$j!"(B 287.703 +\emph{$B$=$l$^$G$O(B}$B$-$A$s$HE,MQ$G$-$F$$$?%Q%C%A$,E,MQ$G$-$J$/$J$C$?>l9g$N(B 287.704 +Mercurial Queues $B$N;H$$J}$N>\:Y$K4X$7$F$O!"(B 287.705 +~\ref{sec:mq:merge} $B@a$r;2>H$7$F$/$@$5$$!#(B 287.706 + 287.707 +$B;DG0$J$3$H$K!"5Q2<$5$l$?(B hunk $B$r07$&$?$a$N7hDjE*$J5;K!$OB8:_$7$^$;$s!#(B 287.708 +$BB?$/$N>l9g!"(B\sfilename{.rej} $B%U%!%$%k$r;2>H$7$J$,$i!"(B 287.709 +$BBP>]%U%!%$%k$rJT=8$7!"(B 287.710 +$B5Q2<$5$l$?(B hunk $B$r<jF0$GE,MQ$7$J$1$l$P$J$j$^$;$s!#(B 287.711 + 287.712 +$B;W$$@Z$C$?;v$b<-$5$J$$$N$G$"$l$P!"(B 287.713 +$B%Q%C%A$NE,MQ$K4X$7$F$O(B \command{patch} $B$h$j$b6/NO$J!"(B 287.714 +\command{wiggle}~\cite{web:wiggle} $B$H8F$P$l$k%D!<%k$,!"(B 287.715 +Linux $B%+!<%M%k%O%C%+!<$N(B Neil Brown $B$K$h$j=q$+$l$F$$$^$9!#(B 287.716 + 287.717 +\command{patch} $B$K$h$j5Q2<$5$l$?(B hunk $B$NE,MQ$r<+F02=$9$k$?$a$K!"(B 287.718 +$B4JJX$J<jK!$rMQ$$$k(B \command{mpatch}~\cite{web:mpatch} $B$H8F$P$l$k%D!<%k$b!"(B 287.719 +$BJL$N(B Linux $B%+!<%M%k%O%C%+!<$N(B Chris Mason 287.720 +$B!J(BMercurial Queues $B$N:n<T$G$9!K$K$h$j=q$+$l$F$$$^$9!#(B 287.721 +\command{mpatch} $B$O!"(B 287.722 +$B#4$D$N$h$/$"$kM}M3$G5Q2<$5$l$?(B hunk $B$NE,MQ$r=u$1$k$3$H$,$G$-$^$9!#(B 287.723 + 287.724 +\begin{itemize} 287.725 +\item hunk $BCfDx$N%3%s%F%-%9%H$,JQ99$5$l$?!#(B 287.726 +\item hunk $B$N%3%s%F%-%9%H$N!"@hF,$"$k$$$OKvHx$N0lJ}$,8+Ev$?$i$J$$!#(B 287.727 +\item $BBg$-$J(B hunk $B$h$j$b(B---$BA4It$J$j0lIt$J$j$,(B--- 287.728 + $B>.$5$J(B hunk $B$KJ,3d$5$l$?J}$,E,MQ$7$d$9$$!#(B 287.729 +\item $B8=;~E@$G$N%U%!%$%k$H$o$:$+$KFbMF$N0[$J$k9T$r(B 287.730 + hunk $B$,:o=|$7$h$&$H$7$F$$$k!#(B 287.731 +\end{itemize} 287.732 + 287.733 +\command{wiggle} $B$J$$$7(B \command{mpatch} $B$r;HMQ$9$k:]$K$O!"(B 287.734 +$B<B;\7k2L$KBP$7$FFs=E$KCm0U$rJ'$&I,MW$,$"$j$^$9!#(B 287.735 +$B<B$N$H$3$m(B \command{mpatch} $B$O!"(B 287.736 +$B=hM}$N40N;;~$K<+F0E*$K%^!<%8%W%m%0%i%`$X$HM6F3$9$k$3$H$G!"(B 287.737 +$B%D!<%k=PNO$NFs=E3NG'$N<jK!$r6/MW$7$F$$$^$9$N$G!"(B 287.738 +\command{mpatch} $B$N<B9T7k2L$r3NG'$7!"(B 287.739 +$B;D$5$l$?%^!<%8=hM}$r40N;$5$;$k$3$H$,=PMh$^$9!#(B 287.740 + 287.741 +\section{MQ $B$G:G9b@-G=$r=P$9$?$a$K(B} 287.742 +\label{sec:mq:perf} 287.743 + 287.744 +MQ $B$OBgNL$N%Q%C%A$N<h$j07$$$r8zN($h$/<B;\$7$^$9!#(B 287.745 +2006 EuroPython conference~\cite{web:europython} $B$G$N9V1i$N$?$a$K!"(B 287.746 +2006 $BG/Cf=\$K@-G=<B83$r<B;\$7$^$7$?!#(B 287.747 +$BE,MQ%Q%C%A$H$7$F!"(B 287.748 +1,738 $B8D$N%Q%C%A$r;}$D(B Linux 2.6.17-mm1 $B%Q%C%A7ONs$r;HMQ$7$F$$$^$9!#(B 287.749 +Linux 2.6.12-rc2 $B$+$i(B Linux 2.6.17 $B$K$+$1$F$N!"(B 287.750 +27,472 $B$N%j%S%8%g%sA4$F$r;}$D(B Linux $B%+!<%M%k%j%]%8%H%j$KBP$7$F!"(B 287.751 +$B$3$l$i$N%Q%C%A$rE,MQ$7$?$N$G$9!#(B 287.752 + 287.753 +$B5l<0$NCY$$%i%C%W%H%C%W(B PC $B>e$G!"(B 287.754 +1,738 $B8D$N%Q%C%AA4$F$r(B 287.755 +\hgcmdargs{qpush}{\hgxopt{mq}{qpush}{-a}} $B$9$k$N$K(B 3.5 $BJ,!"(B 287.756 +$B$=$l$i$r(B \hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-a}} $B$9$k$N$K(B 30 $BIC$+$+$j$^$7$?(B 287.757 +$B!J?7$7$$%i%C%W%H%C%W$J$i!"(B 287.758 +$BA4$F$N%Q%C%A$r(B push $B$9$k;~4V$O#2J,$^$G2<$,$j$^$7$?!K!#(B 287.759 +$B:G$bBg$-$J%Q%C%A$N#1$D!J(B22,779 $B9T$NJQ99$r(B 287 $B$N%U%!%$%k$KBP$7$F9T$$$^$9!K(B 287.760 +$B$r(B 6.6 $BIC$G(B \hgxcmd{mq}{qrefresh} $B$G$-$F$$$^$9!#(B 287.761 + 287.762 +MQ $B$,5pBg$J%=!<%9%D%j!<$G:n6H$9$k$N$KE,$7$F$$$k$N$OL@$i$+$G$9$,!"(B 287.763 +$B:G9b$N@-G=$r=P$9$?$a$KCN$C$F$*$$$?$[$&$,NI$$4v$D$+$N%3%D$,$"$j$^$9!#(B 287.764 + 287.765 +$B:G=i$N%3%D$O!"(B``$B0l3g(B''$BA`:n$r9T$&$3$H$G$9!#(B 287.766 +\hgxcmd{mq}{qpush} $B$*$h$S(B \hgxcmd{mq}{qpop} $B$N<B9T$N:]$K$O!"(B 287.767 +$B2?$iJQ99$,$5$l$F$$$J$$$3$H$H!"(B 287.768 +\hgxcmd{mq}{qrefresh} $B$7K:$l$,$J$$$3$H$r3NG'$9$k$?$a$K!"(B 287.769 +$B>o$K:n6HNN0h%G%#%l%/%H%j$rAv::$7$F$$$^$9!#(B 287.770 +$B>.$5$J%=!<%9%D%j!<$N>l9g$O!"(B 287.771 +$B$3$NAv::$KMW$9$k;~4V$O5$$K$J$j$^$;$s!#(B 287.772 +$B$7$+$7!"CfDxEY!J(B10,000 $B%U%!%$%kDxEY!K$N%=!<%9%D%j!<$G$O!"(B 287.773 +$B#1IC$+$i$=$l0J>e$N;~4V$,I,MW$G$9!#(B 287.774 + 287.775 +\hgxcmd{mq}{qpush} $B$*$h$S(B \hgxcmd{mq}{qpop} $B%3%^%s%I$G$O!"(B 287.776 +$BJ#?t%Q%C%A$r0l3g$7$F(B push $B$*$h$S(B pop $B$9$k:]$K!"(B 287.777 +$B:n6H$r@Z$j>e$2$k(B``$BE~C#%Q%C%A(B''$B$r;XDj$9$k$3$H$,$G$-$^$9!#(B 287.778 +$BE~C#%Q%C%A;XDjIU$-$G<B9T$9$k$3$H$G!"(B 287.779 +\hgxcmd{mq}{qpush} 287.780 +$B$O;XDj$7$?%Q%C%A$,E,MQ%9%?%C%/$N:G>e0L$K$J$k$^$G%Q%C%A$NE,MQ$r9T$$$^$9!#(B 287.781 +\hgxcmd{mq}{qpop} $B$N>l9g$O!"(B 287.782 +$BE~C#%Q%C%A$,E,MQ%9%?%C%/$N:G>e0L$K$J$k$^$G%Q%C%A$N<h$j>C$7$r9T$$$^$9!#(B 287.783 + 287.784 +$BE~C#%Q%C%A$N;XDj$K$O!"%Q%C%A$NL>A0$+?tCM$,;HMQ$G$-$^$9!#(B 287.785 +$B?tCM;XDj$N>l9g!"%Q%C%A$O#0$+$i?t$(;O$a$k$?$a!"(B 287.786 +$B:G=i$N%Q%C%A$O#0!"<!$N%Q%C%A$N#1$H$J$j$^$9!#(B 287.787 + 287.788 +\section{$B85%=!<%9JQ99;~$N%Q%C%A$N99?7(B} 287.789 +\label{sec:mq:merge} 287.790 + 287.791 +$BD>@\JQ99$9$k$3$H$N$G$-$J$$%j%]%8%H%j$KBP$7$F!"(B 287.792 +$B%Q%C%A%9%?%C%/$r;}$D$3$H$O$h$/$"$k;v$G$9!#(B 287.793 +$BBh;0<T$N%=!<%9$KBP$9$kJQ99$d!"(B 287.794 +$B85%=!<%9$N99?7IQEY$h$j$b3+H/$K;~4V$N3]$+$k5!G=$r<BAu$7$F$$$k>l9g!"(B 287.795 +$B85%=!<%9$N99?7$H$NF14|$d!"(B 287.796 +$BE,MQ$G$-$J$/$J$C$?%Q%C%A$N(B hunk $B$r=$@5$9$kI,MW$,$"$j$^$9!#(B 287.797 +$B$3$N$h$&$J:n6H$O!"%Q%C%A7ONs$N(B\emph{$B%j%Y!<%9(B}$B$H8F$P$l$^$9!#(B 287.798 + 287.799 +$B%j%Y!<%9$N0lHVC1=c$JJ}K!$O!"(B 287.800 +$B%Q%C%A$KBP$7$F(B \hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-a}} $B$r9T$$!"(B 287.801 +\hgcmd{pull} $B$G85%=!<%9$NJQ99$r%j%]%8%H%j$K<h$j9~$_!"(B 287.802 +$B:G8e$K(B \hgcmdargs{qpush}{\hgxopt{mq}{qpop}{-a}} $B$G%Q%C%A$r:FE,MQ$7$^$9!#(B 287.803 +MQ $B$K$h$k%Q%C%AE,MQ$G$O!"(B 287.804 +$B>WFM$,8!=P$5$l$F$$$k4V$OE,MQ$G$-$J$$%Q%C%A$NE,MQ$r;_$a$k$3$H$G!"(B 287.805 +$B>WFM$N2r>C$H%Q%C%A$N(B \hgxcmd{mq}{qrefresh} $B$r9T$&5!2q$r@_$1$D$D!"(B 287.806 +$B%Q%C%A%9%?%C%/Cf$NA4$F$N%Q%C%A$r99?7$7=*$o$k$^$G%Q%C%A$NE,MQ$r7QB3$7$^$9!#(B 287.807 + 287.808 +$B85%=!<%9$NJQ99$,%Q%C%A$NE,MQ6q9g$K0-1F6A$r5Z$\$9?4G[$,L5$$$N$G$"$l$P!"(B 287.809 +$B$3$N<jK!$O<j7Z$G3n$D>e<j$/5!G=$9$k$G$7$g$&!#(B 287.810 +$B$7$+$7$J$,$i!"(B 287.811 +$B85%=!<%9$GIQHK$K99?7$5$l$kItJ,$K?($l$k$h$&$J%Q%C%A%9%?%C%/$N>l9g!"(B 287.812 +$B5Q2<$5$l$?(B hunk $B$N<jF0$G$N=$@5$O!"(B 287.813 +$B$9$0$K$G$bLLE]$J:n6H$H2=$9$G$7$g$&!#(B 287.814 + 287.815 +$B%j%Y!<%9=hM}$rItJ,E*$K<+F02=$9$k;v$O2DG=$G$9!#(B 287.816 +$B85%=!<%9$N4v$D$+$N%j%S%8%g%s$KBP$7$F$-$A$s$HE,MQ$G$-$k%Q%C%A$G$"$l$P!"(B 287.817 +$B0[$J$k%j%S%8%g%s$H%Q%C%A$H$N4V$G$N>WFM$KBP$7$F!"(B 287.818 +$B;vA0$NE,MQ>pJs$rMQ$$$?2r>C$r(B MQ $B$K$h$j9T$&$3$H$,$G$-$^$9!#(B 287.819 + 287.820 +$B<j=g$O>/!99~$_F~$C$F$$$^$9!#(B 287.821 + 287.822 +\begin{enumerate} 287.823 +\item $B3+;O$KEv$?$C$F!"(B 287.824 + $B%Q%C%A$,$-$A$s$HE,MQ$G$-$F$$$k:G>e0L%j%S%8%g%s$KBP$7$F(B 287.825 + \hgcmdargs{qpush}{-a} $B$K$h$jA4$F$N%Q%C%A$rE,MQ$7$^$9!#(B 287.826 + 287.827 +\item \hgcmdargs{qsave}{\hgxopt{mq}{qsave}{-e} \hgxopt{mq}{qsave}{-c}} 287.828 + $B$rMQ$$$F%Q%C%A%G%#%l%/%H%j$N%P%C%/%"%C%W$rJ]B8$7$^$9!#(B 287.829 + $B$3$N%3%^%s%I$N<B9T$N:]$K$O!"%Q%C%A$rJ]B8$7$?%G%#%l%/%H%j$NL>A0$rI=<($7$^$9!#(B 287.830 + \texttt{\emph{N}} $B$r>.$5$$@0?t$H$7$?>l9g!"(B 287.831 + \sdirname{.hg/patches.\emph{N}} 287.832 + $B$H$$$&7A<0$NL>A0$N%G%#%l%/%H%j$K%Q%C%A$,J]B8$5$l$^$9!#(B 287.833 + $BE,MQ$5$l$?%Q%C%A0J30$K!"(B 287.834 + ``$BJ]B8$5$l$?%A%'%s%8%;%C%H(B''$B$b%3%_%C%H$7$^$9$,!"(B 287.835 + $B$3$l$OFbItE*$J>pJs$H!"(B 287.836 + \sfilename{series} $B$*$h$S(B \sfilename{status} $B$N>uBV$r5-O?$9$k$?$a$G$9!#(B 287.837 + 287.838 +\item hgcmd{pull} $B$K$h$j!"99?7$r%j%]%8%H%j$K<h$j9~$_$^$9(B 287.839 + $B!J(B\hgcmdargs{pull}{-u} $B$rMQ$$$J$$M}M3$O!"0J9_$N5-=R$r;2>H$7$F$/$@$5$$!K!#(B 287.840 + 287.841 +\item \hgcmdargs{update}{\hgopt{update}{-C}} $B$rMQ$$$F:G?7$N(B 287.842 + tip $B%j%S%8%g%s$K99?7$9$k$3$H$G!"E,MQ$7$?%Q%C%A$rL58z$K$7$F$/$@$5$$!#(B 287.843 + 287.844 +\item \hgcmdargs{qpush}{\hgxopt{mq}{qpush}{-m} 287.845 + \hgxopt{mq}{qpush}{-a}} $B$rMQ$$$FA4$F$N%Q%C%A$r%^!<%8$7$^$9!#(B 287.846 + \hgxcmd{mq}{qpush} $B$X$N(B \hgxopt{mq}{qpush}{-m} $B%*%W%7%g%s;XDj$K$h$j!"(B 287.847 + $B%Q%C%AE,MQ$K<:GT$7$?:]$K!"(BMQ $B$O(B 3-way $B%^!<%8$r<B;\$7$^$9!#(B 287.848 + 287.849 +\end{enumerate} 287.850 + 287.851 +\hgcmdargs{qpush}{\hgxopt{mq}{qpush}{-m}} $B<B;\$N:]$K$O!"(B 287.852 +\sfilename{series} 287.853 +$B%U%!%$%k$KNs5s$5$l$?$=$l$>$l$N%Q%C%A$ODL>oDL$jE,MQ$5$l$^$9!#(B 287.854 +$B$"$$$^$$MW0x$r85$K%Q%C%A$,E,MQ$5$l$?$j!"%Q%C%A$NE,MQ$,5Q2<$5$l$?>l9g!"(B 287.855 +MQ $B$O(B \hgxcmd{mq}{qsave} $B$K$h$jJ]B8$5$l$?%Q%C%A%-%e!<$r;2>H$7!"(B 287.856 +$B%Q%C%A$KBP1~$9$k%A%'%s%8%;%C%H$rMQ$$$?(B 3-way $B%^!<%8$r9T$$$^$9!#(B 287.857 +$B$3$N%^!<%8=hM}$K$O(B Mercurial $B$NDL>o$N%^!<%85!9=$,MxMQ$5$l$^$9$N$G!"(B 287.858 +$B>WFM$N2r>C$N:]$K$O(B GUI $B%^!<%8%D!<%k$,5/F0$5$l$k$+$b$7$l$^$;$s!#(B 287.859 + 287.860 +$B%Q%C%A$N1F6A$r2r>C$7=*$($k$H!"(B 287.861 +$B%^!<%87k2L$r85$K(B MQ $B$K$h$k%Q%C%A$N(B refresh $B$,9T$o$l$^$9!#(B 287.862 + 287.863 +$B$3$N<j=g$r=*$($?%j%]%8%H%j$K$O!"(B 287.864 +$B8E$$%Q%C%A%-%e!<$KAjEv$9$k%A%'%s%8%;%C%H$r85$K$7$?M>J,$J(B head $B$H!"(B 287.865 +\sdirname{.hg/patches.\emph{N}} $B$KJ]B8$5$l$?8E$$%Q%C%A%-%e!<$,;D$j$^$9!#(B 287.866 +$BM>J,$J(B head $B$N:o=|$O!"(B 287.867 +\hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-a} \hgxopt{mq}{qpop}{-n} patches.\emph{N}} 287.868 +$B$J$$$7(B \hgcmd{strip} $B$G9T$&$3$H$,$G$-$^$9!#(B 287.869 +$B%P%C%/%"%C%W$H$7$F$NI,MW@-$,$J$/$J$C$?$J$i!"(B 287.870 +\sdirname{.hg/patches.\emph{N}} $B$b:o=|$7$F$7$^$C$F9=$$$^$;$s!#(B 287.871 + 287.872 +\section{$B%Q%C%A$N;XDj(B} 287.873 + 287.874 +$B%Q%C%A$rA`:n$9$k(B MQ $B%3%^%s%I$K$*$1$k%Q%C%A$N;XDj$O!"(B 287.875 +$B%Q%C%A$NL>A0$+?tCM$G9T$$$^$9!#(B 287.876 +$BL>A0$K$h$k;XDj$OHs>o$K$o$+$j$d$9$$$G$7$g$&!#(B 287.877 +$BNc$($P!"(B\hgxcmd{mq}{qpush} $B%3%^%s%I$X$N(B 287.878 +\filename{foo.patch} $B$N;XDj$K$h$j!"(B 287.879 +\filename{foo.patch} $B$,E,MQ$5$l$k$^$G%Q%C%A$NE,MQ$,7+$jJV$5$l$^$9!#(B 287.880 + 287.881 +$BC;=L7A<0$H$7$F!"L>A0$H?tCM%*%U%;%C%H$NN>J}$r;XDj$9$k$3$H$b$G$-$^$9!#(B 287.882 +\texttt{foo.patch-2} $B$O(B 287.883 +``\texttt{foo.patch} $B%Q%C%A$N#2$DA0(B''$B$r!"(B 287.884 +\texttt{bar.patch+4} $B$O(B 287.885 +``\texttt{bar.patch} $B%Q%C%A$N#4$D8e$m(B''$B$r0UL#$7$^$9!#(B 287.886 + 287.887 +$B?tCM$K$h$k%Q%C%A$N;XDj$O$=$l$[$IFq$7$/$"$j$^$;$s!#(B 287.888 +\hgxcmd{mq}{qseries} $B$K$h$j:G=i$KI=<($5$l$k%Q%C%A$O#0!"(B 287.889 +$B#2HVL\$O#1!"$H$J$C$F$$$^$9(B 287.890 +$B!J$=$&!"#0$+$i?t$(;O$a$k;EAH$_$G$9!K!#(B 287.891 + 287.892 +MQ $B$O!"DL>o$N(B Mercurial $B%3%^%s%I$NMxMQ;~$K$*$1$k%Q%C%AA`:n$b4JJX$K$7$^$9!#(B 287.893 +$B%A%'%s%8%;%C%H<1JL;R$r<u$1IU$1$kA4$F$N%3%^%s%I$O!"(B 287.894 +$BE,MQ:Q$_$N%Q%C%AL>$b<u$1IU$1$^$9!#(B 287.895 +$B%j%]%8%H%jCf$K85!9$"$C$?DL>o$N%?%0$K2C$($F!"(B 287.896 +$B%Q%C%AE,MQ$N:]$N5/E@$H$J$k%j%S%8%g%s$K%?%0(B\footnote{ 287.897 +\index{tags!$BFC<l%?%0L>(B!\texttt{qbase}}\texttt{qparent} 287.898 +}$B$,IUM?$5$l$^$9!#(B 287.899 +$B$=$l$K2C$($F!"(B 287.900 +\index{tags!$BFC<l%?%0L>(B!\texttt{qbase}}\texttt{qbase} $B$*$h$S(B 287.901 +\index{tags!$BFC<l%?%0L>(B!\texttt{qtip}}\texttt{qtip} $B%?%0$K$h$j!"(B 287.902 +$B:G2<0L$*$h$S:G>e0L$NE,MQ$:$_%Q%C%A$r$=$l$>$l;XDj$G$-$^$9!#(B 287.903 + 287.904 +Mercurial $B$NDL>o%?%0$KBP$9$k$3$l$i$N3HD%$O!"(B 287.905 +$B%Q%C%A$N<h$j07$$$r$h$j4JJX$K$7$^$9!#(B 287.906 + 287.907 +\begin{itemize} 287.908 + 287.909 +\item $B:G?7$N0lO"$NJQ99$r85$K!"%a!<%j%s%0%j%9%H$X%Q%C%AGzCF!J(Bpatchbomb$B!K(B 287.910 + $B$rEj9F$7$?$$>l9g$K$O!)(B 287.911 + \begin{codesample4} 287.912 + hg email qbase:qtip 287.913 + \end{codesample4} 287.914 + $B!J(B``$B%Q%C%AGzCF(B''$B$K$D$$$F$O(B \ref{sec:hgext:patchbomb} $B@a$r;2>H$7$F$/$@$5$$!K(B 287.915 + 287.916 +\item \texttt{foo.patch} $B0J9_$N%Q%C%A$G!"(B 287.917 + $BFCDj$N%G%#%l%/%H%jG[2<$N%U%!%$%k$K4XM?$7$F$$$k$b$N$r!"(B 287.918 + $BA4$FCN$j$?$$>l9g$K$O!)(B 287.919 + \begin{codesample4} 287.920 + hg log -r foo.patch:qtip \emph{subdir} 287.921 + \end{codesample4} 287.922 + 287.923 +\end{itemize} 287.924 + 287.925 +$B%Q%C%A$NL>A0$rMxMQ2DG=$K$9$k$?$a$K!"(B 287.926 +MQ $B$O(B Mercurial $B$N;}$DFbIt%?%05!G=$r;HMQ$7$F$$$k$N$G!"(B 287.927 +$B%Q%C%A$rL>A0$G;XDj$9$k>l9g$K$O!"(B 287.928 +$B$=$NL>A0$rA4$FF~NO$9$kI,MW$O$"$j$^$;$s!#(B 287.929 + 287.930 +\begin{figure}[ht] 287.931 + \interaction{mq.id.output} 287.932 + \caption{MQ $B$N%?%05!G=$r;HMQ$7$?%Q%C%A$NA`:n(B} 287.933 + \label{ex:mq:id} 287.934 +\end{figure} 287.935 + 287.936 +$B%Q%C%A$NL>A0$r%?%0$G<B8=$9$k$3$H$G!"(B 287.937 +\hgcmd{log} $B%3%^%s%I$N<B9T;~$K!"(B 287.938 +$B$=$N=PNO$N0lIt$H$7$F%?%0$H$7$F$N%Q%C%AL>$,I=<($5$l$k!"(B 287.939 +$B$H$$$&I{:nMQ$bF@$i$l$^$9!#(B 287.940 +$B$3$N$3$H$K$h$j!"(B 287.941 +$BE,MQ:Q$_$N%Q%C%A$H(B``$BDL>o$N(B''$B%j%S%8%g%s$r!"(B 287.942 +$B;k3PE*$K<1JL$9$k$3$H$rMF0W$K$7$^$9!#(B 287.943 +$BE,MQ:Q$_%Q%C%A$HO"7H$9$k(B Mercurial $B$NDL>o%3%^%s%I$N<B9TNc$r(B 287.944 +$B?^(B ~\ref{ex:mq:id} $B$K<($7$^$9!#(B 287.945 + 287.946 +\section{$BCN$C$F$*$/$HJXMx$J;vJA(B} 287.947 + 287.948 +MQ $B$NMxMQ$K4X$7$F!"FHN)$7$?@a$r@_$1$kDx$G$O$J$$$b$N$N!"(B 287.949 +$BCN$C$F$*$$$?$[$&$,NI$$;vJA$,4v$D$+$"$j$^$9!#(B 287.950 +$B$3$3$G$O!"$=$&$$$C$?;vJA$r=8$a$F$_$^$7$?!#(B 287.951 + 287.952 +\begin{itemize} 287.953 +\item \hgxcmd{mq}{qpop} $B$G%Q%C%A$r<h$j>C$7$?8e$K!"(B 287.954 + \hgxcmd{mq}{qpush} $B$G:FEYE,MQ$7$?>l9g!"(B 287.955 + $B$=$N;~E@$G$NE,MQ:Q$_%Q%C%A$KAjEv$9$k%A%'%s%8%;%C%H$O!"(B 287.956 + pop/push $B$9$kA0$N%A%'%s%8%;%C%H$H$O(B\emph{$B0[$J$k<1JL;R(B}$B$r;}$A$^$9!#(B 287.957 + $B<1JL;R$,0[$J$kM}M3$O(B ~\ref{sec:mqref:cmd:qpush} $B@a$r;2>H$7$F$/$@$5$$!#(B 287.958 + 287.959 +\item $B>/$J$/$H$b!"(B 287.960 + $B%Q%C%A%9%?%C%/>e$N%Q%C%A$K$h$k%A%'%s%8%;%C%H72$N(B 287.961 + ``$B%Q%C%A@-(B''$B$rJ]$A$?$$$N$G$"$l$P!"(B 287.962 + $BB>$N%V%i%s%A$H$=$l$i$r(B\hgcmd{$B%^!<%8(B}$B$9$Y$-$G$O$"$j$^$;$s!#(B 287.963 + \hgcmd{$B%^!<%8(B}$B$7$?>l9g!"$=$l<+BN$O@.8y$9$k$G$7$g$&$,!"(B 287.964 + $B7k2L$H$7$F(B MQ $B$,:.Mp$7$F$7$^$&$G$7$g$&!#(B 287.965 +\end{itemize} 287.966 + 287.967 +\section{$B%j%]%8%H%j$K$*$1$k%Q%C%A$N4IM}(B} 287.968 +\label{sec:mq:repo} 287.969 + 287.970 +MQ $B$,MxMQ$9$k(B \sdirname{.hg/patches} $B%G%#%l%/%H%j$,(B 287.971 +Mercurial $B$N:n6HNN0h%G%#%l%/%H%j$N30$K$"$k$?$a!"(B 287.972 +MQ $B$N(B``$B2<$K$"$k(B''Mercurial $B$N%j%]%8%H%j$O!"(B 287.973 +$B%Q%C%A$N4IM}$dB8:_$K4X$7$F2?$bG'<1$7$F$$$^$;$s!#(B 287.974 + 287.975 +$B$3$N$3$H$O!"(B 287.976 +$B%Q%C%A%G%#%l%/%H%j$NFbMF$r$=$l<+?H$N(B Mercurial $B%j%]%8%H%j$rMQ$$$F4IM}$G$-$k!"(B 287.977 +$B$H$$$&6=L#?<$$2DG=@-$r$b$?$i$7$^$9!#(B 287.978 +$BNc$($P!"(B 287.979 +$B%Q%C%A$K4X$9$k:n6H$r9T$$!"(B\hgxcmd{mq}{qrefresh} $B$r$7$?8e$G!"(B 287.980 +$B%Q%C%A$N8=>u$r(B \hgcmd{commit} $B$9$k$3$H$G!"(B 287.981 +$B8e$+$i$=$N>uBV$X$H%Q%C%A$r(B``$B4,$-La$9(B''$B!J(Broll back$B!K$9$k$3$H$,$G$-$k$J$I!"(B 287.982 +$BM-MQ$J5!G=$rDs6!$7$^$9!#(B 287.983 + 287.984 +$BJ#?t$N%j%]%8%H%j$N4V$G!"(B 287.985 +$BF10l%Q%C%A%9%?%C%/$N0[$J$kHG$r6&M-$9$k$3$H$b=PMh$^$9!#(B 287.986 +$BI.<T$O(B Linux $B%+!<%M%k5!G=$N3+H/$N:]$K$3$N<jK!$r;HMQ$7$F$$$^$9!#(B 287.987 +$BJ#?t$N(B CPU $B%"!<%-%F%/%A%c$4$H$K$=$l$>$l???7$7$$%+!<%M%k%=!<%9$N%3%T!<$rMQ0U$7!"(B 287.988 +$B$=$l$>$l$K:n6HCf$N%Q%C%A$r4^$`%j%]%8%H%j$rJ#@=$7$^$9!#(B 287.989 +$BJL$J%"!<%-%F%/%A%c$GJQ99FbMF$N;n83$r9T$&:]$K$O!"(B 287.990 +$BBP1~$9$k%+!<%M%k%=!<%9$N%Q%C%A%j%]%8%H%j$X8=;~E@$N%Q%C%A$r(B push $B$7!"(B 287.991 +$BA4$F$N%Q%C%A$r:GE,MQ!J(Bpop $B8e$K(B push$B!K$7$?8e$K!"(B 287.992 +$B$=$N%+!<%M%k$N%S%k%I$*$h$S;n83$r9T$$$^$9!#(B 287.993 + 287.994 +$B%j%]%8%H%j7A<0$N>e$G%Q%C%A$r4IM}$9$k$3$H$G!"(B 287.995 +$BE,MQBP>]$N%=!<%9$KBP$9$k@)8f$N2DH]$K4X$o$jL5$/!"(B 287.996 +$B3+H/<TF1;N$G$*8_$$$K>WFM$9$k$3$HL5$7$K!"(B 287.997 +$BF1$8%Q%C%A7ONs$KBP$9$k:n6H$r<B;\$G$-$^$9(B 287.998 + 287.999 +\subsection{MQ $B$N%Q%C%A%j%]%8%H%j%5%]!<%H(B} 287.1000 + 287.1001 +MQ $B$O(B \sdirname{.hg/patches} $B%G%#%l%/%H%j$r<+?H$N%j%]%8%H%j$H$7$F!"(B 287.1002 +$B%Q%C%AA`:n$rJd=u$7$^$9$,!"(B 287.1003 +\hgxcmd{mq}{qinit} $B$G$N=i4|2=$N:]$K(B 287.1004 +\hgxopt{mq}{qinit}{-c} $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B 287.1005 +\sdirname{.hg/patches} $B%G%#%l%/%H%j$r(B 287.1006 +Mercurial $B%j%]%8%H%j$H$7$F:n@.$9$k$3$H$,=PMh$^$9!#(B 287.1007 + 287.1008 +\begin{note} 287.1009 + \hgxopt{mq}{qinit}{-c} $B%*%W%7%g%s$N;XDj$rK:$l$?>l9g!"(B 287.1010 + $BG$0U$N;~E@$G(B \sdirname{.hg/patches} $B%G%#%l%/%H%j$G(B 287.1011 + \hgcmd{init} $B$r<B9T$7$F$/$@$5$$!#(B 287.1012 + \sfilename{status} $B$rMzNr4IM}$7$h$&$H;W$&$3$H$O(B\emph{$BK\Ev$K(B}$B$"$j$^$;$s$+$i!"(B 287.1013 + \sfilename{.hgignore} $B%U%!%$%k$K(B 287.1014 + \sfilename{status} $B$rDI2C$9$k$N$rK:$l$J$$$G$/$@$5$$(B 287.1015 + $B!J(B\hgcmdargs{qinit}{\hgxopt{mq}{qinit}{-c}} $B$O!"(B 287.1016 + $B$3$N:n6H$r<+F0E*$K9T$$$^$9!K!#(B 287.1017 +\end{note} 287.1018 + 287.1019 +$BMxJX@->e!"(B 287.1020 +\dirname{.hg/patches} $B%G%#%l%/%H%j$,(B 287.1021 +Mercurial $B%j%]%8%H%j$G$"$k>l9g!"(B 287.1022 +MQ $B$O:n@.!&<h$j9~$_$r9T$C$?%Q%C%A$NA4$F$r<+F0E*$K(B 287.1023 +\hgcmd{add} $B$7$^$9!#(B 287.1024 + 287.1025 +$B:G8e$K$J$j$^$9$,!"(B 287.1026 +MQ $B$O(B \sdirname{.hg/patches} $B$K$*$$$F(B 287.1027 +\hgcmd{commit} $B$r<B9T$9$kC;=L%3%^%s%I(B 287.1028 +\hgxcmd{mq}{qcommit} $B$rDs6!$7$F$$$^$9$N$G!"(B 287.1029 +$B!J%G%#%l%/%H%j0\F0Ey$N!KHQ$o$7$$%-!<F~NO$,>JN,$G$-$^$9!#(B 287.1030 + 287.1031 +\subsection{$B4v$D$+$NCm0UE@(B} 287.1032 + 287.1033 +MQ $B$K$h$k%Q%C%A$N%j%]%8%H%j4IM}$N%5%]!<%H$O!"8BDjE*$J$b$N$G$9!#(B 287.1034 + 287.1035 +MQ $B$O!"%Q%C%A%G%#%l%/%H%j$KBP$7$F9T$o$l$?JQ99$r!"(B 287.1036 +$B<+F0E*$K8!=P$9$k$3$H$O$G$-$^$;$s!#(B 287.1037 +\hgcmd{pull} $B$N<B9T$d!"<jF0$G$NJT=8!"(B 287.1038 +$B$"$k$$$O(B \hgcmd{update} $B$N<B9T$K$h$k%Q%C%A$d(B 287.1039 +\sfilename{series} $B$NJQ99$r9T$C$?>l9g!"(B 287.1040 +$B%Q%C%AE,MQBP>]$N%j%]%8%H%j$K$*$$$F(B 287.1041 +\hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-a}} $B$N8e$K(B 287.1042 +\hgcmdargs{qpush}{\hgxopt{mq}{qpush}{-a}} $B$r9T$C$F!"(B 287.1043 +$B$=$l$i$NJQ99$rM-8z$K$9$kI,MW$,$"$j$^$9!#(B 287.1044 +$B$3$N:n6H$rK:$l$?>l9g!"(B 287.1045 +MQ $B$OE,MQ$5$l$F$$$k%Q%C%A$,$I$l$J$N$+:.Mp$7$F$7$^$&$G$7$g$&!#(B 287.1046 + 287.1047 +\section{$B%Q%C%AA`:n$N$?$a$N%5!<%I%Q!<%F%#!<@=%D!<%k(B} 287.1048 +\label{sec:mq:tools} 287.1049 + 287.1050 +$B;C$/$N4V!"%Q%C%A$r;H$C$?:n6H$r$7$F$$$k$H!"(B 287.1051 +$B07$C$F$$$k%Q%C%A$N2r<a$dA`:n$rJd=u$9$k%D!<%k$,!"(B 287.1052 +$BM_$7$/$F$?$^$i$J$/$J$C$F$$$k$K0c$$$"$j$^$;$s!#(B 287.1053 + 287.1054 +\command{diffstat} $B%3%^%s%I(B ~\cite{web:diffstat} $B$O!"(B 287.1055 +$B%Q%C%A$K$h$C$F3F%U%!%$%k$,$I$l$@$1JQ99$5$l$k$+$rI=$9%R%9%H%0%i%`$r@8@.$7$^$9!#(B 287.1056 +$B$I$N%U%!%$%k$,!"$I$NDxEY$N1F6A$r<u$1$k$N$+!"(B 287.1057 +$B$H$$$C$?A4BNE*$J(B``$B463P$rDO$`(B''$B$K$ONI$$J}K!$G$9(B 287.1058 +$B!J(B\command{diffstat} $B$N(B 287.1059 +\cmdopt{diffstat}{-p} $B%*%W%7%g%sMxMQ$OL^O@NI$$$N$G$9$,!"(B 287.1060 +$B%U%!%$%kL>$NA0CV;l$KBP$7$F9T$&(B \cmdopt{diffstat}{-p} $B%*%W%7%g%s$N9*L/$J=hM}$O!"(B 287.1061 +$B>/$J$/$H$bI.<T$K$H$C$F$O$o$+$j$K$/$$$G$9!K!#(B 287.1062 + 287.1063 +\begin{figure}[ht] 287.1064 + \interaction{mq.tools.tools} 287.1065 + \label{ex:mq:tools} 287.1066 + \caption{\command{diffstat}$B!"(B\command{filterdiff} $B$*$h$S(B \command{lsdiff} $B%3%^%s%I(B} 287.1067 +\end{figure} 287.1068 + 287.1069 +\package{patchutils} $B%Q%C%1!<%8(B ~\cite{web:patchutils} $B$O5.=E$JB8:_$G$9!#(B 287.1070 +$B$3$N%Q%C%1!<%8$O!"(B 287.1071 +``Unix $B$NM}G0(B''$B$K=>$C$F!"(B 287.1072 +$B$=$l$>$l$,%Q%C%A$KBP$7$FC10l$N=hM}$r9T$&>.$5$J%D!<%k$N=8$^$j$G$9!#(B 287.1073 +\package{patchutils} $B$NCf$GI.<T$,:G$bMxMQ$7$F$$$k$N$O!"(B 287.1074 +$B%Q%C%A%U%!%$%k$+$i0lIt$rE83+$9$k(B \command{filterdiff} $B$G$9!#(B 287.1075 +$BNc$($P!"(B 287.1076 +$B$"$k%Q%C%A$,?t%@!<%9$N%G%#%l%/%H%j$KEO$C$F?tI4$N%U%!%$%k$rJQ99$9$k>l9g!"(B 287.1077 +\command{filterdiff} $B$r5/F0$9$k$3$H$G!"(B 287.1078 +$B;XDj$7$?%Q%?!<%s$KL>A0$,9gCW$9$k%U%!%$%k$K$@$1JQ99$r9T$&!"(B 287.1079 +$B>.$5$J%Q%C%A$r@8@.$9$k$3$H$,=PMh$^$9!#(B 287.1080 +$B$=$l0J30$NNc$K$D$$$F$O!"(B 287.1081 +~\ref{mq-collab:tips:interdiff} $B@a$r;2>H$7$F$/$@$5$$!#(B 287.1082 + 287.1083 +\section{$B%Q%C%A$r07$&NI$$J}K!(B} 287.1084 + 287.1085 +$B0lO"$N%Q%C%A$,!"(B 287.1086 +$B%U%j!<%=%U%H%&%'%"$d%*!<%W%s%=!<%9%W%m%8%'%/%H$XAwIU$9$k$b$N$G$"$m$&$H!"(B 287.1087 +$B$"$J$?$N:n6H$K$*$1$kDj4|E*$JJQ99<jB3$-$H$_$J$5$l$k$b$N$G$"$m$&$H$b!"(B 287.1088 +$B$h$jNI$/:n6H$9$k$?$a$N!"(B 287.1089 +$B4JC1$KMxMQ$G$-$k<jK!$,$"$j$^$9!#(B 287.1090 + 287.1091 +$B$^$:$O!"%Q%C%A$K@bL@E*$JL>A0$r$D$1$^$7$g$&!#(B 287.1092 +$BNc$($P(B \filename{rework-device-alloc.patch} $B$H$$$C$?L>A0$O!"(B 287.1093 +$B$=$N%Q%C%A$,2?$r9T$&$b$N$+$H$$$&%R%s%H$r$9$P$d$/M?$($F$/$l$k$N$G!"(B 287.1094 +$BNI$$L>A0$H8@$($k$G$7$g$&!#(B 287.1095 +$BL>A0$OD9$/$F$bLdBj$K$O$J$j$^$;$s!#(B 287.1096 +$BL>A0$rF~NO$9$k$3$H$O$=$l$[$IB?$/$O$J$$$G$7$g$&$,!"(B 287.1097 +\hgxcmd{mq}{qapplied} $B$d(B \hgxcmd{mq}{qtop} $B$H$$$C$?%3%^%s%I$O!"(B 287.1098 +$B2?EY$b2?EY$b<B9T$9$k$b$N$G$9$+$i!#(B 287.1099 +$BB?$/$N%Q%C%A$r07$&>l9g$d!"(B 287.1100 +$BB?$/$N0[$J$k%?%9%/$K<j0lGU$G%Q%C%A$KB?$/$NCm0U$r3d$1$J$$$h$&$J>l9g!"(B 287.1101 +$BL>A0$NE,@Z$5$O$H$j$o$1=EMW$G$9!#(B 287.1102 + 287.1103 +$B<!$K!"$I$N%Q%C%A$KBP$7$F:n6H$7$F$$$k$N$+$KCm0U$7$^$7$g$&!#(B 287.1104 +\hgxcmd{mq}{qtop} $B%3%^%s%I$r(B 287.1105 +---$BNc$($P!"(B\hgcmdargs{tip}{\hgopt{tip}{-p}} $B$r;XDj$7$D$D(B--- 287.1106 +$B;HMQ$7$FIQHK$K%Q%C%A$NL>A0$r8+$k$3$H$G!"(B 287.1107 +$B$I$s$J:n6H$r$7$F$$$k$N$+$r3NG'$7$^$7$g$&!#(B 287.1108 +$BI.<T$O:n6HCf$K2?EY$b0U?^$7$J$$%Q%C%A$KBP$7$F(B 287.1109 +\hgxcmd{mq}{qrefresh} $B$r<B9T$7$F$7$^$C$?$3$H$,$"$j$^$9$,!"(B 287.1110 +$B4V0c$C$?%Q%C%A$K<h$j9~$s$G$7$^$C$?JQ99$r@5$7$$%Q%C%A$K0\F0$5$;$k$N$O!"(B 287.1111 +$B1}!9$K$7$F<j$N$+$+$k$b$N$G$9!#(B 287.1112 + 287.1113 +$B>e5-$NM}M3$+$i!"(B 287.1114 +~\ref{sec:mq:tools} $B@a$G>R2p$7$F$$$k(B 287.1115 +\command{diffstat} $B$d(B \command{filterdiff} 287.1116 +$B$N$h$&$J%5!<%I%Q!<%F%#!<@=%D!<%k$N3X=,$K!"(B 287.1117 +$B>/$7$G$bNI$$$N$G;~4V$rHq$d$9$Y$-$G$9!#(B 287.1118 +$BA0<T$O%Q%C%A$N5Z$\$9JQ99$K4X$7$F$9$P$d$$8+2r$rF@$k$3$H$,!"(B 287.1119 +$B8e<T$O%Q%C%ACf$N(B hunk 287.1120 +$B$rA*BrE*$K7Q$.9g$o$;$F0[$J$k%Q%C%A$KAH$_>e$2$k$3$H$,$G$-$^$9!#(B 287.1121 + 287.1122 +\section{MQ $B%/%C%/%V%C%/(B} 287.1123 + 287.1124 +\subsection{``$B:3:Y$J(B''$B%Q%C%A$N4IM}(B} 287.1125 + 287.1126 +$B???7$7$$(B Mercurial $B%j%]%8%H%j$K%U%!%$%k$rEjF~$9$k$N$O!"(B 287.1127 +$BHs>o$K%*!<%P!<%X%C%I$,Dc$$$N$G!"(B 287.1128 +$BC1$K%@%&%s%m!<%I$7$?%=!<%9(B tarball $B$KBP$7$FJQ99$r2C$($k$N$@$H$7$F$b!"(B 287.1129 +MQ $B$K$h$j%Q%C%A4IM}$r9T$&$3$H$OHs>o$KM}$K$+$J$C$F$$$^$9!#(B 287.1130 + 287.1131 +$B$^$:$O%=!<%9(B tarball $B$N%@%&%s%m!<%I$HE83+$r9T$$!"(B 287.1132 +Mercurial $B%j%]%8%H%j$KEjF~$7$^$9!#(B 287.1133 + 287.1134 +\interaction{mq.tarball.download} 287.1135 + 287.1136 +$B<!$K%Q%C%A%9%?%C%/$r:n@.$7!"JQ99$r9T$$$^$9!#(B 287.1137 + 287.1138 +\interaction{mq.tarball.qinit} 287.1139 + 287.1140 +$B?t=54V$+$i?t%u7n7P$C$F$+$i!"(B 287.1141 +$B$=$N%Q%C%1!<%8$NCx<T$,?7$7$$HG$r%j%j!<%9$7$?$H$7$^$9!#(B 287.1142 +$B$^$:$O%j%]%8%H%j$KJQ99$r<h$j9~$_$^$9!#(B 287.1143 + 287.1144 +\interaction{mq.tarball.newsource} 287.1145 + 287.1146 +$B>e5-<j=g$G(B \hgcmd{locate} $B$K$h$j;O$^$k%Q%$%W%i%$%s$O!"(B 287.1147 +$B:n6HNN0h%G%#%l%/%H%jCf$NA4$F$N%U%!%$%k$r:o=|$7$^$9$N$G!"(B 287.1148 +\hgcmd{commit} $B$N(B \hgopt{commit}{--addremove} $B%*%W%7%g%s$O!"(B 287.1149 +$B?7$7$$HG$K$*$$$F$I$N%U%!%$%k$,K\Ev$KDI2C!?:o=|$5$l$?$N$+$rH=Dj$G$-$^$9!#(B 287.1150 + 287.1151 +$B:G8e$K!"?7$7$/$J$C$?%=!<%9%D%j!<$N:G>e0L$G%Q%C%A$rE,MQ$7$^$9!#(B 287.1152 + 287.1153 +\interaction{mq.tarball.repush} 287.1154 + 287.1155 +\subsection{$B%Q%C%AA4BN$N7k9g(B} 287.1156 +\label{sec:mq:combine} 287.1157 + 287.1158 +MQ $B$O%Q%C%AA4BN$r7k9g$9$k(B 287.1159 +\hgxcmd{mq}{qfold} $B%3%^%s%I$rDs6!$7$F$$$^$9!#(B 287.1160 +$B$3$N%3%^%s%I$O!"(B 287.1161 +$BL>A0$r;XDj$7$?%Q%C%A$r;XDj$7$?=g=x$G!"(B 287.1162 +$B:G>e0L$NE,MQ:Q$_%Q%C%A$X$H(B``$B7k9g(B''$B$7!"(B 287.1163 +$B$=$l$i$N@bL@J8$r:G>e0L%Q%C%A$N@bL@J8KvHx$XDI2C$7$^$9!#(B 287.1164 +$B7k9gBP>]$N%Q%C%A$O!"7k9g$N;~E@$GL$E,MQ$G$J$1$l$P$J$j$^$;$s!#(B 287.1165 + 287.1166 +$B%Q%C%A$N7k9g=g=x$O=EMW$G$9!#(B 287.1167 +$B:G>e0L$NE,MQ:Q$_%Q%C%A$,(B \texttt{foo} $B$G!"(B 287.1168 +$B$=$3$K(B \hgxcmd{mq}{qfold} $B$H(B \texttt{quux} $B$r(B 287.1169 +\hgxcmd{mq}{qfold} $B$9$k>l9g!"(B 287.1170 +$B=g$K(B \texttt{foo}$B!"(B\texttt{bar} $B$=$7$F(B \texttt{quux} 287.1171 +$B$HE,MQ$9$k$N$HF1$88z2L$r;}$D%Q%C%A$,$G$-$"$,$j$^$9!#(B 287.1172 + 287.1173 +\subsection{$B%Q%C%A$N0lIt$NB>$N%Q%C%A$X$NJ;9g(B} 287.1174 + 287.1175 +$B%Q%C%A$N(B\emph{$B0lIt(B}$B$rB>$N%Q%C$XJ;9g$9$k$N$O!"(B 287.1176 +$B%Q%C%AA4BN$r7k9g$9$k$h$j$bLLE]$G$9!#(B 287.1177 + 287.1178 +$B$"$k%U%!%$%k!J72!K$KBP$9$kJQ99A4BN$r0\F0$7$?$$>l9g!"(B 287.1179 +\command{filterdiff} $B$N(B \cmdopt{filterdiff}{-i} $B$*$h$S(B 287.1180 +\cmdopt{filterdiff}{-x} $B%*%W%7%g%s$rMQ$$$k$3$H$G!"(B 287.1181 +$B%Q%C%A$+$i@Z$j=P$9JQ99E@$rA*Br$7$F!"(B 287.1182 +$B$=$N7k2L$rJ;9g@h%Q%C%A$X$H<h$j9~$`$3$H$G$,$G$-$^$9!#(B 287.1183 +$BDL>o$O<h$j9~$_85$H$J$C$?%Q%C%A$=$N$b$N$OJQ99$7$?$/$J$$$b$N$G$9!#(B 287.1184 +$B$=$3$G!"(B 287.1185 +MQ $B$O<h$j9~$_85%Q%C%A$r(B \hgxcmd{mq}{qpush} $B$9$k:]$K!"(B 287.1186 +$B<h$j9~$^$l$?J,$N(B hunk $B$,5qH]$5$l$?$3$H$,Js9p$5$l$^$9$+$i!"(B 287.1187 +\hgxcmd{mq}{qrefresh} $B$G%Q%C%A$r99?7$9$k$3$H$G!"(B 287.1188 +$B=EJ#$7$?(B hunk $B$r<h$j=|$/$3$H$,$G$-$^$9!#(B 287.1189 + 287.1190 +$B#1$D$N%U%!%$%k$KBP$9$kJ#?t$N(B hunk $B$r;}$D%Q%C%A$N0lIt$@$1$,M_$7$$>l9g!"(B 287.1191 +$B;vBV$O$b$&>/$7Lq2p$G$9$,!"(B 287.1192 +$B$=$l$G$bItJ,E*$K<+F02=$9$k$3$H$,$G$-$^$9!#(B 287.1193 +\cmdargs{lsdiff}{-nvv} $B$r;H$&$3$H$G!"(B 287.1194 +$B%Q%C%A$K4X$9$k%a%?%G!<%?$rI=<($5$;$^$9!#(B 287.1195 + 287.1196 +\interaction{mq.tools.lsdiff} 287.1197 + 287.1198 +$B$3$N%3%^%s%I$O!"#3$D$N0[$J$k?tCM$NN`$rI=<($7$^$9!#(B 287.1199 + 287.1200 +\begin{itemize} 287.1201 +\item $B!J:G=i$N%+%i%`$O!K2~JQBP>]$N8D!9$N%U%!%$%k$r%Q%C%ACf$G<1JL$9$k$?$a$N(B 287.1202 + \emph{$B%U%!%$%kHV9f(B}$B$G!"(B 287.1203 + 287.1204 +\item $B!J;z2<$2$5$l$?<!$N9T$K$O!KJQ99$5$l$k%U%!%$%k$G$N(B hunk $B$N3+;O9THV9f$H!"(B 287.1205 + 287.1206 +\item $B!JF1$89T$K!K(Bhunk $B$r<1JL$9$k$?$a$N(B \emph{hunk $BHV9f(B} 287.1207 + 287.1208 +\end{itemize} 287.1209 + 287.1210 +$BI,MW$J%U%!%$%kHV9f$d(B hunk $BHV9f$rFCDj$9$k$?$a$K$O!"(B 287.1211 +$B;k3PE*$J@:::$d%Q%C%A$NFI2r$,I,MW$H$5$l$^$9$,!"(B 287.1212 +$B$=$l$i$N?tCM$r(B \command{filterdiff} $B$N(B 287.1213 +\cmdopt{filterdiff}{--files} $B$d(B 287.1214 +\cmdopt{filterdiff}{--hunks} $B$H$$$C$?%*%W%7%g%s$K;XDj$9$k$3$H$G!"(B 287.1215 +$B%U%!%$%k$d(B hunk $B$r@53N$KA*Br$9$k$3$H$,$G$-$^$9!#(B 287.1216 + 287.1217 +$B0lEY(B hunk $B$r<h$j=P$7$F$7$^$($P!"(B 287.1218 +$B7k9g@h%Q%C%A$NKvHx$K7k9g$7$F(B 287.1219 +~\ref{sec:mq:combine} $B@a$N;D$j$N:n6H$r:F3+$9$k$3$H$,$G$-$^$9!#(B 287.1220 + 287.1221 +\section{quilt $B$H(B MQ $B$N0c$$(B} 287.1222 + 287.1223 +$B4{$K(B quilt $B$r=OCN$7$F$$$k$N$G$"$l$P!"(B 287.1224 +MQ $B$OF1MM$N%3%^%s%I72$r;}$C$F$$$^$9$,!"(B 287.1225 +$B$=$NF/$-$K$O$$$/$i$+$N0c$$$,$"$j$^$9!#(B 287.1226 + 287.1227 +$BKX$I$N(B quilt $B%3%^%s%I$KBP$7$F!"(B 287.1228 +``\texttt{q}'' $B$G;O$^$kBP1~$9$k(B 287.1229 +MQ $B$N%3%^%s%I$,$"$k$3$H$K5$IU$/$3$H$G$7$g$&!#(B 287.1230 +$BC"$7!"(B 287.1231 +quilt $B$N(B \texttt{add} $B$*$h$S(B \texttt{remove} $B%3%^%s%I$KBP1~$9$k$N$,!"(B 287.1232 +Mercurial $B$NDL>o$N(B \hgcmd{add} $B$*$h$S(B \hgcmd{remove} $B$G$"$k$N$,Nc30$G$9!#(B 287.1233 +$B$^$?!"(BMQ $B$K$O(B quilt $B$N(B \texttt{edit} $B$KBP1~$9$k%3%^%s%I$O$"$j$^$;$s!#(B 287.1234 + 287.1235 +%%% Local Variables: 287.1236 +%%% mode: latex 287.1237 +%%% TeX-master: "00book" 287.1238 +%%% End:
288.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 288.2 +++ b/ja/preface.tex Fri Aug 14 12:10:47 2009 -0700 288.3 @@ -0,0 +1,86 @@ 288.4 +\chapter*{Preface} 288.5 +\addcontentsline{toc}{chapter}{Preface} 288.6 +\label{chap:preface} 288.7 + 288.8 +$BJ,;69=@.4IM}$O!"Hf3SE*?7$7$$NN0h$G$"$j!"(B 288.9 +$BL$3+$NCO$r@Z$j3+$3$&$H$9$k?M!9$N0UM_$K$h$C$F!"(B 288.10 +$BH/E8Cx$7$$$b$N$,$"$j$^$9!#(B 288.11 + 288.12 +$B;d$,J,;69=@.4IM}$K4X$7$FI.$r<9$C$F$$$k$N$O!"(B 288.13 +$B$3$NJ,Ln$,<j0z$-=q$r=q$/2ACM$N$"$k=EMW$J%F!<%^$G$"$k$H$$$&3N?.$+$i$G$9!#(B 288.14 +$B<9I.$NBj:`$H$7$F(B Mercurial $B$rA*Br$7$?$N$O!"(B 288.15 +$BJ,;69=@.4IM}$N35MW$r3X=,$9$k$N$KE,$7$?MF0W$5$H!"(B 288.16 +$BB>$NB?$/$N9=@.4IM}%D!<%k$G$OE,MQ$NFq$7$$<BA)$N>l$+$i$NMWK>$X$NE,MQ@-$N!"(B 288.17 +$B#2$D$rJ;$;;}$C$F$$$k$?$a$G$9!#(B 288.18 + 288.19 +\section{This book is a work in progress} 288.20 + 288.21 +$BK\=q$O!"(B 288.22 +$BFI<T$NLr$KN)$D$3$H$r4j$C$F!"(B 288.23 +$B<9I.ESCf$+$i8x3+$7$F$$$^$9!#(B 288.24 +$B$=$N0lJ}$G!"(B 288.25 +$BFI<T$,K\=q$rMxMQ$9$k$3$H$,!"(B 288.26 +$B0l<o$N::FI$H$7$F5!G=$9$k$3$H$b4|BT$7$F$$$^$9!#(B 288.27 + 288.28 +\section{About the examples in this book} 288.29 +\label{sec:automated-example-running} 288.30 + 288.31 +$BK\=q$G$O!"(B 288.32 +$B%3!<%I$N%5%s%W%k$K4X$7$F!"(B 288.33 +$BDLNc$H$O0[$J$k<jK!$r:NMQ$7$F$$$^$9!#(B 288.34 +$BA4$F$N%5%s%W%k$O(B``$B@8$-$?(B''--- 288.35 +$B%7%'%k%9%/%j%W%H$K$h$j<B:]$K(B 288.36 +Mercurial $B%3%^%s%I$r<B9T$7$?7k2L$r;HMQ$7$?(B 288.37 +---$B%5%s%W%k$G$9!#(B 288.38 +$BK\=q$O>o$K%=!<%9%U%!%$%k$+$i!V%S%k%I!W$5$l!"(B 288.39 +$BA4$F$N%5%s%W%k%9%/%j%W%H$N<+F0<B9T$H!"(B 288.40 +$B$=$N7k2L$H4|BT$9$k7k2L$H$NHf3S$,9T$o$l$^$9!#(B 288.41 + 288.42 +$B$3$N<jK!$NMxE@$O!"(B 288.43 +$BK\=q$,KAF,$G8@5Z$7$F$$$k(B 288.44 +Mercurial $B$NHG$K$*$1$k?6$kIq$$$r(B\emph{$B87L)$K(B}$B5-=R$7$F$$$k$3$H$K$J$k$?$a!"(B 288.45 +$B%5%s%W%k$,>o$K@53N$G$"$kE@$K$"$j$^$9!#(B 288.46 +$B<9I.BP>]$H$J$k(B Mercurial $B$NHG$rJQ99$7!"(B 288.47 +$B$=$N7k2L%3%^%s%I$N=PNO$,JQ2=$7$?>l9g!"(B 288.48 +$BK\=q$N%S%k%I$O<:GT$7$^$9!#(B 288.49 + 288.50 +$B$3$N<jK!$N$o$:$+$J7gE@$O!"(B 288.51 +$B%5%s%W%k$K$*$$$FL\$K$9$kF|;~>pJs$,!"(B 288.52 +$BF1$8%3%^%s%I$r?M<j$GF~NO$7$?:]$H$O0[$J$kJ}K!$G!"(B 288.53 +``$B2!$7DY$5$l(B''$B$,$A$JE@$G$9!#(B 288.54 +$BJ#?t$N%3%^%s%I$rKhICF~NO$7B3$1$k$N$O?M<j$G$OL5M}$G$9$,!"(B 288.55 +$BNc<($5$l$F$$$k<B9T7k2L$NF|;~>pJs$K$h$l$P!"(B 288.56 +$BK\=q$N%S%k%I$K;HMQ$5$l$k<+F02=%9%/%j%W%H$O!"(B 288.57 +$B#1IC4V$K<B$KB?$/$N%3%^%s%I$r<B9T$7$F$$$^$9!#(B 288.58 + 288.59 +$B$3$N$?$a!"(B 288.60 +$BK\=q$N%5%s%W%k$K$*$1$kO"B3$7$?J#?t2s$N%3%_%C%H$O!"(B 288.61 +$B$^$k$GF10l;~9o$K5/$-$?$3$H$N$h$&$K8+$($^$9!#(B 288.62 +$B$3$N8=>]$O(B 288.63 +\ref{sec:undo:bisect}~$B@a$K$*$1$k(B 288.64 +\hgext{bisect} $B$NNc$K8+$k$3$H$,$G$-$^$9!#(B 288.65 + 288.66 +$B0J>e$N$3$H$+$i!"(B 288.67 +$BK\=q$N%5%s%W%k$r8+$k:]$K$O!"(B 288.68 +$B%3%^%s%I$N=PNO$K$*$1$kF|;~>pJs$K!"(B 288.69 +$BI,MW0J>e$NCm0U$rJ'$o$J$$$h$&$K$7$F$/$@$5$$!#(B 288.70 +$B$=$NBe$o$j!"(B 288.71 +$B%5%s%W%k$K$*$$$FL\$K$9$k5sF0$d!"$=$N:F8=@-$K4X$7$F$O!"(B 288.72 +\emph{$B3N?.(B}$B$r;}$C$F$$$?$@$$$F9=$$$^$;$s!#(B 288.73 + 288.74 +\section{Colophon---this book is Free} 288.75 + 288.76 +$BK\=q$O(B 288.77 +Open Publication License $B2<$K$*$1$kMxMQ$r5v2D$7!"(B 288.78 +$B$b$C$Q$i(B Free Software $B%D!<%k$r;HMQ$7$F@8@.$5$l$^$9!#(B 288.79 +$BAHHG$K$O(B \LaTeX{}$B!"(B 288.80 +$B?^HG$K$O(B \href{http://www.inkscape.org/}{Inkscape} $B$r;HMQ$7$F$$$^$9!#(B 288.81 + 288.82 +$BK\=q$NA4%=!<%9%3!<%I$O!"(B 288.83 +\url{http://hg.serpentine.com/mercurial/book} 288.84 +$B$K$"$k(B Mercurial $B%j%]%8%H%j$G8x3+$5$l$F$$$^$9!#(B 288.85 + 288.86 +%%% Local Variables: 288.87 +%%% mode: latex 288.88 +%%% TeX-master: "00book" 288.89 +%%% End:
289.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 289.2 +++ b/ja/revlog.svg Fri Aug 14 12:10:47 2009 -0700 289.3 @@ -0,0 +1,1155 @@ 289.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 289.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 289.6 +<svg 289.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 289.8 + xmlns:cc="http://web.resource.org/cc/" 289.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 289.10 + xmlns:svg="http://www.w3.org/2000/svg" 289.11 + xmlns="http://www.w3.org/2000/svg" 289.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 289.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 289.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 289.15 + width="744.09448819" 289.16 + height="1052.3622047" 289.17 + id="svg2" 289.18 + sodipodi:version="0.32" 289.19 + inkscape:version="0.44.1" 289.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 289.21 + sodipodi:docname="revlog.svg"> 289.22 + <defs 289.23 + id="defs4"> 289.24 + <marker 289.25 + inkscape:stockid="Arrow1Mend" 289.26 + orient="auto" 289.27 + refY="0.0" 289.28 + refX="0.0" 289.29 + id="Arrow1Mend" 289.30 + style="overflow:visible;"> 289.31 + <path 289.32 + id="path4852" 289.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 289.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 289.35 + transform="scale(0.4) rotate(180) translate(10,0)" /> 289.36 + </marker> 289.37 + <linearGradient 289.38 + id="linearGradient3092"> 289.39 + <stop 289.40 + style="stop-color:#44436f;stop-opacity:1;" 289.41 + offset="0" 289.42 + id="stop3094" /> 289.43 + <stop 289.44 + style="stop-color:#abade5;stop-opacity:1;" 289.45 + offset="1" 289.46 + id="stop3096" /> 289.47 + </linearGradient> 289.48 + <linearGradient 289.49 + inkscape:collect="always" 289.50 + xlink:href="#linearGradient3092" 289.51 + id="linearGradient3118" 289.52 + gradientUnits="userSpaceOnUse" 289.53 + x1="176.16635" 289.54 + y1="405.21934" 289.55 + x2="417.11935" 289.56 + y2="405.21934" /> 289.57 + <linearGradient 289.58 + inkscape:collect="always" 289.59 + xlink:href="#linearGradient3092" 289.60 + id="linearGradient3120" 289.61 + gradientUnits="userSpaceOnUse" 289.62 + x1="176.16635" 289.63 + y1="405.21934" 289.64 + x2="417.11935" 289.65 + y2="405.21934" /> 289.66 + <linearGradient 289.67 + inkscape:collect="always" 289.68 + xlink:href="#linearGradient3092" 289.69 + id="linearGradient3129" 289.70 + gradientUnits="userSpaceOnUse" 289.71 + x1="176.16635" 289.72 + y1="405.21934" 289.73 + x2="417.11935" 289.74 + y2="405.21934" 289.75 + gradientTransform="translate(-0.928574,-1.428574)" /> 289.76 + <linearGradient 289.77 + inkscape:collect="always" 289.78 + xlink:href="#linearGradient3092" 289.79 + id="linearGradient3133" 289.80 + gradientUnits="userSpaceOnUse" 289.81 + x1="176.16635" 289.82 + y1="405.21934" 289.83 + x2="417.11935" 289.84 + y2="405.21934" 289.85 + gradientTransform="translate(-0.928574,-1.428574)" /> 289.86 + <linearGradient 289.87 + inkscape:collect="always" 289.88 + xlink:href="#linearGradient3092" 289.89 + id="linearGradient3708" 289.90 + gradientUnits="userSpaceOnUse" 289.91 + gradientTransform="matrix(0.423343,0,0,0.423343,138.874,-67.01732)" 289.92 + x1="175.23776" 289.93 + y1="509.98154" 289.94 + x2="416.29077" 289.95 + y2="297.49997" /> 289.96 + <linearGradient 289.97 + inkscape:collect="always" 289.98 + xlink:href="#linearGradient3092" 289.99 + id="linearGradient5164" 289.100 + gradientUnits="userSpaceOnUse" 289.101 + gradientTransform="matrix(0.423343,0,0,0.423343,198.249,247.4358)" 289.102 + x1="175.23776" 289.103 + y1="509.98154" 289.104 + x2="416.29077" 289.105 + y2="297.49997" /> 289.106 + <linearGradient 289.107 + inkscape:collect="always" 289.108 + xlink:href="#linearGradient3092" 289.109 + id="linearGradient5584" 289.110 + gradientUnits="userSpaceOnUse" 289.111 + gradientTransform="matrix(0.423343,0,0,0.423343,143.9081,371.2915)" 289.112 + x1="175.23776" 289.113 + y1="509.98154" 289.114 + x2="416.29077" 289.115 + y2="297.49997" /> 289.116 + <linearGradient 289.117 + inkscape:collect="always" 289.118 + xlink:href="#linearGradient3092" 289.119 + id="linearGradient5784" 289.120 + gradientUnits="userSpaceOnUse" 289.121 + gradientTransform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 289.122 + x1="175.23776" 289.123 + y1="509.98154" 289.124 + x2="416.29077" 289.125 + y2="297.49997" /> 289.126 + <linearGradient 289.127 + inkscape:collect="always" 289.128 + xlink:href="#linearGradient3092" 289.129 + id="linearGradient5786" 289.130 + gradientUnits="userSpaceOnUse" 289.131 + gradientTransform="matrix(0.423343,0,0,0.423343,198.249,152.137)" 289.132 + x1="175.23776" 289.133 + y1="509.98154" 289.134 + x2="416.29077" 289.135 + y2="297.49997" /> 289.136 + <linearGradient 289.137 + inkscape:collect="always" 289.138 + xlink:href="#linearGradient3092" 289.139 + id="linearGradient5895" 289.140 + gradientUnits="userSpaceOnUse" 289.141 + gradientTransform="matrix(0.423343,0,0,0.423343,198.0215,261.7142)" 289.142 + x1="175.23776" 289.143 + y1="509.98154" 289.144 + x2="416.29077" 289.145 + y2="297.49997" /> 289.146 + <linearGradient 289.147 + inkscape:collect="always" 289.148 + xlink:href="#linearGradient3092" 289.149 + id="linearGradient5958" 289.150 + gradientUnits="userSpaceOnUse" 289.151 + gradientTransform="matrix(0.423343,0,0,0.423343,137.1978,42.55987)" 289.152 + x1="175.23776" 289.153 + y1="509.98154" 289.154 + x2="416.29077" 289.155 + y2="297.49997" /> 289.156 + </defs> 289.157 + <sodipodi:namedview 289.158 + id="base" 289.159 + pagecolor="#ffffff" 289.160 + bordercolor="#666666" 289.161 + borderopacity="1.0" 289.162 + gridtolerance="10000" 289.163 + guidetolerance="10" 289.164 + objecttolerance="10" 289.165 + inkscape:pageopacity="0.0" 289.166 + inkscape:pageshadow="2" 289.167 + inkscape:zoom="0.64" 289.168 + inkscape:cx="566.02368" 289.169 + inkscape:cy="688.16826" 289.170 + inkscape:document-units="px" 289.171 + inkscape:current-layer="layer1" 289.172 + inkscape:window-width="906" 289.173 + inkscape:window-height="620" 289.174 + inkscape:window-x="29" 289.175 + inkscape:window-y="79" 289.176 + inkscape:connector-spacing="11" /> 289.177 + <metadata 289.178 + id="metadata7"> 289.179 + <rdf:RDF> 289.180 + <cc:Work 289.181 + rdf:about=""> 289.182 + <dc:format>image/svg+xml</dc:format> 289.183 + <dc:type 289.184 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 289.185 + </cc:Work> 289.186 + </rdf:RDF> 289.187 + </metadata> 289.188 + <g 289.189 + inkscape:label="Layer 1" 289.190 + inkscape:groupmode="layer" 289.191 + id="layer1"> 289.192 + <rect 289.193 + y="168.74846" 289.194 + x="211.58516" 289.195 + height="89.506805" 289.196 + width="101.60232" 289.197 + id="rect3068" 289.198 + style="fill:url(#linearGradient5958);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.199 + <g 289.200 + id="g3215" 289.201 + transform="matrix(0.423343,0,0,0.423343,137.1977,42.55985)"> 289.202 + <rect 289.203 + y="447.71451" 289.204 + x="299.67859" 289.205 + height="48.571426" 289.206 + width="103.14286" 289.207 + id="rect2899" 289.208 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.209 + <text 289.210 + id="text2903" 289.211 + y="464.8139" 289.212 + x="308.89639" 289.213 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.214 + xml:space="preserve"><tspan 289.215 + y="464.8139" 289.216 + x="308.89639" 289.217 + sodipodi:role="line" 289.218 + id="tspan2905">Second parent</tspan></text> 289.219 + <text 289.220 + id="text2907" 289.221 + y="485.50256" 289.222 + x="308.20175" 289.223 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.224 + xml:space="preserve"><tspan 289.225 + style="font-family:Courier" 289.226 + y="485.50256" 289.227 + x="308.20175" 289.228 + id="tspan2909" 289.229 + sodipodi:role="line">32bf9a5f22c0</tspan></text> 289.230 + </g> 289.231 + <g 289.232 + id="g3250" 289.233 + transform="matrix(0.423343,0,0,0.423343,137.1977,42.55986)"> 289.234 + <rect 289.235 + y="311.28598" 289.236 + x="188.6071" 289.237 + height="48.571426" 289.238 + width="103.14286" 289.239 + id="rect2936" 289.240 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.241 + <text 289.242 + id="text2940" 289.243 + y="328.38538" 289.244 + x="197.82495" 289.245 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.246 + xml:space="preserve"><tspan 289.247 + y="328.38538" 289.248 + x="197.82495" 289.249 + sodipodi:role="line" 289.250 + id="tspan2942">Revision hash</tspan></text> 289.251 + <text 289.252 + id="text2944" 289.253 + y="349.07404" 289.254 + x="197.13031" 289.255 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.256 + xml:space="preserve"><tspan 289.257 + style="font-family:Courier" 289.258 + y="349.07404" 289.259 + x="197.13031" 289.260 + id="tspan2946" 289.261 + sodipodi:role="line">34b8b7a15ea1</tspan></text> 289.262 + </g> 289.263 + <g 289.264 + id="g3243" 289.265 + transform="matrix(0.423343,0,0,0.423343,137.6664,43.91853)"> 289.266 + <rect 289.267 + y="363.07654" 289.268 + x="187.5" 289.269 + height="75" 289.270 + width="213.85715" 289.271 + id="rect2950" 289.272 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.273 + <text 289.274 + id="text2958" 289.275 + y="400.86459" 289.276 + x="196.02321" 289.277 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.278 + xml:space="preserve"><tspan 289.279 + style="fill:black;fill-opacity:1;font-family:Courier" 289.280 + y="400.86459" 289.281 + x="196.02321" 289.282 + id="tspan2960" 289.283 + sodipodi:role="line">...</tspan></text> 289.284 + <text 289.285 + id="text2954" 289.286 + y="380.17593" 289.287 + x="196.71785" 289.288 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.289 + xml:space="preserve"><tspan 289.290 + y="380.17593" 289.291 + x="196.71785" 289.292 + sodipodi:role="line" 289.293 + id="tspan2956" 289.294 + style="fill:black;fill-opacity:1">Revision data (delta or snapshot)</tspan></text> 289.295 + </g> 289.296 + <g 289.297 + id="g5529" 289.298 + transform="translate(-6.710312,-8.165836e-6)"> 289.299 + <rect 289.300 + style="fill:url(#linearGradient5584);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.301 + id="rect3509" 289.302 + width="101.60232" 289.303 + height="89.506805" 289.304 + x="218.29547" 289.305 + y="497.4801" /> 289.306 + <g 289.307 + transform="matrix(0.423343,0,0,0.423343,143.908,371.2915)" 289.308 + id="g3513"> 289.309 + <g 289.310 + id="g3515"> 289.311 + <rect 289.312 + y="447.72418" 289.313 + x="188.6071" 289.314 + height="48.571426" 289.315 + width="103.14286" 289.316 + id="rect3517" 289.317 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.318 + <text 289.319 + id="text3519" 289.320 + y="464.82358" 289.321 + x="197.82495" 289.322 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.323 + xml:space="preserve"><tspan 289.324 + y="464.82358" 289.325 + x="197.82495" 289.326 + sodipodi:role="line" 289.327 + id="tspan3521">First parent</tspan></text> 289.328 + <text 289.329 + id="text3523" 289.330 + y="485.51224" 289.331 + x="197.13031" 289.332 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.333 + xml:space="preserve"><tspan 289.334 + style="font-family:Courier" 289.335 + y="485.51224" 289.336 + x="197.13031" 289.337 + id="tspan3525" 289.338 + sodipodi:role="line">000000000000</tspan></text> 289.339 + </g> 289.340 + <g 289.341 + id="g3527"> 289.342 + <rect 289.343 + y="447.71451" 289.344 + x="299.67859" 289.345 + height="48.571426" 289.346 + width="103.14286" 289.347 + id="rect3529" 289.348 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.349 + <text 289.350 + id="text3531" 289.351 + y="464.8139" 289.352 + x="308.89639" 289.353 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.354 + xml:space="preserve"><tspan 289.355 + y="464.8139" 289.356 + x="308.89639" 289.357 + sodipodi:role="line" 289.358 + id="tspan3533">Second parent</tspan></text> 289.359 + <text 289.360 + id="text3535" 289.361 + y="485.50256" 289.362 + x="308.20175" 289.363 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.364 + xml:space="preserve"><tspan 289.365 + style="font-family:Courier" 289.366 + y="485.50256" 289.367 + x="308.20175" 289.368 + id="tspan3537" 289.369 + sodipodi:role="line">000000000000</tspan></text> 289.370 + </g> 289.371 + </g> 289.372 + <g 289.373 + transform="matrix(0.423343,0,0,0.423343,143.908,371.2915)" 289.374 + id="g3539"> 289.375 + <rect 289.376 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.377 + id="rect3541" 289.378 + width="103.14286" 289.379 + height="48.571426" 289.380 + x="188.6071" 289.381 + y="311.28598" /> 289.382 + <text 289.383 + xml:space="preserve" 289.384 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.385 + x="197.82495" 289.386 + y="328.38538" 289.387 + id="text3543"><tspan 289.388 + id="tspan3545" 289.389 + sodipodi:role="line" 289.390 + x="197.82495" 289.391 + y="328.38538">Revision hash</tspan></text> 289.392 + <text 289.393 + xml:space="preserve" 289.394 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.395 + x="197.13031" 289.396 + y="349.07404" 289.397 + id="text3547"><tspan 289.398 + sodipodi:role="line" 289.399 + id="tspan3549" 289.400 + x="197.13031" 289.401 + y="349.07404" 289.402 + style="font-family:Courier">ff9dc8bc2a8b</tspan></text> 289.403 + </g> 289.404 + <g 289.405 + transform="matrix(0.423343,0,0,0.423343,144.3767,372.6502)" 289.406 + id="g3551"> 289.407 + <rect 289.408 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.409 + id="rect3553" 289.410 + width="213.85715" 289.411 + height="75" 289.412 + x="187.5" 289.413 + y="363.07654" /> 289.414 + <text 289.415 + xml:space="preserve" 289.416 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.417 + x="196.02321" 289.418 + y="400.86459" 289.419 + id="text3555"><tspan 289.420 + sodipodi:role="line" 289.421 + id="tspan3557" 289.422 + x="196.02321" 289.423 + y="400.86459" 289.424 + style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 289.425 + <text 289.426 + xml:space="preserve" 289.427 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.428 + x="196.71785" 289.429 + y="380.17593" 289.430 + id="text3559"><tspan 289.431 + style="fill:black;fill-opacity:1" 289.432 + id="tspan3561" 289.433 + sodipodi:role="line" 289.434 + x="196.71785" 289.435 + y="380.17593">Revision data (delta or snapshot)</tspan></text> 289.436 + </g> 289.437 + </g> 289.438 + <g 289.439 + id="g4868" 289.440 + transform="translate(-1.676208,-2.342463e-5)"> 289.441 + <rect 289.442 + style="fill:url(#linearGradient3708);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.443 + id="rect3567" 289.444 + width="101.60232" 289.445 + height="89.506805" 289.446 + x="213.26137" 289.447 + y="59.171272" /> 289.448 + <g 289.449 + transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01734)" 289.450 + id="g3573"> 289.451 + <rect 289.452 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.453 + id="rect3575" 289.454 + width="103.14286" 289.455 + height="48.571426" 289.456 + x="188.6071" 289.457 + y="447.72418" /> 289.458 + <text 289.459 + xml:space="preserve" 289.460 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.461 + x="197.82495" 289.462 + y="464.82358" 289.463 + id="text3577"><tspan 289.464 + id="tspan3579" 289.465 + sodipodi:role="line" 289.466 + x="197.82495" 289.467 + y="464.82358">First parent</tspan></text> 289.468 + <text 289.469 + xml:space="preserve" 289.470 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.471 + x="197.13031" 289.472 + y="485.51224" 289.473 + id="text3581"><tspan 289.474 + sodipodi:role="line" 289.475 + id="tspan3583" 289.476 + x="197.13031" 289.477 + y="485.51224" 289.478 + style="font-family:Courier">34b8b7a15ea1</tspan></text> 289.479 + </g> 289.480 + <g 289.481 + transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01734)" 289.482 + id="g3585"> 289.483 + <rect 289.484 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.485 + id="rect3587" 289.486 + width="103.14286" 289.487 + height="48.571426" 289.488 + x="299.67859" 289.489 + y="447.71451" /> 289.490 + <text 289.491 + xml:space="preserve" 289.492 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.493 + x="308.89639" 289.494 + y="464.8139" 289.495 + id="text3589"><tspan 289.496 + id="tspan3591" 289.497 + sodipodi:role="line" 289.498 + x="308.89639" 289.499 + y="464.8139">Second parent</tspan></text> 289.500 + <text 289.501 + xml:space="preserve" 289.502 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.503 + x="308.20175" 289.504 + y="485.50256" 289.505 + id="text3593"><tspan 289.506 + sodipodi:role="line" 289.507 + id="tspan3595" 289.508 + x="308.20175" 289.509 + y="485.50256" 289.510 + style="font-family:Courier">000000000000</tspan></text> 289.511 + </g> 289.512 + <g 289.513 + transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01733)" 289.514 + id="g3597"> 289.515 + <rect 289.516 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.517 + id="rect3599" 289.518 + width="103.14286" 289.519 + height="48.571426" 289.520 + x="188.6071" 289.521 + y="311.28598" /> 289.522 + <text 289.523 + xml:space="preserve" 289.524 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.525 + x="197.82495" 289.526 + y="328.38538" 289.527 + id="text3601"><tspan 289.528 + id="tspan3603" 289.529 + sodipodi:role="line" 289.530 + x="197.82495" 289.531 + y="328.38538">Revision hash</tspan></text> 289.532 + <text 289.533 + xml:space="preserve" 289.534 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.535 + x="197.13031" 289.536 + y="349.07404" 289.537 + id="text3605"><tspan 289.538 + sodipodi:role="line" 289.539 + id="tspan3607" 289.540 + x="197.13031" 289.541 + y="349.07404" 289.542 + style="font-family:Courier">1b67dc96f27a</tspan></text> 289.543 + </g> 289.544 + <g 289.545 + transform="matrix(0.423343,0,0,0.423343,139.3426,-65.65866)" 289.546 + id="g3609"> 289.547 + <rect 289.548 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.549 + id="rect3611" 289.550 + width="213.85715" 289.551 + height="75" 289.552 + x="187.5" 289.553 + y="363.07654" /> 289.554 + <text 289.555 + xml:space="preserve" 289.556 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.557 + x="196.02321" 289.558 + y="400.86459" 289.559 + id="text3613"><tspan 289.560 + sodipodi:role="line" 289.561 + id="tspan3615" 289.562 + x="196.02321" 289.563 + y="400.86459" 289.564 + style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 289.565 + <text 289.566 + xml:space="preserve" 289.567 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.568 + x="196.71785" 289.569 + y="380.17593" 289.570 + id="text3617"><tspan 289.571 + style="fill:black;fill-opacity:1" 289.572 + id="tspan3619" 289.573 + sodipodi:role="line" 289.574 + x="196.71785" 289.575 + y="380.17593">Revision data (delta or snapshot)</tspan></text> 289.576 + </g> 289.577 + </g> 289.578 + <path 289.579 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)" 289.580 + d="M 240.78255,143.08593 L 241.42595,171.75349" 289.581 + id="path3801" 289.582 + inkscape:connector-type="polyline" 289.583 + inkscape:connection-start="#g3573" 289.584 + inkscape:connection-end="#g3250" /> 289.585 + <g 289.586 + id="g5677"> 289.587 + <rect 289.588 + style="fill:url(#linearGradient5784);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.589 + id="rect3393" 289.590 + width="101.60232" 289.591 + height="89.506805" 289.592 + x="150.76137" 289.593 + y="278.32565" /> 289.594 + <g 289.595 + transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 289.596 + id="g3399"> 289.597 + <rect 289.598 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.599 + id="rect3401" 289.600 + width="103.14286" 289.601 + height="48.571426" 289.602 + x="188.6071" 289.603 + y="447.72418" /> 289.604 + <text 289.605 + xml:space="preserve" 289.606 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.607 + x="197.82495" 289.608 + y="464.82358" 289.609 + id="text3403"><tspan 289.610 + id="tspan3405" 289.611 + sodipodi:role="line" 289.612 + x="197.82495" 289.613 + y="464.82358">First parent</tspan></text> 289.614 + <text 289.615 + xml:space="preserve" 289.616 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.617 + x="197.13031" 289.618 + y="485.51224" 289.619 + id="text3407"><tspan 289.620 + sodipodi:role="line" 289.621 + id="tspan3409" 289.622 + x="197.13031" 289.623 + y="485.51224" 289.624 + style="font-family:Courier">ff9dc8bc2a8b</tspan></text> 289.625 + </g> 289.626 + <g 289.627 + transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 289.628 + id="g3411"> 289.629 + <rect 289.630 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.631 + id="rect3413" 289.632 + width="103.14286" 289.633 + height="48.571426" 289.634 + x="299.67859" 289.635 + y="447.71451" /> 289.636 + <text 289.637 + xml:space="preserve" 289.638 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.639 + x="308.89639" 289.640 + y="464.8139" 289.641 + id="text3415"><tspan 289.642 + id="tspan3417" 289.643 + sodipodi:role="line" 289.644 + x="308.89639" 289.645 + y="464.8139">Second parent</tspan></text> 289.646 + <text 289.647 + xml:space="preserve" 289.648 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.649 + x="308.20175" 289.650 + y="485.50256" 289.651 + id="text3419"><tspan 289.652 + sodipodi:role="line" 289.653 + id="tspan3421" 289.654 + x="308.20175" 289.655 + y="485.50256" 289.656 + style="font-family:Courier">000000000000</tspan></text> 289.657 + </g> 289.658 + <g 289.659 + transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)" 289.660 + id="g3423"> 289.661 + <rect 289.662 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.663 + id="rect3425" 289.664 + width="103.14286" 289.665 + height="48.571426" 289.666 + x="188.6071" 289.667 + y="311.28598" /> 289.668 + <text 289.669 + xml:space="preserve" 289.670 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.671 + x="197.82495" 289.672 + y="328.38538" 289.673 + id="text3427"><tspan 289.674 + id="tspan3429" 289.675 + sodipodi:role="line" 289.676 + x="197.82495" 289.677 + y="328.38538">Revision hash</tspan></text> 289.678 + <text 289.679 + xml:space="preserve" 289.680 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.681 + x="197.13031" 289.682 + y="349.07404" 289.683 + id="text3431"><tspan 289.684 + sodipodi:role="line" 289.685 + id="tspan3433" 289.686 + x="197.13031" 289.687 + y="349.07404" 289.688 + style="font-family:Courier">5b80c922ebdd</tspan></text> 289.689 + </g> 289.690 + <g 289.691 + transform="matrix(0.423343,0,0,0.423343,76.84265,153.4957)" 289.692 + id="g3435"> 289.693 + <rect 289.694 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.695 + id="rect3437" 289.696 + width="213.85715" 289.697 + height="75" 289.698 + x="187.5" 289.699 + y="363.07654" /> 289.700 + <text 289.701 + xml:space="preserve" 289.702 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.703 + x="196.02321" 289.704 + y="400.86459" 289.705 + id="text3439"><tspan 289.706 + sodipodi:role="line" 289.707 + id="tspan3441" 289.708 + x="196.02321" 289.709 + y="400.86459" 289.710 + style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 289.711 + <text 289.712 + xml:space="preserve" 289.713 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.714 + x="196.71785" 289.715 + y="380.17593" 289.716 + id="text3443"><tspan 289.717 + style="fill:black;fill-opacity:1" 289.718 + id="tspan3445" 289.719 + sodipodi:role="line" 289.720 + x="196.71785" 289.721 + y="380.17593">Revision data (delta or snapshot)</tspan></text> 289.722 + </g> 289.723 + </g> 289.724 + <g 289.725 + id="g5646" 289.726 + transform="translate(-0.227432,0)"> 289.727 + <rect 289.728 + style="fill:url(#linearGradient5786);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.729 + id="rect3451" 289.730 + width="101.60232" 289.731 + height="89.506805" 289.732 + x="272.63638" 289.733 + y="278.32565" /> 289.734 + <g 289.735 + transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)" 289.736 + id="g3457"> 289.737 + <rect 289.738 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.739 + id="rect3459" 289.740 + width="103.14286" 289.741 + height="48.571426" 289.742 + x="188.6071" 289.743 + y="447.72418" /> 289.744 + <text 289.745 + xml:space="preserve" 289.746 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.747 + x="197.82495" 289.748 + y="464.82358" 289.749 + id="text3461"><tspan 289.750 + id="tspan3463" 289.751 + sodipodi:role="line" 289.752 + x="197.82495" 289.753 + y="464.82358">First parent</tspan></text> 289.754 + <text 289.755 + xml:space="preserve" 289.756 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.757 + x="197.13031" 289.758 + y="485.51224" 289.759 + id="text3465"><tspan 289.760 + sodipodi:role="line" 289.761 + id="tspan3467" 289.762 + x="197.13031" 289.763 + y="485.51224" 289.764 + style="font-family:Courier">ecacb6b4c9fd</tspan></text> 289.765 + </g> 289.766 + <g 289.767 + transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)" 289.768 + id="g3469"> 289.769 + <rect 289.770 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.771 + id="rect3471" 289.772 + width="103.14286" 289.773 + height="48.571426" 289.774 + x="299.67859" 289.775 + y="447.71451" /> 289.776 + <text 289.777 + xml:space="preserve" 289.778 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.779 + x="308.89639" 289.780 + y="464.8139" 289.781 + id="text3473"><tspan 289.782 + id="tspan3475" 289.783 + sodipodi:role="line" 289.784 + x="308.89639" 289.785 + y="464.8139">Second parent</tspan></text> 289.786 + <text 289.787 + xml:space="preserve" 289.788 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.789 + x="308.20175" 289.790 + y="485.50256" 289.791 + id="text3477"><tspan 289.792 + sodipodi:role="line" 289.793 + id="tspan3479" 289.794 + x="308.20175" 289.795 + y="485.50256" 289.796 + style="font-family:Courier">000000000000</tspan></text> 289.797 + </g> 289.798 + <g 289.799 + transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)" 289.800 + id="g3481"> 289.801 + <rect 289.802 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.803 + id="rect3483" 289.804 + width="103.14286" 289.805 + height="48.571426" 289.806 + x="188.6071" 289.807 + y="311.28598" /> 289.808 + <text 289.809 + xml:space="preserve" 289.810 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.811 + x="197.82495" 289.812 + y="328.38538" 289.813 + id="text3485"><tspan 289.814 + id="tspan3487" 289.815 + sodipodi:role="line" 289.816 + x="197.82495" 289.817 + y="328.38538">Revision hash</tspan></text> 289.818 + <text 289.819 + xml:space="preserve" 289.820 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.821 + x="197.13031" 289.822 + y="349.07404" 289.823 + id="text3489"><tspan 289.824 + sodipodi:role="line" 289.825 + id="tspan3491" 289.826 + x="197.13031" 289.827 + y="349.07404" 289.828 + style="font-family:Courier">32bf9a5f22c0</tspan></text> 289.829 + </g> 289.830 + <g 289.831 + transform="matrix(0.423343,0,0,0.423343,198.7176,153.4957)" 289.832 + id="g3493"> 289.833 + <rect 289.834 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.835 + id="rect3495" 289.836 + width="213.85715" 289.837 + height="75" 289.838 + x="187.5" 289.839 + y="363.07654" /> 289.840 + <text 289.841 + xml:space="preserve" 289.842 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.843 + x="196.02321" 289.844 + y="400.86459" 289.845 + id="text3497"><tspan 289.846 + sodipodi:role="line" 289.847 + id="tspan3499" 289.848 + x="196.02321" 289.849 + y="400.86459" 289.850 + style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text> 289.851 + <text 289.852 + xml:space="preserve" 289.853 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.854 + x="196.71785" 289.855 + y="380.17593" 289.856 + id="text3501"><tspan 289.857 + style="fill:black;fill-opacity:1" 289.858 + id="tspan3503" 289.859 + sodipodi:role="line" 289.860 + x="196.71785" 289.861 + y="380.17593">Revision data (delta or snapshot)</tspan></text> 289.862 + </g> 289.863 + </g> 289.864 + <rect 289.865 + y="387.90286" 289.866 + x="272.40894" 289.867 + height="89.506805" 289.868 + width="101.60232" 289.869 + id="rect5081" 289.870 + style="fill:url(#linearGradient5895);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.871 + <g 289.872 + id="g5087" 289.873 + transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)"> 289.874 + <rect 289.875 + y="447.72418" 289.876 + x="188.6071" 289.877 + height="48.571426" 289.878 + width="103.14286" 289.879 + id="rect5089" 289.880 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.881 + <text 289.882 + id="text5091" 289.883 + y="464.82358" 289.884 + x="197.82495" 289.885 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.886 + xml:space="preserve"><tspan 289.887 + y="464.82358" 289.888 + x="197.82495" 289.889 + sodipodi:role="line" 289.890 + id="tspan5093">First parent</tspan></text> 289.891 + <text 289.892 + id="text5095" 289.893 + y="485.51224" 289.894 + x="197.13031" 289.895 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.896 + xml:space="preserve"><tspan 289.897 + style="font-family:Courier" 289.898 + y="485.51224" 289.899 + x="197.13031" 289.900 + id="tspan5097" 289.901 + sodipodi:role="line">ff9dc8bc2a8b</tspan></text> 289.902 + </g> 289.903 + <g 289.904 + id="g5099" 289.905 + transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)"> 289.906 + <rect 289.907 + y="447.71451" 289.908 + x="299.67859" 289.909 + height="48.571426" 289.910 + width="103.14286" 289.911 + id="rect5101" 289.912 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.913 + <text 289.914 + id="text5103" 289.915 + y="464.8139" 289.916 + x="308.89639" 289.917 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.918 + xml:space="preserve"><tspan 289.919 + y="464.8139" 289.920 + x="308.89639" 289.921 + sodipodi:role="line" 289.922 + id="tspan5105">Second parent</tspan></text> 289.923 + <text 289.924 + id="text5107" 289.925 + y="485.50256" 289.926 + x="308.20175" 289.927 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.928 + xml:space="preserve"><tspan 289.929 + style="font-family:Courier" 289.930 + y="485.50256" 289.931 + x="308.20175" 289.932 + id="tspan5109" 289.933 + sodipodi:role="line">000000000000</tspan></text> 289.934 + </g> 289.935 + <g 289.936 + id="g5111" 289.937 + transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)"> 289.938 + <rect 289.939 + y="311.28598" 289.940 + x="188.6071" 289.941 + height="48.571426" 289.942 + width="103.14286" 289.943 + id="rect5113" 289.944 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.945 + <text 289.946 + id="text5115" 289.947 + y="328.38538" 289.948 + x="197.82495" 289.949 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.950 + xml:space="preserve"><tspan 289.951 + y="328.38538" 289.952 + x="197.82495" 289.953 + sodipodi:role="line" 289.954 + id="tspan5117">Revision hash</tspan></text> 289.955 + <text 289.956 + id="text5119" 289.957 + y="349.07404" 289.958 + x="197.13031" 289.959 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.960 + xml:space="preserve"><tspan 289.961 + style="font-family:Courier" 289.962 + y="349.07404" 289.963 + x="197.13031" 289.964 + id="tspan5121" 289.965 + sodipodi:role="line">ecacb6b4c9fd</tspan></text> 289.966 + </g> 289.967 + <g 289.968 + id="g5123" 289.969 + transform="matrix(0.423343,0,0,0.423343,198.4901,263.0729)"> 289.970 + <rect 289.971 + y="363.07654" 289.972 + x="187.5" 289.973 + height="75" 289.974 + width="213.85715" 289.975 + id="rect5125" 289.976 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 289.977 + <text 289.978 + id="text5127" 289.979 + y="400.86459" 289.980 + x="196.02321" 289.981 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.982 + xml:space="preserve"><tspan 289.983 + style="fill:black;fill-opacity:1;font-family:Courier" 289.984 + y="400.86459" 289.985 + x="196.02321" 289.986 + id="tspan5129" 289.987 + sodipodi:role="line">...</tspan></text> 289.988 + <text 289.989 + id="text5131" 289.990 + y="380.17593" 289.991 + x="196.71785" 289.992 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.993 + xml:space="preserve"><tspan 289.994 + y="380.17593" 289.995 + x="196.71785" 289.996 + sodipodi:role="line" 289.997 + id="tspan5133" 289.998 + style="fill:black;fill-opacity:1">Revision data (delta or snapshot)</tspan></text> 289.999 + </g> 289.1000 + <path 289.1001 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 289.1002 + d="M 299.69935,362.24027 L 299.69931,393.49494" 289.1003 + id="path5203" 289.1004 + inkscape:connector-type="polyline" 289.1005 + inkscape:connection-start="#g3457" 289.1006 + inkscape:connection-end="#g5111" /> 289.1007 + <path 289.1008 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 289.1009 + d="M 182.35357,362.22647 L 241.2842,503.07224" 289.1010 + id="path5271" 289.1011 + inkscape:connector-type="polyline" 289.1012 + inkscape:connection-start="#g3399" 289.1013 + inkscape:connection-end="#g3539" /> 289.1014 + <path 289.1015 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 289.1016 + d="M 287.63109,471.81747 L 250.9438,503.07223" 289.1017 + id="path5285" 289.1018 + inkscape:connector-type="polyline" 289.1019 + inkscape:connection-start="#g5087" 289.1020 + inkscape:connection-end="#g3539" /> 289.1021 + <path 289.1022 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 289.1023 + d="M 290.80419,250.07192 L 297.80065,283.90394" 289.1024 + id="path5077" 289.1025 + inkscape:connector-type="polyline" 289.1026 + inkscape:connection-start="#g3215" 289.1027 + inkscape:connection-end="#g3481" /> 289.1028 + <path 289.1029 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 289.1030 + d="M 229.63373,250.07601 L 190.07484,283.90394" 289.1031 + id="path5075" 289.1032 + inkscape:connector-type="polyline" 289.1033 + inkscape:connection-end="#g3423" /> 289.1034 + <text 289.1035 + xml:space="preserve" 289.1036 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.1037 + x="131.5625" 289.1038 + y="100.79968" 289.1039 + id="text5897"><tspan 289.1040 + sodipodi:role="line" 289.1041 + id="tspan5899" 289.1042 + x="131.5625" 289.1043 + y="100.79968" 289.1044 + style="text-align:end;text-anchor:end">Head revision</tspan><tspan 289.1045 + sodipodi:role="line" 289.1046 + x="131.5625" 289.1047 + y="115.79968" 289.1048 + id="tspan5901" 289.1049 + style="text-align:end;text-anchor:end">(no children)</tspan></text> 289.1050 + <text 289.1051 + xml:space="preserve" 289.1052 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.1053 + x="131.5625" 289.1054 + y="207.04968" 289.1055 + id="text5903"><tspan 289.1056 + sodipodi:role="line" 289.1057 + id="tspan5905" 289.1058 + x="131.5625" 289.1059 + y="207.04968" 289.1060 + style="text-align:end;text-anchor:end">Merge revision</tspan><tspan 289.1061 + sodipodi:role="line" 289.1062 + x="131.5625" 289.1063 + y="222.04968" 289.1064 + id="tspan5907" 289.1065 + style="text-align:end;text-anchor:end">(two parents)</tspan></text> 289.1066 + <text 289.1067 + xml:space="preserve" 289.1068 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.1069 + x="131.92578" 289.1070 + y="451.58093" 289.1071 + id="text5909"><tspan 289.1072 + sodipodi:role="line" 289.1073 + id="tspan5911" 289.1074 + x="131.92578" 289.1075 + y="451.58093" 289.1076 + style="text-align:end;text-anchor:end">Branches</tspan><tspan 289.1077 + sodipodi:role="line" 289.1078 + x="131.92578" 289.1079 + y="466.58093" 289.1080 + id="tspan5913" 289.1081 + style="text-align:end;text-anchor:end">(two revisions,</tspan><tspan 289.1082 + sodipodi:role="line" 289.1083 + x="131.92578" 289.1084 + y="481.58093" 289.1085 + id="tspan5915" 289.1086 + style="text-align:end;text-anchor:end">same parent)</tspan></text> 289.1087 + <path 289.1088 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 289.1089 + d="M 111.71875,433.61218 L 154.7268,368.52294" 289.1090 + id="path5917" 289.1091 + inkscape:connector-type="polyline" /> 289.1092 + <path 289.1093 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 289.1094 + d="M 134.375,464.86218 L 277.86691,440.37816" 289.1095 + id="path5919" 289.1096 + inkscape:connector-type="polyline" 289.1097 + inkscape:connection-end="#g5123" /> 289.1098 + <text 289.1099 + xml:space="preserve" 289.1100 + style="font-size:12px;font-style:normal;font-weight:normal;text-align:end;text-anchor:end;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.1101 + x="131.5625" 289.1102 + y="536.73718" 289.1103 + id="text5927"><tspan 289.1104 + sodipodi:role="line" 289.1105 + id="tspan5929" 289.1106 + x="131.5625" 289.1107 + y="536.73718">First revision</tspan><tspan 289.1108 + sodipodi:role="line" 289.1109 + x="131.5625" 289.1110 + y="551.73718" 289.1111 + id="tspan5931">(both parents null)</tspan></text> 289.1112 + <rect 289.1113 + style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 289.1114 + id="rect2830" 289.1115 + width="43.664806" 289.1116 + height="20.562374" 289.1117 + x="217.0432" 289.1118 + y="232.10075" /> 289.1119 + <text 289.1120 + xml:space="preserve" 289.1121 + style="font-size:5.0801158px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.1122 + x="220.94551" 289.1123 + y="239.33966" 289.1124 + id="text2832"><tspan 289.1125 + id="tspan2836" 289.1126 + sodipodi:role="line" 289.1127 + x="220.94551" 289.1128 + y="239.33966">First parent</tspan></text> 289.1129 + <text 289.1130 + xml:space="preserve" 289.1131 + style="font-size:5.0801158px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 289.1132 + x="220.65144" 289.1133 + y="248.09805" 289.1134 + id="text2879"><tspan 289.1135 + sodipodi:role="line" 289.1136 + id="tspan2881" 289.1137 + x="220.65144" 289.1138 + y="248.09805" 289.1139 + style="font-family:Courier">5b80c922ebdd</tspan></text> 289.1140 + <path 289.1141 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 289.1142 + d="M 139.84375,107.83093 L 210.15625,107.83093" 289.1143 + id="path5965" 289.1144 + inkscape:connector-type="polyline" /> 289.1145 + <path 289.1146 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 289.1147 + d="M 137.5,213.29968 L 210.49036,214.09055" 289.1148 + id="path5967" 289.1149 + inkscape:connector-type="polyline" /> 289.1150 + <path 289.1151 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline" 289.1152 + d="M 136.34375,544.54968 L 206.65625,544.54968" 289.1153 + id="path5969" 289.1154 + inkscape:connector-type="polyline" 289.1155 + inkscape:transform-center-y="-171.09375" 289.1156 + inkscape:transform-center-x="53.90625" /> 289.1157 + </g> 289.1158 +</svg>
290.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 290.2 +++ b/ja/snapshot.svg Fri Aug 14 12:10:47 2009 -0700 290.3 @@ -0,0 +1,202 @@ 290.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 290.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 290.6 +<svg 290.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 290.8 + xmlns:cc="http://web.resource.org/cc/" 290.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 290.10 + xmlns:svg="http://www.w3.org/2000/svg" 290.11 + xmlns="http://www.w3.org/2000/svg" 290.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 290.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 290.14 + width="744.09448819" 290.15 + height="1052.3622047" 290.16 + id="svg2807" 290.17 + sodipodi:version="0.32" 290.18 + inkscape:version="0.44.1" 290.19 + sodipodi:docbase="/home/bos/hg/hgbook/en" 290.20 + sodipodi:docname="snapshots.svg"> 290.21 + <defs 290.22 + id="defs2809" /> 290.23 + <sodipodi:namedview 290.24 + id="base" 290.25 + pagecolor="#ffffff" 290.26 + bordercolor="#666666" 290.27 + borderopacity="1.0" 290.28 + gridtolerance="10000" 290.29 + guidetolerance="10" 290.30 + objecttolerance="10" 290.31 + inkscape:pageopacity="0.0" 290.32 + inkscape:pageshadow="2" 290.33 + inkscape:zoom="1.4" 290.34 + inkscape:cx="252.04111" 290.35 + inkscape:cy="605.75448" 290.36 + inkscape:document-units="px" 290.37 + inkscape:current-layer="layer1" 290.38 + inkscape:window-width="906" 290.39 + inkscape:window-height="721" 290.40 + inkscape:window-x="0" 290.41 + inkscape:window-y="25" /> 290.42 + <metadata 290.43 + id="metadata2812"> 290.44 + <rdf:RDF> 290.45 + <cc:Work 290.46 + rdf:about=""> 290.47 + <dc:format>image/svg+xml</dc:format> 290.48 + <dc:type 290.49 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 290.50 + </cc:Work> 290.51 + </rdf:RDF> 290.52 + </metadata> 290.53 + <g 290.54 + inkscape:label="Layer 1" 290.55 + inkscape:groupmode="layer" 290.56 + id="layer1"> 290.57 + <rect 290.58 + style="opacity:1;fill:#d3ceff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.88795626;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 290.59 + id="rect2817" 290.60 + width="118.18347" 290.61 + height="245.32632" 290.62 + x="243.05112" 290.63 + y="315.4133" 290.64 + inkscape:transform-center-x="136.84403" 290.65 + inkscape:transform-center-y="-66.529183" /> 290.66 + <rect 290.67 + y="315.04153" 290.68 + x="46.965065" 290.69 + height="97.803009" 290.70 + width="108.92702" 290.71 + id="rect2815" 290.72 + style="fill:#ffced6;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.14441991;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 290.73 + <g 290.74 + id="g3814"> 290.75 + <rect 290.76 + y="348.94302" 290.77 + x="59.285713" 290.78 + height="30" 290.79 + width="84.285713" 290.80 + id="rect2819" 290.81 + style="fill:#ff6e86;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 290.82 + ry="0" /> 290.83 + <text 290.84 + id="text2821" 290.85 + y="368.02701" 290.86 + x="72.717636" 290.87 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 290.88 + xml:space="preserve"><tspan 290.89 + y="368.02701" 290.90 + x="72.717636" 290.91 + id="tspan2823" 290.92 + sodipodi:role="line">Index, rev 7</tspan></text> 290.93 + </g> 290.94 + <text 290.95 + id="text3722" 290.96 + y="301.29074" 290.97 + x="46.187778" 290.98 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 290.99 + xml:space="preserve"><tspan 290.100 + y="301.29074" 290.101 + x="46.187778" 290.102 + id="tspan3724" 290.103 + sodipodi:role="line">Revlog index (.i file)</tspan></text> 290.104 + <text 290.105 + id="text3726" 290.106 + y="301.29074" 290.107 + x="241.90207" 290.108 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 290.109 + xml:space="preserve"><tspan 290.110 + y="301.29074" 290.111 + x="241.90207" 290.112 + id="tspan3728" 290.113 + sodipodi:role="line">Revlog data (.d file)</tspan></text> 290.114 + <path 290.115 + style="fill:#c695ff;fill-opacity:0.60109288;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 290.116 + d="M 143.57143,348.07647 L 255,368.07646 L 255.71429,544.50504 L 142.85714,379.50504 L 143.57143,348.07647 z " 290.117 + id="path3839" 290.118 + sodipodi:nodetypes="ccccc" /> 290.119 + <rect 290.120 + style="fill:#4733ff;fill-opacity:1;stroke:#a7a7a7;stroke-width:2.35124183;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 290.121 + id="rect3752" 290.122 + width="92.720184" 290.123 + height="67.005905" 290.124 + x="255.42564" 290.125 + y="368.64264" /> 290.126 + <text 290.127 + xml:space="preserve" 290.128 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 290.129 + x="264.45859" 290.130 + y="387.30099" 290.131 + id="text3754"><tspan 290.132 + sodipodi:role="line" 290.133 + id="tspan3756" 290.134 + x="264.45859" 290.135 + y="387.30099">Snapshot, rev 4</tspan></text> 290.136 + <rect 290.137 + style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 290.138 + id="rect3761" 290.139 + width="93.49366" 290.140 + height="29.922237" 290.141 + x="255.03891" 290.142 + y="442.04395" /> 290.143 + <text 290.144 + xml:space="preserve" 290.145 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 290.146 + x="263.2662" 290.147 + y="460.17206" 290.148 + id="text3763"><tspan 290.149 + sodipodi:role="line" 290.150 + id="tspan3765" 290.151 + x="263.2662" 290.152 + y="460.17206">Delta, rev 4 to 5</tspan></text> 290.153 + <rect 290.154 + style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 290.155 + id="rect3774" 290.156 + width="93.49366" 290.157 + height="29.922237" 290.158 + x="255.03891" 290.159 + y="477.97485" /> 290.160 + <text 290.161 + xml:space="preserve" 290.162 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 290.163 + x="263.2662" 290.164 + y="496.10297" 290.165 + id="text3776"><tspan 290.166 + sodipodi:role="line" 290.167 + id="tspan3778" 290.168 + x="263.2662" 290.169 + y="496.10297">Delta, rev 5 to 6</tspan></text> 290.170 + <rect 290.171 + style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 290.172 + id="rect3782" 290.173 + width="93.49366" 290.174 + height="29.922237" 290.175 + x="255.03891" 290.176 + y="513.90576" /> 290.177 + <text 290.178 + xml:space="preserve" 290.179 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 290.180 + x="263.2662" 290.181 + y="532.03387" 290.182 + id="text3784"><tspan 290.183 + sodipodi:role="line" 290.184 + id="tspan3786" 290.185 + x="263.2662" 290.186 + y="532.03387">Delta, rev 6 to 7</tspan></text> 290.187 + <rect 290.188 + style="fill:#7c6eff;fill-opacity:1;stroke:#a7a7a7;stroke-width:1.57776296;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 290.189 + id="rect3889" 290.190 + width="93.49366" 290.191 + height="29.922237" 290.192 + x="255.03891" 290.193 + y="332.32489" /> 290.194 + <text 290.195 + xml:space="preserve" 290.196 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 290.197 + x="263.2662" 290.198 + y="350.453" 290.199 + id="text3891"><tspan 290.200 + sodipodi:role="line" 290.201 + id="tspan3893" 290.202 + x="263.2662" 290.203 + y="350.453">Delta, rev 2 to 3</tspan></text> 290.204 + </g> 290.205 +</svg>
291.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 291.2 +++ b/ja/srcinstall.tex Fri Aug 14 12:10:47 2009 -0700 291.3 @@ -0,0 +1,75 @@ 291.4 +\chapter{Installing Mercurial from source} 291.5 +\label{chap:srcinstall} 291.6 + 291.7 +\section{On a Unix-like system} 291.8 +\label{sec:srcinstall:unixlike} 291.9 + 291.10 +$B!J(B2.3 $B$J$$$7$=$l0J8e$N!K?7$7$$HG$N(B Python $B$,MxMQ2DG=$J(B 291.11 +Unix $BE*$J%7%9%F%`$rMxMQ$7$F$$$k>l9g$O!"(B 291.12 +Mercurial $B$r%=!<%9%U%!%$%k$+$i%$%s%9%H!<%k$9$k$N$O4JC1$G$9!#(B 291.13 + 291.14 +\begin{enumerate} 291.15 +\item $B:G?7HG$N(B tar $B%"!<%+%$%V!J(Btarball$B!K$r(B 291.16 + \url{http://www.selenic.com/mercurial/download} 291.17 + $B$+$i%@%&%s%m!<%I!#(B 291.18 + 291.19 +\item tar $B%"!<%+%$%V$rE83+(B: 291.20 + \begin{codesample4} 291.21 + gzip -dc mercurial-\emph{version}.tar.gz | tar xf - 291.22 + \end{codesample4} 291.23 + 291.24 +\item $B%=!<%9%G%#%l%/%H%j$K0\F0$7$F!"%$%s%9%H!<%kMQ%9%/%j%W%H$r<B9T!#(B 291.25 + $B0J2<$N<j=g$O!"(B 291.26 + $B%S%k%I$7$?(B Mercurial $B$r%[!<%`%G%#%l%/%H%jG[2<$K%$%s%9%H!<%k$7$^$9!#(B 291.27 + 291.28 + \begin{codesample4} 291.29 + cd mercurial-\emph{version} 291.30 + python setup.py install --force --home=\$HOME 291.31 + \end{codesample4} 291.32 + 291.33 +\end{enumerate} 291.34 + 291.35 +$B%$%s%9%H!<%k$,40N;$7$?$J$i!"(B 291.36 +$B%[!<%`%G%#%l%/%H%jD>2<$N(B 291.37 +\texttt{bin} $B%G%#%l%/%H%j$K(B 291.38 +Mercurial $B$,%$%s%9%H!<%k$5$l$^$9!#(B 291.39 +$B%7%'%k$N%3%^%s%I8!:w%Q%9$X$N(B 291.40 +\texttt{bin} $B%G%#%l%/%H%j$NDI2C$rK:$l$J$$$h$&$K$7$F$/$@$5$$!#(B 291.41 + 291.42 +Mercurial $B$N<B9T$KI,MW$J(B Mercurial $B%Q%C%1!<%8$rC5$7=P$;$k$h$&$K!"(B 291.43 +\envar{PYTHONPATH} $B4D6-JQ?t$N@_Dj$bI,MW$H$J$k$G$7$g$&!#(B 291.44 +$BNc$($PCx<T$N%i%C%W%H%C%W$G$O!"(B 291.45 +\envar{PYTHONPATH} $B4D6-JQ?t$K(B 291.46 +\texttt{/home/bos/lib/python} 291.47 +$B$r@_Dj$7$F$$$^$9!#(B 291.48 +$B<B:]$K(B \envar{PYTHONPATH} $B4D6-JQ?t$K@_Dj$9$kCM$O!"(B 291.49 +$B3F<+$N4D6-$G(B Python $B$,$I$N$h$&$K@_Dj$5$l$F$$$k$+$K0MB8$7$^$9$,!"(B 291.50 +$B@_Dj$9$Y$-CM$rF@$k$N$O4JC1$G$9!#(B 291.51 +$B@_DjCM$K3N?.$,;}$F$J$$>l9g!"(B 291.52 +$B>e5-$N%$%s%9%H!<%kMQ%9%/%j%W%H$N=PNO$r8+$F!"(B 291.53 +\texttt{mercurial} 291.54 +$B%G%#%l%/%H%j$NFbMF$,%$%s%9%H!<%k$5$l$k@h$r3NG'$7$F$/$@$5$$!#(B 291.55 + 291.56 +\section{On Windows} 291.57 + 291.58 +Windows $B>e$G(B Mercurial $B$r%=!<%9$+$i%S%k%I$9$k$K$O!"(B 291.59 +$BMM!9$J%D!<%k!"AjEv$J5;=QE*CN<1$K2C$($F!"(B 291.60 +$B>/$J$+$i$LG&BQ$,MW5a$5$l$^$9!#(B 291.61 +``$B5$7Z$K;H$C$F$_$?$$(B''$B>l9g$K$O!"(B 291.62 +$B%=!<%9$+$i$N%S%k%I$O(B\emph{$BA4$/$*A&$a$G$-$^$;$s(B}$B!#(B 291.63 +Mercurial $B$=$N$b$N$r%O%C%/$9$k$N$GL5$$8B$j!"(B 291.64 +$B%P%$%J%jHG$NMxMQ$r$*A&$a$7$^$9(B\footnote{$BLuCm(B: 291.65 +$B$I$&$7$F$b:G?7$N(B Mercurial $B%=!<%9$rMxMQ$7$?$$>l9g!"(B 291.66 +Windows $B%M%$%F%#%V$J?6$kIq$$$O4|BT$G$-$^$;$s$,!"(B 291.67 +Cygwin $B>e$G(B Mercurial $B$r%S%k%I$9$k$H$$$&<j$b$"$j$^$9!#(B}$B!#(B 291.68 + 291.69 +Windows $B>e$G(B Mercurial $B$r%=!<%9$+$i%S%k%I$9$k>l9g!"(B 291.70 +$BB?$/$NLq2p;v$,5/$-$k$3$H$r3P8g$7$?>e$G!"(B 291.71 +Mercurial $B$N(B Wiki $B>e$K$"$k(B 291.72 +\url{http://www.selenic.com/mercurial/wiki/index.cgi/WindowsInstall} 291.73 +$B$K<($5$l$F$$$k(B``$B6lFq$NF;(B''$B$rC)$C$F$/$@$5$$!#(B 291.74 + 291.75 +%%% Local Variables: 291.76 +%%% mode: latex 291.77 +%%% TeX-master: "00book" 291.78 +%%% End:
292.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 292.2 +++ b/ja/svg2eps.sh Fri Aug 14 12:10:47 2009 -0700 292.3 @@ -0,0 +1,3 @@ 292.4 +#!/bin/sh 292.5 + 292.6 +inkscape -E $1 $2
293.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 293.2 +++ b/ja/svg2eps_w32.sh Fri Aug 14 12:10:47 2009 -0700 293.3 @@ -0,0 +1,3 @@ 293.4 +#!/bin/sh 293.5 + 293.6 +inkscape -E `cygpath -w -a $1` `cygpath -w -a $2`
294.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 294.2 +++ b/ja/svg2png.sh Fri Aug 14 12:10:47 2009 -0700 294.3 @@ -0,0 +1,3 @@ 294.4 +#!/bin/sh 294.5 + 294.6 +inkscape -D -e $1 $2
295.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 295.2 +++ b/ja/svg2png_w32.sh Fri Aug 14 12:10:47 2009 -0700 295.3 @@ -0,0 +1,3 @@ 295.4 +#!/bin/sh 295.5 + 295.6 +inkscape -D -e `cygpath -w -a $1` `cygpath -w -a $2`
296.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 296.2 +++ b/ja/template.tex Fri Aug 14 12:10:47 2009 -0700 296.3 @@ -0,0 +1,600 @@ 296.4 +\chapter{Customising the output of Mercurial} 296.5 +\label{chap:template} 296.6 + 296.7 +Mercurial $B$O!"(B 296.8 +$B>pJsI=<($NBN:[$r@)8f$9$k6/NO$J;EAH$_$rDs6!$7$F$$$^$9!#(B 296.9 +$B$3$N;EAH$_$O%F%s%W%l!<%H$K4p$E$$$F$*$j!"(B 296.10 +$B%F%s%W%l!<%H$r;HMQ$9$k$3$H$G!"(B 296.11 +$BC1H/$N%3%^%s%I=PNO$N8GM-2=$b!"(B 296.12 +Mercurial $BAH$_9~$_$N%&%'%V%$%s%?%U%'!<%9$N8+$+$1A4BN$N%+%9%?%^%$%:$b$G$-$^$9!#(B 296.13 + 296.14 +\section{Using precanned output styles} 296.15 +\label{sec:style} 296.16 + 296.17 +Mercurial $B$K$OB(;HMQ$G$-$k=PNO!VMM<0!W$N4v$D$+$,F1:-$5$l$F$$$^$9!#(B 296.18 +$B!VMM<0!W$H$O!"(B 296.19 +$BC/$+$K$h$C$F=q$+$l$F!"(B 296.20 +Mercurial $B$,C5$7=P$;$k2?=h$+$K%$%s%9%H!<%k$5$l$?!"(B 296.21 +$B;vA0$KMQ0U$5$l$?%F%s%W%l!<%H$N$3$H$G$9!#(B 296.22 + 296.23 +Mercurial $B$KF1:-$5$l$?!VMM<0!W$r8+$kA0$K!"(B 296.24 +Mercurial $B$NI8=`E*$J=PNO$r8+$F$_$^$7$g$&!#(B 296.25 + 296.26 +\interaction{template.simple.normal} 296.27 + 296.28 +$B$3$N=PNO$OM-1W$G$O$"$j$^$9$,!"(B 296.29 +$B%A%'%s%8%;%C%HKh$K#59T$H$$$&B?$/$NI=<(NN0h$,I,MW$G$9(B 296.30 +\texttt{compact} $BMM<0$O!"(B 296.31 +$BI=BjEy$r>J$/$3$H$G!"(B 296.32 +$B$3$N=PNO$r#39T$KDc8:$7$^$9!#(B 296.33 + 296.34 +\interaction{template.simple.compact} 296.35 + 296.36 +\texttt{changelog} $BMM<0$+$i$O!"(B 296.37 +Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$N;}$DI=8=NO$r3@4V8+$k$3$H$,$G$-$^$9!#(B 296.38 +$B$3$NMM<0$O!"(B 296.39 +GNU $B%W%m%8%'%/%H$N(B 296.40 +changelog $B%,%$%I%i%$%s(B\cite{web:changelog}$B$K1h$C$?=PNO$r9T$$$^$9!#(B 296.41 + 296.42 +\interaction{template.simple.changelog} 296.43 + 296.44 +Mercurial $B$N4{Dj=PNOMM<0$,(B 296.45 +\texttt{default} $B$H$$$&L>A0$G$"$k$3$H$rCN$C$F$b6C$/$[$I$N$3$H$OL5$$$G$7$g$&!#(B 296.46 + 296.47 +\subsection{Setting a default style} 296.48 + 296.49 +$B9%$_$NMM<0$NL>A0$r(B \hgrc\ $B%U%!%$%k$G;XDj$9$k$3$H$G!"(B 296.50 +Mercurial $B$,%3%^%s%I<B9T$N:]$K;HMQ$9$k=PNOMM<0$rJQ$($k;v$,$G$-$^$9!#(B 296.51 + 296.52 +\begin{codesample2} 296.53 + [ui] 296.54 + style = compact 296.55 +\end{codesample2} 296.56 + 296.57 +$B<+J,<+?H$GMM<0$rDj5A$7$?>l9g!"(B 296.58 +$B<+J,$NMM<0%U%!%$%k$X$N%Q%9$r;XDj$9$kJ}K!$H!"(B 296.59 +$B<+J,$NMM<0%U%!%$%k$r(B Mercurial $B$,C5$7=P$;$k>l=j$X%3%T!<$9$kJ}K!(B 296.60 +$B!J0lHL$K$O(B Mercurial $B$,%$%s%9%H!<%k$5$l$?%G%#%l%/%H%jD>2<$N(B 296.61 +\texttt{templates} $B%G%#%l%/%H%j!K$N$I$A$i$G$G$b!"(B 296.62 +$B<+J,$NMM<0%U%!%$%k$r;H$&$3$H$,$G$-$^$9!#(B 296.63 + 296.64 +\section{Commands that support styles and templates} 296.65 + 296.66 +``\texttt{log}$BE*$J(B'' $BA4$F$N(B Mercurial $B%3%^%s%I$KBP$7$F!"(B 296.67 +$BMM<0$d%F%s%W%l!<%H$rE,MQ$G$-$^$9!#(B 296.68 +$BNc$($P!"(B\hgcmd{incoming}$B!"(B\hgcmd{log}$B!"(B\hgcmd{outgoing} 296.69 +$B$*$h$S(B \hgcmd{tip} $B$,$=$&$G$9(B\footnote{$BLuCm(B: 296.70 +Mercurial 0.9.5 $BHG;~E@$G$O!"$3$l0J30$K(B 296.71 +\hgcmd{heads} $B$*$h$S(B \hgcmd{parents} 296.72 +$B$,%F%s%W%l!<%H$r%5%]!<%H$7$F$$$^$9!#(B}$B!#(B 296.73 + 296.74 +$BI.<T$,$3$N%^%K%e%"%k$r<9I.$7$F$$$k;~E@$G$O!"(B 296.75 +$BMM<0$d%F%s%W%l!<%H$KBP1~$7$F$$$k%3%^%s%I$O!"(B 296.76 +$B$=$lDxB?$/$"$j$^$;$s!#(B 296.77 +$B$7$+$7!"BP1~:Q$_$N%3%^%s%I$O!"(B 296.78 +$B=PNO$N%+%9%?%^%$%:$,I,MW@-$,Hs>o$K9b$$%3%^%s%I72$G$7$?$N$G!"(B 296.79 +Mercurial $B%f!<%6$N%3%_%e%K%F%#$+$i$O!"(B 296.80 +$BB>$N%3%^%s%I$K$*$1$kMM<0$d%F%s%W%l!<%H$X$NBP1~$NMWK>$O!"(B 296.81 +$B:#$N$H$3$m$"$^$j$"$j$^$;$s!#(B 296.82 + 296.83 +\section{The basics of templating} 296.84 + 296.85 +Mercurial $B$G8@$&%F%s%W%l!<%H$H$O!"(B 296.86 +$BBg;(GD$K8@$&$J$i0lJR$N%F%-%9%H$G$9!#(B 296.87 +$B7h$7$FJQ99$5$l$J$$ItJ,$,$"$k0lJ}$G!"(B 296.88 +$BI,MW$K1~$8$F(B\emph{$BE83+(B}$B$d?7$?$J%F%-%9%H$G$NCV49$,<B;\$5$l$^$9!#(B 296.89 + 296.90 +$B>\:Y$r@bL@$9$kA0$K!"(B 296.91 +Mercurial $B$NDL>o=PNO$N4JC1$JNc$r$b$&0lEY8+$F$_$^$7$g$&!#(B 296.92 + 296.93 +\interaction{template.simple.normal} 296.94 + 296.95 +$B$=$l$G$O!"(B 296.96 +$B=PNO$rJQ$($k$?$a$N%F%s%W%l!<%H$r;XDj$7$F!"(B 296.97 +$BF1$8%3%^%s%I$r<B9T$7$F$_$^$7$g$&!#(B 296.98 + 296.99 +\interaction{template.simple.simplest} 296.100 + 296.101 +$B>e5-$NNc$O!"2DG=$J8B$j:G$b4JC1$J%F%s%W%l!<%H$H$7$F!"(B 296.102 +$B%A%'%s%8%;%C%HKh$KI=<($5$l$k@EE*$J%F%-%9%H$r;XDj$9$k$@$1$NNc$G$9!#(B 296.103 +\hgcmd{log} $B%3%^%s%I$KBP$9$k(B 296.104 +\hgopt{log}{--template} $B%*%W%7%g%s;XDj$O!"(B 296.105 +$B%A%'%s%8%;%C%HKh$NI=<($N:]$K;HMQ$9$k%F%s%W%l!<%H$H$7$F!"(B 296.106 +$B;XDj$5$l$?%F%-%9%H$r;HMQ$9$k$3$H$r(B Mercurial $B$K;X<($7$^$9!#(B 296.107 + 296.108 +$B>e5-$N%F%s%W%l!<%HJ8;zNs$O!"(B``\Verb+\n+'' $B$G=*N;$7$F$$$kE@$KCm0U$7$F$/$@$5$$!#(B 296.109 +$B$3$l$O(B\emph{$B%(%9%1!<%W%7!<%1%s%9(B}$B$H8F$P$l$k$b$N$G!"(B 296.110 +$B8D!9$N%F%s%W%l!<%HMWAG$N=*C<$G2~9T$rI=<($9$k$3$H$r(B 296.111 +Mercurial $B$K;X<($7$^$9!#(B 296.112 +$B$3$N2~9T$r>JN,$7$?>l9g!"(B 296.113 +Mercurial $B$O8D!9$N=PNOMWAG$rC10l9T$G=PNO$7$^$9!#(B 296.114 +$B%(%9%1!<%W%7!<%1%s%9$K4X$9$k>\:Y$O!"(B 296.115 +\ref{sec:template:escape}~$B@a$r;2>H$7$F$/$@$5$$!#(B 296.116 + 296.117 +$B>o$K8GDj$5$l$?J8;zNs$rI=<($9$k%F%s%W%l!<%H$O!"$"$^$jM-MQ$H$O8@$($^$;$s$N$G!"(B 296.118 +$B$b$&>/$7J#;($J$b$N$KD)@o$7$F$_$^$7$g$&!#(B 296.119 + 296.120 +\interaction{template.simple.simplesub} 296.121 + 296.122 +$B$4Mw$NDL$j!"(B 296.123 +$B%F%s%W%l!<%HCf$N(B ``\Verb+{desc}+'' $BJ8;zNs$O!"(B 296.124 +$B%A%'%s%8%;%C%HKh$N%m%0%a%C%;!<%8$GCV49$5$l$F=PNO$5$l$^$9!#(B 296.125 +$BGH3g8L!J(B``\texttt{\{}'' $B5Z$S(B ``\texttt{\}}''$B!K(B 296.126 +$B$G0O$^$l$?%F%-%9%H$,8!=P$5$l$?:]$K$O!"(B 296.127 +$B$I$s$J%F%-%9%H$,0O$^$l$F$$$?>l9g$G$b>o$K!"(B 296.128 +$B3g8L$*$h$S%F%-%9%HItJ,$NE83+$,(B Mercurial $B$K$h$j;n$_$i$l$^$9!#(B 296.129 +$BGH3g8L$=$N$b$N$rI=<($7$?$$>l9g$O!"(B 296.130 +\ref{sec:template:escape}~$B@a$G=R$Y$kJ}K!$G!"(B 296.131 +$BGH3g8L$r%(%9%1!<%W$7$J$1$l$P$J$j$^$;$s!#(B 296.132 + 296.133 +\section{Common template keywords} 296.134 +\label{sec:template:keyword} 296.135 + 296.136 +$B0J2<$N%-!<%o!<%I$r;HMQ$9$k$3$H$G!"(B 296.137 +$B$9$0$K$G$b4JC1$J%F%s%W%l!<%H$r=q$/$3$H$,$G$-$^$9!#(B 296.138 + 296.139 +\begin{description} 296.140 + 296.141 +\item[\tplkword{author}] $BJ8;zNs!#(B 296.142 + $B%A%'%s%8%;%C%H$N:n@.<T!#(B 296.143 + $B%A%'%s%8%;%C%H:n@.8e$OJQ99$5$l$^$;$s!#(B 296.144 + 296.145 +\item[\tplkword{branches}] $BJ8;zNs!#(B 296.146 + $B%A%'%s%8%;%C%H$,%3%_%C%H$5$l$?%V%i%s%A$NL>A0!#(B 296.147 + $B%V%i%s%AL>$,(B \texttt{default} $B$N>l9g$O6u$G$9!#(B 296.148 + 296.149 +\item[\tplkword{date}] $BF|IU>pJs!#(B 296.150 + $B%A%'%s%8%;%C%H$,%3%_%C%H$5$l$?F|;~!#(B 296.151 + $B$3$NCM$O2DFI@-$,(B\emph{$B$"$j$^$;$s(B}$B$N$G!"(B 296.152 + $BE,@Z$KJ8;zNs2=$9$k%U%#%k%?$KEO$9I,MW$,$"$j$^$9!#(B 296.153 + $B%U%#%k%?$K4X$9$k>\:Y$O(B\ref{sec:template:filter}~$B@a$r;2>H$7$F$/$@$5$$!#(B 296.154 + $BF|;~$O?tCM$NBP$H$7$FI=$5$l$^$9!#(B 296.155 + $B:G=i$N?tCM$O(B Unix UTC $B%?%$%`%9%?%s%W!J(B1970 $BG/(B 1 $B7n(B 1 $BF|$+$i$N7P2aIC!K$G!"(B 296.156 + $B#2$DL\$N?tCM$O%3%_%C%H$N:]$N(B UTC $B$+$i$N%?%$%`%>!<%s%*%U%;%C%HIC?t$G$9!#(B 296.157 + 296.158 +\item[\tplkword{desc}] $BJ8;zNs!#(B 296.159 + $B%A%'%s%8%;%C%H$N%m%0%a%C%;!<%8!#(B 296.160 + 296.161 +\item[\tplkword{files}] $BJ8;zNs%j%9%H!#(B 296.162 + $BEv3:%A%'%s%8%;%C%H$GJQ99!&DI2C$J$$$7:o=|$5$l$?A4$F$N%U%!%$%k!#(B 296.163 + 296.164 +\item[\tplkword{file\_adds}] $BJ8;zNs%j%9%H!#(B 296.165 + $BEv3:%A%'%s%8%;%C%H$GDI2C$5$l$?%U%!%$%k!#(B 296.166 + 296.167 +\item[\tplkword{file\_dels}] $BJ8;zNs%j%9%H!#(B 296.168 + $BEv3:%A%'%s%8%;%C%H$G:o=|$5$l$?%U%!%$%k!#(B 296.169 + 296.170 +\item[\tplkword{node}] $BJ8;zNs!#(B 296.171 + $B%A%'%s%8%;%C%H<1JLMQ%O%C%7%eCM$r#4#0J8;z$N#1#6?J?tJ8;zNs2=$7$?$b$N!#(B 296.172 + 296.173 +\item[\tplkword{parents}] $BJ8;zNs%j%9%H!#(B 296.174 + $B%A%'%s%8%;%C%H$N?F!#(B 296.175 + 296.176 +\item[\tplkword{rev}] $B@0?tCM!#(B 296.177 + $B%j%]%8%H%j%m!<%+%k$J%A%'%s%8%;%C%H$N%j%S%8%g%sHV9f!#(B 296.178 + 296.179 +\item[\tplkword{tags}] $BJ8;zNs%j%9%H!#(B 296.180 + $BEv3:%A%'%s%8%;%C%H$K4XO"IU$1$i$l$?%?%0!#(B 296.181 + 296.182 +\end{description} 296.183 + 296.184 +$B4v$D$+<B83$7$F$_$k$3$H$G!"(B 296.185 +$B$3$l$i$N%-!<%o!<%I$r;HMQ$7$?:]$K4|BT$5$l$kF0:n$r8+$k$3$H$,$G$-$^$9!#(B 296.186 +$B?^(B~\ref{fig:template:keywords}$B$r;2>H$7$F$/$@$5$$!#(B 296.187 + 296.188 +\begin{figure} 296.189 + \interaction{template.simple.keywords} 296.190 + \caption{Template keywords in use} 296.191 + \label{fig:template:keywords} 296.192 +\end{figure} 296.193 + 296.194 +$BA0=R$7$?$h$&$K!"(B 296.195 +\tplkword{date} $B%-!<%o!<%I$O2DFI@-$N$"$k=PNO$r@8@.$7$^$;$s$N$G!"(B 296.196 +$BFCJL07$$$9$kI,MW$,$"$j$^$9!#(B 296.197 +$B$=$N$?$a$K$O(B \emph{filter} $B$r;H$&I,MW$,$"$j$^$9$,!"(B 296.198 +$B>\:Y$O(B \ref{sec:template:filter}~$B@a$r;2>H$7$F$/$@$5$$!#(B 296.199 + 296.200 +\interaction{template.simple.datekeyword} 296.201 + 296.202 +\section{Escape sequences} 296.203 +\label{sec:template:escape} 296.204 + 296.205 +Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$O!"(B 296.206 +$B:G$b9-$/;H$o$l$F$$$kJ8;zNs%(%9%1!<%W%7!<%1%s%9$rG'<1$7$^$9!#(B 296.207 +$B%P%C%/%9%i%C%7%e!J(B``\Verb+\+''$B!K$r8!CN$7$?:]$K$O!"(B 296.208 +$B$=$l$KB3$/J8;z$r8+$F!"(B 296.209 +$B$=$l$i#2$D$NJ8;z$r0J2<$K<($9$h$&$JC1FH$NJ8;z$KCV49$7$^$9!#(B 296.210 + 296.211 +\begin{description} 296.212 +\item[\Verb+\textbackslash\textbackslash+] $B%P%C%/%9%i%C%7%e!J(B``\Verb+\+''$B!K(B 296.213 + $B!?(BASCII~134$B!#(B 296.214 +\item[\Verb+\textbackslash n+] $B2~9T!?(BASCII~12. 296.215 +\item[\Verb+\textbackslash r+] $B9TF,!?(BASCII~15. 296.216 +\item[\Verb+\textbackslash t+] $B%?%V!?(BASCII~11. 296.217 +\item[\Verb+\textbackslash v+] $B?bD>%?%V!?(BASCII~13. 296.218 +\item[\Verb+\textbackslash \{+] $B3+$-GH3g8L!J(B``\Verb+{+''$B!K!?(BASCII~173. 296.219 +\item[\Verb+\textbackslash \}+] $BJD$8GH3g8L!J(B``\Verb+}+''$B!K!?(BASCII~175. 296.220 +\end{description} 296.221 + 296.222 +$B>e5-$N$h$&$K!"(B 296.223 +``\Verb+\+''$B!"(B``\Verb+{+'' $B$J$$$7(B ``\Verb+{+'' 296.224 +$B$=$N$b$N$r4^$`%F%s%W%l!<%H$r;HMQ$7$?$$>l9g!"(B 296.225 +$B$3$l$i$O%(%9%1!<%W$5$l$J$1$l$P$J$j$^$;$s!#(B 296.226 + 296.227 +\section{Filtering keywords to change their results} 296.228 +\label{sec:template:filter} 296.229 + 296.230 +$B%F%s%W%l!<%HE83+$K$*$1$k7k2L$N$&$A$N4v$D$+$O!"(B 296.231 +$BD>$A$K;H$($k$[$I4JJX$J$b$N$G$O$"$j$^$;$s!#(B 296.232 +Mercurial $B$O!"(B 296.233 +$B%-!<%o!<%I$NE83+7k2L$rJQ99$9$k$?$a$K!"(B 296.234 +$BG$0U$N(B\emph{$B%U%#%k%?(B}$B$NO":?$r;XDj$9$k$3$H$r5a$a$F$-$^$9!#(B 296.235 +$B>e5-$N<B9TNc$K$*$$$F4{$K!"(B 296.236 +$B0lHLE*$J%U%#%k%?$G$"$k(B \tplkwfilt{date}{isodate} $B$r!"(B 296.237 +$BF|IU$rFI$a$k$h$&$K$9$k$?$a$K;HMQ$7$F$$$^$9!#(B 296.238 + 296.239 +Mercurial $B$,%5%]!<%H$9$k:G$b0lHLE*$K;HMQ$5$l$k%U%#%k%?$N%j%9%H$r!"(B 296.240 +$B0J2<$K<($7$^$9!#(B 296.241 +$BG$0U$N%F%-%9%H$KE,MQ$G$-$k%U%#%k%?$b$"$l$P!"(B 296.242 +$BFCDj$N>u672<$G$N$_E,MQ2DG=$J$b$N$b$"$j$^$9!#(B 296.243 +$B8D!9$N%U%#%k%?$N@bL@$O!"L>A0$KB3$$$FMxMQ2DG=$J>u67$rDs<($7!"(B 296.244 +$B$=$l$K8z2L$N@bL@$,B3$/7A<0$H$J$C$F$$$^$9!#(B 296.245 + 296.246 +\begin{description} 296.247 +\item[\tplfilter{addbreaks}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B 296.248 + XHTML $B$N(B ``\Verb+<br/>+'' $B%?%0$r!":G=*9T$r=|$/3F9T$NKvHx$KIUM?$7$^$9!#(B 296.249 + $BNc$($P(B ``\Verb+foo\nbar+'' $B$O(B ``\Verb+foo<br/>\nbar+'' $B$H$J$j$^$9!#(B 296.250 + 296.251 +\item[\tplkwfilt{date}{age}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B 296.252 + $B8=:_;~9o$KBP$9$kF|IU$NG/Np$rIA2h$7$^$9!#(B 296.253 + ``\Verb+10 minutes+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B 296.254 + 296.255 +\item[\tplfilter{basename}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B 296.256 + \tplkword{files} $B%-!<%o!<%I$d$=$NAjBPCM$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B 296.257 + $B%F%-%9%H$r%Q%9$H$7$F07$$!"$=$N%Y!<%9%M!<%`$rJV$7$^$9!#(B 296.258 + $BNc$($P(B ``\Verb+foo/bar/baz+'' $B$O(B ``\Verb+baz+'' $B$H$J$j$^$9!#(B 296.259 + 296.260 +\item[\tplkwfilt{date}{date}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B 296.261 + Unix $B$N(B \tplkword{date} $B%3%^%s%I$HF1Ey$N%U%)!<%^%C%H$GF|IU$rIA2h$7$^$9$,!"(B 296.262 + $B%?%$%`%>!<%s$r4^$_$^$9!#(B 296.263 + ``\Verb+Mon Sep 04 15:13:13 2006 -0700+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B 296.264 + 296.265 +\item[\tplkwfilt{author}{domain}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B 296.266 + \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B 296.267 + $BEE;R%a!<%k%"%I%l%9$H;W$7$-:G=i$NJ8;zNs$r8+$D$1=P$7!"(B 296.268 + $B%I%a%$%sItJ,$N$_$r<h$j=P$7$^$9!#(B 296.269 + $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B 296.270 + ``\Verb+serpentine.com+'' $B$H$J$j$^$9!#(B 296.271 + 296.272 +\item[\tplkwfilt{author}{email}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B 296.273 + \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B 296.274 + $BEE;R%a!<%k%"%I%l%9$H;W$7$-:G=i$NJ8;zNs$r8+$D$1=P$7$^$9!#(B 296.275 + $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B 296.276 + ``\Verb+bos@serpentine.com+'' $B$H$J$j$^$9!#(B 296.277 + 296.278 +\item[\tplfilter{escape}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B 296.279 + XML/XHTML $B$NFC<lJ8;z$G$"$k(B 296.280 + ``\Verb+&+''$B!"(B``\Verb+<+'' $B$*$h$S(B ``\Verb+>+'' $B$r!"(B 296.281 + XML $B$N<BBN;2>H7A<0$GCV$-49$($^$9!#(B 296.282 + 296.283 +\item[\tplfilter{fill68}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B 296.284 + $B%F%-%9%H$r(B 68 $B7e$K<}$^$k$h$&$K9T$r@^$jJV$7$^$9!#(B 296.285 + \tplfilter{tabindent} $B%U%#%k%?<B;\8e$b(B 296.286 + 80 $B7e$N8GDj%U%)%s%HI}$N2hLL$K<}$a$?$$>l9g!"(B 296.287 + \tplfilter{tabindent} $B%U%#%k%?$KEO$9A0$N%F%-%9%H$KE,MQ$9$k$N$,NI$$$G$7$g$&!#(B 296.288 + 296.289 +\item[\tplfilter{fill76}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B 296.290 + 76 $B7e$K<}$^$k$h$&$K9T$r@^$jJV$7$^$9!#(B 296.291 + 296.292 +\item[\tplfilter{firstline}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B 296.293 + $B%F%-%9%H$N:G=i$N9T$r!"2~9TEy$r4^$^$J$$7A<0$G<h$j=P$7$^$9!#(B 296.294 + 296.295 +\item[\tplkwfilt{date}{hgdate}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B 296.296 + $B2DFI@-$N$"$k?tCM$NAH$H$7$FF|IU$rIA2h$7$^$9!#(B 296.297 + ``\Verb+1157407993 25200+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B 296.298 + 296.299 +\item[\tplkwfilt{date}{isodate}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B 296.300 + ISO~8601 $B7A<0$NJ8;zNs$H$7$FF|IU$rIA2h$7$^$9!#(B 296.301 + ``\Verb+2006-09-04 15:13:13 -0700+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B 296.302 + 296.303 +\item[\tplfilter{obfuscate}] $BG$0U$N%F%-%9%H$KE,MQ2DG=$G$9$,!"(B 296.304 + \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B 296.305 + $BF~NO%F%-%9%H$KBP1~$9$k(B XML $B<BBN;2>H%7!<%1%s%9$r@8@.$7$^$9!#(B 296.306 + $BE57?E*$JEE;R%a!<%k%"%I%l%9<}=8$r9T$&%9%Q%`%\%C%H(B 296.307 + $B!J(Bspambot$B!K$KBP$9$kBP93:v$N#1$D$H$7$FMxMQ2DG=$G$9!#(B 296.308 + 296.309 +\item[\tplkwfilt{author}{person}] $BG$0U$NJ8;zNs$KE,MQ2DG=$G$9$,!"(B 296.310 + \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B 296.311 + $BEE;R%a!<%k%"%I%l%9$h$jA0$NItJ,$r<h$j=P$7$^$9!#(B 296.312 + $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B 296.313 + ``\Verb+Bryan O'Sullivan+'' $B$H$J$j$^$9!#(B 296.314 + 296.315 +\item[\tplkwfilt{date}{rfc822date}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B 296.316 + $BEE;R%a!<%k%X%C%@$HF1$87A<0$GF|IU$rIA2h$7$^$9!#(B 296.317 + ``\Verb+Mon, 04 Sep 2006 15:13:13 -0700+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B 296.318 + 296.319 +\item[\tplkwfilt{node}{short}] $B%A%'%s%8%;%C%H%O%C%7%eCM$KE,MQ2DG=$G$9!#(B 296.320 + $B%A%'%s%8%;%C%H%O%C%7%e$NC;=L7A<0!"B($A(B 12 $B7e$N(B 16 $B?JJ8;zNs$r@8@.$7$^$9!#(B 296.321 + 296.322 +\item[\tplkwfilt{date}{shortdate}] \tplkword{date} $B%-!<%o!<%I$KE,MQ2DG=!#(B 296.323 + $BG/7nF|7A<0$GF|IU$rIA2h$7$^$9!#(B 296.324 + ``\Verb+2006-09-04+'' $B$N$h$&$JJ8;zNs$r@8@.$7$^$9!#(B 296.325 + 296.326 +\item[\tplfilter{strip}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B 296.327 + $BKAF,$J$i$S$KKvHx$N6uGrJ8;z$rA4$F=|30$7$^$9!#(B 296.328 + 296.329 +\item[\tplfilter{tabindent}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B 296.330 + $B:G=i$N9T$r=|$/A4$F$N9T$,%?%VJ8;z$G;O$^$k$h$&$K$7$^$9!#(B 296.331 + 296.332 +\item[\tplfilter{urlescape}] $BG$0U$N%F%-%9%H$KE,MQ2DG=!#(B 296.333 + URL $B2r@O$N:]$K(B``$BFC<lJ8;z(B''$B$H$5$l$kJ8;z$r%(%9%1!<%W$7$^$9!#(B 296.334 + $BNc$($P(B \Verb+foo bar+ $B$O(B \Verb+foo%20bar+ $B$K$J$j$^$9!#(B 296.335 + 296.336 +\item[\tplkwfilt{author}{user}] $BG$0U$NJ8;zNs$KE,MQ2DG=$G$9$,!"(B 296.337 + \tplkword{author} $B%-!<%o!<%I$KBP$7$FE,MQ$9$k$N$,:G$bM-MQ$G$9!#(B 296.338 + $BEE;R%a!<%k%"%I%l%9$+$i(B``$B%f!<%6(B''$BItJ,$r<h$j=P$7$^$9!#(B 296.339 + $BNc$($P(B ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' $B$O(B 296.340 + ``\Verb+bos+'' $B$H$J$j$^$9!#(B 296.341 + 296.342 +\end{description} 296.343 + 296.344 +\begin{figure} 296.345 + \interaction{template.simple.manyfilters} 296.346 + \caption{Template filters in action} 296.347 + \label{fig:template:filters} 296.348 +\end{figure} 296.349 + 296.350 +\begin{note} 296.351 + $BE,MQBP>]30$N%G!<%?$KBP$7$F%U%#%k%?$NE,MQ$r;n$_$?>l9g!"(B 296.352 + Mercurial $B$O<B9T$K<:GT$7$F(B Python $B$NNc30$rI=<($7$^$9!#(B 296.353 + $BNc$($P!"(B\tplkword{desc} $B%-!<%o!<%I$K(B 296.354 + \tplkwfilt{date}{isodate} $B%U%#%k%?$rE,MQ$9$k$N$O$h$m$7$/$"$j$^$;$s!#(B 296.355 +\end{note} 296.356 + 296.357 +\subsection{Combining filters} 296.358 + 296.359 +$B=jDj$N7A<0$G$N=PNO$rF@$k$?$a$K!"(B 296.360 +$B4JC1$K%U%#%k%?$rAH$_9g$o$;$k$3$H$,$G$-$^$9!#(B 296.361 +$B0J2<$NNc$G$O!"%m%0%a%C%;!<%8$NKAF,!&KvHx$N6uGr$r=|30$7!"(B 296.362 +68 $B7e$K<}$^$k$h$&$K2~9T$7$?8e$G!"(B 296.363 +$B$5$i$K#8J8;zJ,!J%?%VJ8;z$,47=,E*$K#8J8;z$H$7$F07$o$l$k(B 296.364 +Unix $BE*$J4D6-$G$O!K$N;z2<$2$,!"(B 296.365 +$B%U%#%k%?O":?$K$h$j<B;\$5$l$^$9!#(B 296.366 + 296.367 +\interaction{template.simple.combine} 296.368 + 296.369 +$B%F%s%W%l!<%H$K$*$1$k(B``\Verb+\t+''$B!J%?%VJ8;z!K$NMxMQ$O!"(B 296.370 +$B:G=i$N9T$N6/@)E*$J;z2<$2$r9T$&$?$a$N$b$N$G$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B 296.371 +\tplkword{tabindent} $B$,:G=i$N9T(B\emph{$B0J30$N(B}$BA4$F$N9T$r;z2<$2$9$k$?$a$K!"(B 296.372 +$B$3$N%?%VJ8;z$,I,MW$G$9!#(B 296.373 + 296.374 +$BO":?$K$*$1$k%U%#%k%?$N=g=x$,=EMW$G$"$kE@$KN10U$7$F$/$@$5$$!#(B 296.375 +$B:G=i$N%U%#%k%?$,%-!<%o!<%I$NCV497k2L$KE,MQ$5$l!"(B 296.376 +$B#2$DL\$N%U%#%k%?$,:G=i$N%U%#%k%?$NE,MQ7k2L$KE,MQ$5$l$k!"(B 296.377 +$B$H$$$&6q9g$G$9!#(B 296.378 +$BNc$($P!"(B 296.379 +\Verb+fill68|tabindent+ $B$H$$$&5-=R$O(B 296.380 +\Verb+tabindent|fill68+ $B$H$OA4$/0c$C$?7k2L$H$J$j$^$9!#(B 296.381 + 296.382 +\section{From templates to styles} 296.383 + 296.384 +$B%3%^%s%I9T$G$N%F%s%W%l!<%H;XDj$O!"(B 296.385 +$B<jAa$/4JC1$K=PNO$r@07A$9$k<jCJ$rDs6!$7$^$9!#(B 296.386 +$B$7$+$7!"%F%s%W%l!<%H$O>iD9$K@.$j$,$A$G$9$+$i!"(B 296.387 +$B%F%s%W%l!<%H$KL>A0IU$1$G$-$l$PJXMx$K$J$j$^$9!#(B 296.388 +$BMM<0!J(Bsytle$B!K%U%!%$%k$O!"L>A0$,IU$1$i$l!"(B 296.389 +$B%U%!%$%k$KJ]B8$5$l$?%F%s%W%l!<%H$N$3$H$G$9!#(B 296.390 + 296.391 +$B$=$l0J>e$K!"(B 296.392 +$B%3%^%s%I9T$G$N(B \hgopt{log}{--template} $B%*%W%7%g%s;HMQ$G$O0z$-=P$;$J$+$C$?(B 296.393 +Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$NG=NO$r!"(B 296.394 +$BMM<0%U%!%$%k$rMQ$$$k$3$H$G0z$-=P$9$3$H$,$G$-$^$9!#(B 296.395 + 296.396 +\subsection{The simplest of style files} 296.397 + 296.398 +$B0J2<$K<($94JC1$JMM<0%U%!%$%k$O!"(B 296.399 +$B#19T$@$1$N$b$N$G$9!#(B 296.400 + 296.401 +\interaction{template.simple.rev} 296.402 + 296.403 +$B$3$NMM<05-=R$O!"(B 296.404 +``$B%A%'%s%8%;%C%H$rI=<($9$k:]$K$O!"(B 296.405 +$B1&JU$N%F%-%9%H$r%F%s%W%l!<%H$H$7$F;HMQ$;$h(B'' 296.406 +$B$H(B Mercurial $B$K;X<($7$^$9!#(B 296.407 + 296.408 +\subsection{Style file syntax} 296.409 + 296.410 +$BMM<0%U%!%$%k$NJ8K!$O4JC1$G$9!#(B 296.411 + 296.412 +\begin{itemize} 296.413 +\item $B%U%!%$%k$O0l9T$E$D=hM}$5$l$^$9!#(B 296.414 + 296.415 +\item $B9TF,$*$h$S9TKv$N6uGr$OL5;k$5$l$^$9!#(B 296.416 + 296.417 +\item $B6u9T$OFI$_Ht$P$5$l$^$9!#(B 296.418 + 296.419 +\item ``\texttt{\#}'' $B$J$$$7(B ``\texttt{;}'' $B$N$$$:$l$+$G;O$^$k9T$O!"(B 296.420 + $B9TA4BN$,%3%a%s%H$H$_$J$5$l!"6u9T$HF1MM$KFI$_Ht$P$5$l$^$9!#(B 296.421 + 296.422 +\item $B9T$O%-!<%o!<%I$G3+;O$5$l$^$9!#(B 296.423 + $B%-!<%o!<%I$O1Q;z$J$$$72<@~!J(Bunderscore$B!K$G3+;O$5$l!"(B 296.424 + $BG$0U8D?t$N1Q?t;z$J$$$72<@~$,B3$-$^$9(B 296.425 + $B!J@55,I=8=$G=q$/$J$i!"(B 296.426 + $B%-!<%o!<%I$O(B ``\Verb+[A-Za-z_][A-Za-z0-9_]*+.'' 296.427 + $B$K9gCW$7$J$1$l$P$J$j$^$;$s!K!#(B 296.428 + 296.429 +\item $B%-!<%o!<%I$KB3$/MWAG$OJ8;z(B ``\texttt{=}'' $B$G$J$1$l$P$J$j$^$;$s$,!"(B 296.430 + $BA08e$KG$0U8D$N6uGrJ8;z$,$"$C$F$b9=$$$^$;$s!#(B 296.431 + 296.432 +\item $B9T$N;D$jItJ,$,0zMQId!J%7%s%0%k%/%)!<%H$J$$$7%@%V%k%/%)!<%H!K(B 296.433 + $B$G0O$^$l$F$$$k>l9g!"(B 296.434 + $B$=$NItJ,$O%F%s%W%l!<%H$NK\BN$H$_$J$5$l$^$9!#(B 296.435 + 296.436 +\item $B9T$N>h$jItJ,$,0zMQId$G0O$^$l$F(B\emph{$B$$$J$$(B}$B>l9g!"(B 296.437 + $B$=$NItJ,$O!"(B 296.438 + $B%F%s%W%l!<%HK\BN$rFbMF$H$7$F;}$D%U%!%$%k$N%U%!%$%kL>$H$_$J$5$l$^$9!#(B 296.439 + 296.440 +\end{itemize} 296.441 + 296.442 +\section{Style files by example} 296.443 + 296.444 +$BMM<0%U%!%$%k$N5-=R$r@bL@$9$k$?$a$K!"(B 296.445 +$B4v$D$+$NNc$r<($7$^$9!#(B 296.446 +$BMM<0%U%!%$%k0l<0$rDL$7$FFI$`$h$j$b!"(B 296.447 +$BHs=j$K4JC1$JNc$+$i;O$a$F!"(B 296.448 +$B4v$D$+$NJ#;($JNc$rDL$7FI$_$9$k$3$H$G!"(B 296.449 +$BDL>o$NMM<0%U%!%$%k:n@.<j=g$r<($=$&$H;W$$$^$9!#(B 296.450 + 296.451 +\subsection{Identifying mistakes in style files} 296.452 + 296.453 +$BMM<0%U%!%$%kCf$KLdBj$,$"$C$?>l9g!"(B 296.454 +Mercurial $B$O$=$C$1$J$$%(%i!<%a%C%;!<%8$rI=<($7$^$9$,!"(B 296.455 +$B0UL#$9$k$H$3$m$,$o$+$C$F$7$^$($P!"(B 296.456 +$B$=$N%a%C%;!<%8$OHs>o$KM-MQ$G$9!#(B 296.457 + 296.458 +\interaction{template.svnstyle.syntax.input} 296.459 + 296.460 +\filename{broken.style} $B$O!"(B 296.461 +\texttt{changeset} $B%-!<%o!<%I$rDj5A$7$h$&$H$7$F$$$k$b$N$N!"(B 296.462 +$B$=$NFbMF$,5-=R$5$l$F$$$J$$E@$KCmL\$7$F$/$@$5$$!#(B 296.463 +$B$3$N$h$&$JMM<0%U%!%$%k$,;XDj$5$l$?>l9g!"(B 296.464 +Mercurial $B$OB(:B$K%a%C%;!<%8$rI=<($7$^$9!#(B 296.465 + 296.466 +\interaction{template.svnstyle.syntax.error} 296.467 + 296.468 +$B$3$N%a%C%;!<%8$O0R05E*$K8+$($^$9$,!"(B 296.469 +$BFI$_2r$/$N$O$=$l$[$IFq$7$/$"$j$^$;$s!#(B 296.470 + 296.471 +\begin{itemize} 296.472 +\item $B:G=i$NMWAG$O!"C1$K(B Mercurial $B$,(B``$B<B9T$r$"$-$i$a$^$7$?(B'' 296.473 + $B$HDLCN$7$F$$$^$9!#(B 296.474 + \begin{codesample4} 296.475 + \textbf{abort:} broken.style:1: parse error 296.476 + \end{codesample4} 296.477 + 296.478 +\item $B<!$NMWAG$O!"%(%i!<$NMW0x$,3JG<$5$l$?MM<0%U%!%$%k$NL>A0$G$9!#(B 296.479 + \begin{codesample4} 296.480 + abort: \textbf{broken.style}:1: parse error 296.481 + \end{codesample4} 296.482 + 296.483 +\item $B%U%!%$%kL>$N<!$O!"%(%i!<$,H/@8$7$?9THV9f$K$J$j$^$9!#(B 296.484 + \begin{codesample4} 296.485 + abort: broken.style:\textbf{1}: parse error 296.486 + \end{codesample4} 296.487 + 296.488 +\item $B:G8e$K!"LdBj$N@bL@$,5-=R$5$l$^$9!#(B 296.489 + \begin{codesample4} 296.490 + abort: broken.style:1: \textbf{parse error} 296.491 + \end{codesample4} 296.492 + $BLdBj$N@bL@$O!J$3$NNc$N$h$&$K!K>o$KL@3N$G$"$k$H$O8B$j$^$;$s$,!"(B 296.493 + $B0E9f$a$$$?$b$N$G$"$C$?$H$7$F$b!"(B 296.494 + $BMM<0%U%!%$%kCf$NLdBj$H$J$k9T$rL\;k3NG'$7$F4V0c$$$r8+$D$1$k>e$G$O!"(B 296.495 + $BKX$I$N>l9g$O<h$k$KB-$i$J$$@bL@$G$9!#(B 296.496 + 296.497 +\end{itemize} 296.498 + 296.499 +\subsection{Uniquely identifying a repository} 296.500 + 296.501 +$BC;$$J8;zNs$r<1JL;R$H$7$F(B 296.502 +Mercurial $B%j%]%8%H%j$r(B``$B35$M0l0U$K(B''$B<1JL(B\footnote{$BLuCm(B: 296.503 +$B$3$3$G8@$&!V%j%]%8%H%j$N<1JL!W$O!"(B 296.504 +$B$`$7$m!V%W%m%8%'%/%H$N<1JL!W$K6a$$%K%e%"%s%9$H;W$o$l$^$9!#(B 296.505 +}$B$7$?$$>l9g!"(B 296.506 +$B%j%]%8%H%j$N:G=i$N%j%S%8%g%s$r;HMQ$9$k$N$,NI$$$G$7$g$&!#(B 296.507 + 296.508 +\interaction{template.svnstyle.id} 296.509 + 296.510 +$B$3$NCM$O0l0U$G$"$k$3$H$,J]>Z$5$l$F$$$^$;$s$,!"(B 296.511 +$B$=$l$G$bB?$/$N>l9g$K$*$$$FM-MQ$G$9!#(B 296.512 + 296.513 +\begin{itemize} 296.514 +\item $B40A4$K6u$N%j%]%8%H%j$G$O%j%S%8%g%s(B~0$B$,B8:_$7$J$$$?$a!"(B 296.515 + $B$3$NJ}K!$O5!G=$7$^$;$s!#(B 296.516 + 296.517 +\item $B0JA0$OJL!9$@$C$?J#?t$N%j%]%8%H%j$r%^!<%8$7$?$b$N$H!"(B 296.518 + $B%^!<%8A0$N%j%]%8%H%j$rJ;MQ$7$F$$$k>l9g(B 296.519 + $B!J$3$N$h$&$J;vBV$OHs>o$K5)$G$O$"$j$^$9$,!K!"(B 296.520 + $B$=$l$i$N%j%]%8%H%j$N4V$G$O!"(B 296.521 + $B$3$NJ}K!$K$h$k<1JL$O5!G=$7$^$;$s!#(B 296.522 + 296.523 +\end{itemize} 296.524 + 296.525 +$B%j%]%8%H%j<1JL;R$NMxMQNc$r0J2<$K<($7$^$9!#(B 296.526 + 296.527 +\begin{itemize} 296.528 +\item $B%5!<%P>e$N%j%]%8%H%j$r4IM}$7$F$$$k%G!<%?%Y!<%9$G$N!"(B 296.529 + $B%F!<%V%k$K$*$1$k%-!<$H$7$F$N;HMQ(B 296.530 + 296.531 +\item \{\emph{$B%j%]%8%H%j<1JL;R(B}, \emph{$B%j%S%8%g%s<1JL;R(B}\} 296.532 + $B$H$$$&%?%W%k$N0lIt$H$7$F$N;HMQ!#(B 296.533 + $B%S%k%I$dB>$N<+F02=$5$l$?=hM}$r<B;\$9$k:]$K!"(B 296.534 + $B$3$N%?%W%k>pJs$rJ]B8$7$F$*$/$3$H$G!"(B 296.535 + $B8e$K=hM}$r(B``$B:F8=(B''$B$9$k$3$H$,2DG=$G$9!#(B 296.536 + 296.537 +\end{itemize} 296.538 + 296.539 +\subsection{Mimicking Subversion's output} 296.540 + 296.541 +$BNc$($P(B Subversion $B$N$h$&$J!"(B 296.542 +$BB>$N9=@.4IM}%D!<%k$N%G%U%)%k%H=PNO7A<0$r$^$M$F$_$^$7$g$&!#(B 296.543 + 296.544 +\interaction{template.svnstyle.short} 296.545 + 296.546 +Subversion $B$N=PNOMM<0$O$+$J$jC1=c$G$9$N$G!"(B 296.547 +$B=PNOFbMF$r%U%!%$%k$KJ]B8$7!"(B 296.548 +$B=PNO%F%-%9%HCf$G(B Subversion $B$K$h$j!JF0E*$K!K@8@.$5$l$kItJ,$r!"(B 296.549 +$BE83+$5$l$k%F%s%W%l!<%HCM(B\footnote{$BLuCm!'(B $B%-!<%o!<%I$N$3$H!)(B 296.550 +}$B$GCV$-49$($k$N$OMF0W$G$7$g$&!#(B 296.551 + 296.552 +\interaction{template.svnstyle.template} 296.553 + 296.554 +$B$3$N%F%s%W%l!<%H$K$h$k=PNO$,!"(B 296.555 +Subversion $B$K$h$j@8@.$5$l$k=PNOMM<0$+$i0oC&$9$k>l9g(B\footnote{ 296.556 +$BLuCm!'(B ``a few small ways'' $B$h$j$O(B ``a few small point'' $B$G!"(B 296.557 +$B!V0oC&$9$k2U=j!W$NJ}$,NI$/$J$$$+!)(B}$B$,4v$D$+$"$j$^$9!#(B 296.558 + 296.559 +\begin{itemize} 296.560 +\item Subversion $B$O!"(B``$B2DFI@-$N$"$k(B''$BF|IU(B 296.561 + $B!J>e5-$N=PNONc$K$*$1$k(B ``\texttt{Wed, 27 Sep 2006}''$B!K(B 296.562 + $B$r4]3g8L$NCf$KI=<($7$^$9!#(B 296.563 + Mercurial $B$N%F%s%W%l!<%H%(%s%8%s$O!"(B 296.564 + $B;~9o$H%?%$%`%>!<%s$NL5$$$3$N7A<0$GF|IU$rI=<($9$k<jCJ$rDs6!$7$F$$$^$;$s!#(B 296.565 + 296.566 +\item $B%F%s%W%l!<%HKvHx$K(B 296.567 + ``\texttt{-}''$BJ8;z$r0lGU$K;H$C$?9T$NI=<($rG[CV$9$k$3$H$G(B 296.568 + Subversion $B$N(B``$BJ,N%(B''$B@~$r$^$M$F$$$^$9!#(B 296.569 + Subversion $B$N=PNO$K;w$;$k$?$a!"(B 296.570 + $B=PNO$N:G=i$NJ,N%@~I=<($K$O!"(B 296.571 + $B%F%s%W%l!<%H%(%s%8%s$N(B 296.572 + \tplkword{header} $B%-!<%o!<%I$r;HMQ$7$F$$$^$9!J8e=R$7$^$9!K!#(B\footnote{ 296.573 + $BLuCm!'$3$l$O(B deviate $B$JE@$G$O$J$$5$$,!D(B } 296.574 + 296.575 +\item Subversion $B$N=PNO$O!"(B 296.576 + $B%X%C%@It$K%3%_%C%H%a%C%;!<%8$N9T?t$,I=<($5$l$^$9!#(B 296.577 + Mercurial $B$G$O$3$l$KAjEv$9$k>pJs$rI=<($9$k$3$H$,$G$-$^$;$s!#(B 296.578 + $B=hM}BP>]$H$J$k%G!<%?$N9T?t$r?t$(>e$2$k%U%#%k%?$r!"(B 296.579 + $B%F%s%W%l!<%H%(%s%8%s$,8=;~E@$G$ODs6!$7$F$$$J$$$?$a$G$9!#(B 296.580 + 296.581 +\end{itemize} 296.582 + 296.583 +Subversion $B$N=PNONc$r85$K!"(B 296.584 +$B>e5-%F%s%W%l!<%H$N$h$&$J%-!<%o!<%I!&%U%#%k%?$X$NCV$-49$($r9T$&:n6H$O!"(B 296.585 +$B$;$$$<$$$,#1!A#2J,$G:Q$`:n6H$G$9!#(B 296.586 +$BMM<0%U%!%$%k$O!"C1$K$3$N%F%s%W%l!<%H$r;2>H$9$l$PNI$$$N$G$9!#(B 296.587 + 296.588 +\interaction{template.svnstyle.style} 296.589 + 296.590 +$B%F%s%W%l!<%H%U%!%$%k%F%-%9%H$rMM<0%U%!%$%k$GD>@\@_Dj$9$k$K$O!"(B 296.591 +$B0zMQId$G0O$_!"2~9TJ8;z$r(B ``\texttt{\\n}'' $B$GCV$-49$($l$PNI$$$N$G$9$,!"(B 296.592 +$BMM<0%U%!%$%k$rHs>o$KFI$_Fq$/$7$F$7$^$$$^$9!#(B 296.593 +$B%F%s%W%l!<%H$rMM<0%U%!%$%k$KD>@\5-=R$9$k$+!"(B 296.594 +$B%F%s%W%l!<%H%U%!%$%k$K5-=R$7$?$b$N$rMM<0%U%!%$%k$+$i;2>H$9$k$+$r7h$a$k:]$K$O!"(B 296.595 +$B2DFI@-$r4p=`$H$9$k$N$,NI$$$G$7$g$&!#(B 296.596 +$BMM<0%U%!%$%k$NBg$-$5$dJ#;($5$,9b$^$k>l9g$O!"(B 296.597 +$B%F%s%W%l!<%H%F%-%9%H$r5-=R$9$k$N$G$O$J$/!"(B 296.598 +$B30It%U%!%$%k$K=P$7$F$7$^$$$^$7$g$&!#(B 296.599 + 296.600 +%%% Local Variables: 296.601 +%%% mode: latex 296.602 +%%% TeX-master: "00book" 296.603 +%%% End:
297.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 297.2 +++ b/ja/tour-basic.tex Fri Aug 14 12:10:47 2009 -0700 297.3 @@ -0,0 +1,846 @@ 297.4 +\chapter{A tour of Mercurial: the basics} 297.5 +\label{chap:tour-basic} 297.6 + 297.7 +\section{Installing Mercurial on your system} 297.8 +\label{sec:tour:install} 297.9 + 297.10 +$B0lHLE*$JA4$F$N(B OS $B8~$1$K!"(B 297.11 +$B%S%k%I:Q$_$N(B Mercurial $B%P%$%J%jHG$,Ds6!$5$l$F$$$^$9!#(B 297.12 +$B%P%$%J%jHG$r;HMQ$9$k$3$H$G!"(B 297.13 +$B4JC1$K(B Mercurial $B$r%;%C%H%"%C%W$9$k$3$H$,$G$-$^$9!#(B 297.14 + 297.15 +\subsection{Linux} 297.16 + 297.17 +Linux $B%G%#%9%H%j%S%e!<%7%g%s$O!"(B 297.18 +$B$=$l$>$l8GM-$N%Q%C%1!<%84IM}%D!<%k!"(B 297.19 +$B%Q%C%1!<%8:n@.J}?K!"$J$i$S$K3+H/%Z!<%9$r;}$C$F$$$^$9$N$G!"(B 297.20 +$BA4$F$N%P%$%J%jHG(B Mercurial 297.21 +$B$N%$%s%9%H!<%k<j=g$K4X$9$kJq3gE*$J@bL@$r9T$&$N$O:$Fq$G$9!#(B 297.22 +$B$^$?!"(B 297.23 +$B%P%$%J%jHG$N%$%s%9%H!<%k$K$h$C$FMxMQ2DG=$J(B Mercurial $B$N%P!<%8%g%s$O!"(B 297.24 +$BEv3:%G%#%9%H%j%S%e!<%7%g%s$N%Q%C%1!<%8J]<iC4Ev<T$,!"(B 297.25 +$B$I$NDxEY3hH/$G$"$k$+$K$h$C$F0[$J$j$^$9!#(B 297.26 + 297.27 +$B4JJX2=$N$?$a!"(B 297.28 +$BCxL>$J(B Linux $B%G%#%9%H%j%S%e!<%7%g%s$K$*$1$k!"(B 297.29 +$B%3%^%s%I%i%$%s$rMQ$$$?(B Mercurial $B$N%$%s%9%H!<%k$K8BDj$7$F@bL@$7$^$9!#(B 297.30 +$BKX$I$N%G%#%9%H%j%S%e!<%7%g%s$G$O!"(B 297.31 +\texttt{mercurial} $B$H$$$&L>A0$N%Q%C%1!<%8$rC5$7$?$J$i$P!"(B 297.32 +$B%/%j%C%/$R$H$D$G(B Mercurial $B$,%$%s%9%H!<%k$G$-$k$h$&$J!"(B 297.33 +$B%0%i%U%#%+%k$J%Q%C%1!<%84IM}%D!<%k$,Ds6!$5$l$F$$$^$9!#(B 297.34 + 297.35 +\begin{description} 297.36 +\item[Debian] 297.37 + \begin{codesample4} 297.38 + apt-get install mercurial 297.39 + \end{codesample4} 297.40 + 297.41 +\item[Fedora Core] 297.42 + \begin{codesample4} 297.43 + yum install mercurial 297.44 + \end{codesample4} 297.45 + 297.46 +\item[Gentoo] 297.47 + \begin{codesample4} 297.48 + emerge mercurial 297.49 + \end{codesample4} 297.50 + 297.51 +\item[OpenSUSE] 297.52 + \begin{codesample4} 297.53 + yum install mercurial 297.54 + \end{codesample4} 297.55 + 297.56 +\item[Ubuntu] Ubuntu $B$N(B Mercurial $B%Q%C%1!<%8$OHs>o$K8E$$$N$G!"(B 297.57 + $B;HMQ$9$Y$-$G$O$"$j$^$;$s!#(B 297.58 + $B$G$-$l$P!"(BDebian $B%Q%C%1!<%8$r%j%S%k%I$7$F%$%s%9%H!<%k$7$F$/$@$5$$!#(B 297.59 + $B$*$=$i$/(B Mercurial $B$r%=!<%9$+$i%S%k%I$9$kJ}$,4JC1$G$7$g$&!#(B 297.60 + $B$=$N>l9g$N>\:Y$O!"(B\ref{sec:srcinstall:unixlike}~$B@a$r;2>H$7$F$/$@$5$$!#(B 297.61 + 297.62 +\end{description} 297.63 + 297.64 +\subsection{Mac OS X} 297.65 + 297.66 +Mac OS~X $B8~$1$N(B Mercurial $B%$%s%9%H!<%i$O!"(B 297.67 +Lee Cantey $B$K$h$C$F(B 297.68 +\url{http://mercurial.berkwood.com} $B$G8x3+$5$l$F$$$^$9!#(B 297.69 +$B$3$N%Q%C%1!<%8$O!"(BIntel $B$*$h$S(B Power $B$NN>(B Mac $B$GF0:n$7$^$9!#(B 297.70 +$B$3$N%$%s%9%H!<%i$r;HMQ$9$kA0$K!"(B 297.71 +Universal MacPython~\cite{web:macpython} 297.72 +$B$H8_49@-$N$"$k(B Python $B$r%$%s%9%H!<%k$9$kI,MW$,$"$j$^$9!#(B 297.73 +Lee $B;a$N%5%$%H$K$"$k<j=g$rF'$a$P!"4JC1$K%$%s%9%H!<%k$G$-$^$9!#(B 297.74 + 297.75 +\subsection{Solaris} 297.76 + 297.77 +$BL$9;!#(BXXX 297.78 + 297.79 +\subsection{Windows} 297.80 + 297.81 +Windows $B8~$1$N(B Mercurial $B%$%s%9%H!<%i$O!"(B 297.82 +Lee Cantey $B$K$h$C$F(B 297.83 +\url{http://mercurial.berkwood.com} $B$G8x3+$5$l$F$$$^$9!#(B 297.84 +$B$3$N%Q%C%1!<%8$OB>$N%Q%C%1!<%8$X$N0MB8@-$,$"$j$^$;$s$N$G!"(B 297.85 +$BC1FH$GMxMQ$G$-$^$9!#(B 297.86 + 297.87 +\begin{note} 297.88 + $B4pDl>uBV$N(B Windows $BHG(B Mercurial $B$O!"(B 297.89 + Windows $B$H(B Unix $B$N2~9T7A<0$N<+F0JQ49$O9T$$$^$;$s!#(B 297.90 + Unix $BMxMQ<T$HJQ99@.2L$r6&M-$7$?$$>l9g$O!"(B 297.91 + $B>/!9DI2C@_Dj$r9T$&I,MW$,$"$j$^$9!#(B 297.92 + $B>\:YL$9;(B XXX$B!#(B 297.93 +\end{note} 297.94 + 297.95 +\section{Getting started} 297.96 + 297.97 +Mercurial $B$r;H$$;O$a$k$K$"$?$j!"(B 297.98 +$B<B:]$KMxMQ2DG=$J(B Mercurial $B%3%^%s%I$N%P!<%8%g%s$r3NG'$9$k$?$a!"(B 297.99 +\hgcmd{version} $B%3%^%s%I$r;H$C$F$_$^$7$g$&!#(B 297.100 +$B<B:]$N%P!<%8%g%s>pJs$K$O$=$l$[$I=EMW@-$O$"$j$^$;$s$,!"(B 297.101 +$B2?$bI=<($5$l$J$$>l9g$OBP=h$,I,MW$G$9!#(B 297.102 + 297.103 +\interaction{tour.version} 297.104 + 297.105 +\subsection{Built-in help} 297.106 + 297.107 +Mercurial $B$OAH$_9~$_%X%k%W5!G=$r;}$C$F$$$^$9!#(B 297.108 +$B$3$N5!G=$O!"(B 297.109 +$B%3%^%s%I$N<B9TJ}K!$r;W$$=P$;$J$$>l9g$KM-MQ$G$9!#(B 297.110 +$B2?$r$7$FNI$$$N$+40A4$K$o$+$i$J$/$J$C$F$7$^$C$?>l9g$O!"(B 297.111 +$BC1$K(B \hgcmd{help} $B$r<B9T$9$k$3$H$G!"(B 297.112 +$B$=$l$>$l$,$I$N$h$&$J5!G=$r;}$C$F$$$k$+$N@bL@$,IU$$$?!"(B 297.113 +$B4JC1$J%3%^%s%I0lMw$,I=<($5$l$^$9!#(B 297.114 +$B0J2<$K<($9$h$&$J7A<0$G!"(B 297.115 +$BFCDj$N%3%^%s%I$K$D$$$F(B \hgcmd{help} $B$r<B9T$7$?>l9g!"(B 297.116 +$B$=$N%3%^%s%I$K4X$9$k>\:Y$J>pJs$,I=<($5$l$^$9!#(B 297.117 + 297.118 +\interaction{tour.help} 297.119 + 297.120 +$B99$KB?$/$N>\:Y$J!JDL>o$OI,MW$H$7$J$$!K>pJs$rI=<($9$k$K$O!"(B 297.121 +\hgcmdargs{help}{\hggopt{-v}} $B$r<B9T$7$^$9!#(B 297.122 +\hggopt{-v} $B%*%W%7%g%s$O(B \hggopt{--verbose} $B$N>JN,7A$G!"(B 297.123 +$BDL>o$h$j$bB?$/$N>pJs$r(B Mercurial $B$KI=<($5$;$^$9!#(B 297.124 + 297.125 +\section{Working with a repository} 297.126 + 297.127 +Mercurial $B$G$O!"(B 297.128 +$BA4$F$,(B\emph{$B%j%]%8%H%j(B}$B$KJD$8$F$$$^$9!#(B 297.129 +$BNc$($P!"$"$k%W%m%8%'%/%H$N$?$a$K:n@.$7$?%j%]%8%H%j$K$O!"(B 297.130 +$B%W%m%8%'%/%H$K(B``$BB0$9$k(B''$BA4$F$N%U%!%$%k$@$1$G$J$/!"(B 297.131 +$B%U%!%$%k$K4X$9$kMzNr>pJs$b3JG<$5$l$F$$$^$9!#(B 297.132 + 297.133 +$B%j%]%8%H%j$O%U%!%$%k%7%9%F%`>e$K$"$kB~$N%G%#%l%/%H%j%D%j!<$G$9$N$G!"(B 297.134 +Mercurial $B$,FCJL07$$$9$k$H$$$&$3$H0J30$K$O!"(B 297.135 +$BDL>o$N%G%#%l%/%H%j$d%U%!%$%k$HHf3S$7$FFC$KJQ$o$C$F$$$kE@$O$"$j$^$;$s!#(B 297.136 +$B%3%^%s%I9T$d%U%!%$%k%V%i%&%6$rMxMQ$7$F!"(B 297.137 +$BG$0U$N;~E@$G2~L>$d:o=|$9$k$3$H$,$G$-$^$9!#(B 297.138 + 297.139 +\subsection{Making a local copy of a repository} 297.140 + 297.141 +$B%j%]%8%H%j$N(B\emph{$BJ#@=(B}$B$O!">/!9FCJL$G$9!#(B 297.142 +$BDL>o$N%G%#%l%/%H%jJ#@=$N%3%^%s%I$G$b%j%]%8%H%j$rJ#@=$G$-$^$9$,!"(B 297.143 +Mercurial $BAH$_9~$_$NJ#@=%3%^%s%I$r;HMQ$7$?J}$,NI$$$G$7$g!#(B 297.144 +$B$3$N%3%^%s%I$O!"(B 297.145 +$B4{B8$N%j%]%8%H%j$HF10l$NJ#@=$r@8@.$9$k$?$a!"(B 297.146 +\hgcmd{clone} $B$H8F$P$l$F$$$^$9!#(B 297.147 + 297.148 +\interaction{tour.clone} 297.149 + 297.150 +$B%A%e!<%H%j%"%kMQ$N%j%]%8%H%j$+$i$NJ#@=$K@.8y$7$?$J$i!"(B 297.151 +$B%m!<%+%k%U%!%$%k%7%9%F%`>e$K(B 297.152 +\dirname{hello} $B$H$$$&L>A0$N%G%#%l%/%H%j$,$"$kH&$G$9!#(B 297.153 +$B$3$N%G%#%l%/%H%j$K$O%U%!%$%k$,4v$D$+3JG<$5$l$F$$$k$3$H$G$7$g$&!#(B 297.154 +This directory will contain some files. 297.155 + 297.156 +\interaction{tour.ls} 297.157 + 297.158 +$B$3$l$i$N%U%!%$%k$O!"(B 297.159 +$BJ#@=85$K$J$C$?%j%]%8%H%j$K$*$1$k%U%!%$%k$H!"(B 297.160 +$BA4$/F1$8FbMF$HMzNr>pJs$r;}$C$F$$$^$9!#(B 297.161 + 297.162 +$BA4$F$N(B Mercurial $B%j%]%8%H%j$O!"(B 297.163 +$B5!G=Ds6!$KI,MW$J$b$N$rA4$F3JG<$7$F$$$k$?$a!"(B 297.164 +$B$=$l<+BN$G407k$7$F$$$k!"FHN)$7$?B8:_$G$9!#(B 297.165 +$B%j%]%8%H%j$K$O!"(B 297.166 +$B%W%m%8%'%/%H$KB0$9$k%U%!%$%k$N;dE*$JJ#@=$HMzNr>pJs$,3JG<$5$l$^$9!#(B 297.167 +$BJ#@=$5$l$?%j%]%8%H%j$O!"(B 297.168 +$BJ#@=85$H$J$C$?%j%]%8%H%j$N0LCV$r5-21$7$F$$$^$9$,!"(B 297.169 +$BFC$KL@<(E*$J;X<($r$7$J$$8B$j!"(B 297.170 +$BJ#@=85%j%]%8%H%j$H$NO"7H!J$*$h$S!"$=$l0J30$N%j%]%8%H%j$H$NO"7H$b!K(B 297.171 +$B$O9T$o$l$^$;$s!#(B 297.172 + 297.173 +$B$=$l$>$l$N%j%]%8%H%j$O!"(B 297.174 +$BB>$N%j%]%8%H%j$K1F6A$r5Z$\$9$3$H$NL5$$!"(B 297.175 +$B;dE*$J(B``$BH"Dm(B''$B$H8@$($^$9$+$i!"(B 297.176 +$B<+?H$N%j%]%8%H%j$G<+M3$K<B83$,$G$-$k$o$1$G$9!#(B 297.177 + 297.178 +\subsection{What's in a repository?} 297.179 + 297.180 +$B%j%]%8%H%jFbIt$r;F:Y$K8+$F$_$k$H!"(B 297.181 +\dirname{.hg} $B$H$$$&L>A0$N%G%#%l%/%H%j$,$"$k$3$H$K5$$,IU$/$3$H$G$7$g$&!#(B 297.182 +$B$3$N%G%#%l%/%H%j$O!"(B 297.183 +Mercurial $B$,%j%]%8%H%j$N%a%?%G!<%?$r3JG<$7$F$$$k%G%#%l%/%H%j$G$9!#(B 297.184 + 297.185 +\interaction{tour.ls-a} 297.186 + 297.187 +\dirname{.hg} $B$*$h$S$=$NG[2<$N%G%#%l%/%H%j$NFbMF$O!"(B 297.188 +Mercurial $B$,;dE*$K;HMQ$9$k$b$N$G$9!#(B 297.189 +$B%j%]%8%H%j$K$*$1$k$=$l0J30$N%G%#%l%/%H%j!&%U%!%$%k$O!"(B 297.190 +$B<+M3$KMxMQ$7$F9=$$$^$;$s!#(B 297.191 + 297.192 +$BMQ8l$NDj5A$r$9$k$K$"$?$j!"(B 297.193 +\dirname{.hg} $B%G%#%l%/%H%j$r(B``$BK\Ev$N(B''$B%j%]%8%H%j$H$9$k$J$i!"(B 297.194 +$B$=$l$H6&B8$9$kB>$N%U%!%$%k!&%G%#%l%/%H%j$O(B 297.195 +\emph{$B:n6HNN0h%G%#%l%/%H%j(B}$B$K$"$k$b$N!"$H8F$P$l$^$9!#(B 297.196 +$BN><T$N6hJ,$r4JC1$K8@$&$J$i!"(B 297.197 +\emph{$B%j%]%8%H%j(B}$B$,%W%m%8%'%/%H$N(B\emph{$BMzNr(B}$B$rJ];}$9$k0lJ}$G!"(B 297.198 +\emph{$B:n6HNN0h%G%#%l%/%H%j(B}$B$O!"(B 297.199 +$BMzNr>e$N$H$"$k;~E@$K$*$1$k%W%m%8%'%/%H$N(B\emph{$B%9%J%C%W%7%g%C%H(B}$B$rJ];}$9$k!"(B 297.200 +$B$H8@$($^$9!#(B 297.201 + 297.202 +\section{A tour through history} 297.203 + 297.204 +$BFk@w$_$NL5$$?7$7$$%j%]%8%H%j$KBP$7$F$O!"(B 297.205 +$B$^$:$O$=$NMzNr$r;2>H$7$F$_$h$&$H;W$&$3$H$G$7$g$&!#(B 297.206 +\hgcmd{log} $B%3%^%s%I$O!"MzNr>pJs$r=PNO$7$^$9!#(B 297.207 + 297.208 +\interaction{tour.log} 297.209 + 297.210 +$B$3$N%3%^%s%I$N4pDlF0:n$G$O!"(B 297.211 +$B%W%m%8%'%/%H$K2C$($i$l$?8D!9$NJQ99$N5-O?$KBP$7$F4JC1$J=PNO$r9T$$$^$9!#(B 297.212 +Mercurial $B$NMQ8l$G$O!"(B 297.213 +$BJ#?t$N%U%!%$%k$KBP$9$kJQ99$rJ];}$7F@$k$3$H$+$i!"(B 297.214 +$B5-O?$5$l$?$3$l$i$N=PMh;v$r(B\emph{$B%A%'%s%8%;%C%H(B}$B$H8F>N$7$^$9!#(B 297.215 + 297.216 +\hgcmd{log} $B$N=PNO7A<0$K$*$1$k3FMs$O!"(B 297.217 +$B0J2<$N$h$&$K$J$C$F$$$^$9!#(B 297.218 + 297.219 +\begin{description} 297.220 +\item[\texttt{changeset}] $B$3$NMs$O!"(B10 $B?J?t!"%3%m%s!J(Bcolon: \texttt{:}$B!K(B 297.221 + $B$*$h$S(B 16 $B?J?t$NO"B37A<0$H$J$C$F$$$^$9!#(B 297.222 + $B#2$D$N?tCM$O6&$K%A%'%s%8%;%C%H$N(B\emph{$B<1JL;R(B}$B$G$9!#(B 297.223 + 16 $B?J?t$N$b$N$h$j$b!"(B10 $B?J?t$NJ}$,C;$/!"F~NO$,MF0W$G$"$k$3$H$+$i!"(B 297.224 + $B#2$D$N<1JL;a$,B8:_$7$^$9!#(B 297.225 + 297.226 +\item[\texttt{user}] $B%A%'%s%8%;%C%H$N:n@.<T$K4X$9$k<1JL>pJs$G$9!#(B 297.227 + $B$3$NMs$O<+M37A<0$G$9$,!"KX$I$N>l9g!"(B 297.228 + $B?ML>$HEE;R%a!<%k%"%I%l%9$,3JG<$5$l$^$9!#(B 297.229 + 297.230 +\item[\texttt{date}] $B%A%'%s%8%;%C%H$,:n@.$5$l$?F|;~$H!"$=$N%?%$%`%>!<%s$G$9(B 297.231 + $B!JF|;~$OEv3:%?%$%`%>!<%s$K$*$1$kCM$G$9$N$G!"(B 297.232 + $B%A%'%s%8%;%C%H$N:n@.<T$K$H$C$F$NF|;~$rI=$7$^$9!K!#(B 297.233 + 297.234 +\item[\texttt{summary}] $B%A%'%s%8%;%C%H:n@.<T$,!"(B 297.235 + $B:n@.$N:]$K%A%'%s%8%;%C%H$N@bL@$H$7$FF~NO$7$?%a%C%;!<%8$N:G=i$N9T$G$9!#(B 297.236 + 297.237 +\end{description} 297.238 + 297.239 +$B4pDlF0:n$K$*$1$k(B \hgcmd{log} $B$N=PNO$O!"(B 297.240 +$BC1=c$JMWLs$G$9$N$G!"(B 297.241 +$BB?$/$N>\:Y%G!<%?$,7g$1$F$$$^$9!#(B 297.242 + 297.243 +$B?^(B~\ref{fig:tour-basic:history} $B$O!"(B 297.244 +$BMzNr$N(B``$BF08~(B''$B$rGD0.$70W$/$9$k$?$a$K!"(B 297.245 +\dirname{hello} $B%j%]%8%H%j$K$*$1$kMzNr$r?^<($7$?$b$N$G$9!#(B 297.246 +$BK\>O$*$h$S0J9_$N>O$K$*$$$F!"(B 297.247 +$B2?EY$+$3$N?^$KN)$AJV$k$3$H$K$J$k$3$H$G$7$g$&!#(B 297.248 + 297.249 +\begin{figure}[ht] 297.250 + \centering 297.251 + \grafix{tour-history} 297.252 + \label{fig:tour-basic:history} 297.253 + \caption{Graphical history of the \dirname{hello} repository} 297.254 +\end{figure} 297.255 + 297.256 +\subsection{Changesets, revisions, and talking to other people} 297.257 + 297.258 +$B1Q8l$,IT@53N$5$G0-L>9b$$8@8l$G$"$j!"(B 297.259 +$B7W;;5!2J3X$G$OMQ8l$N:.Mp$O$$$D$b$N$3$H$G$9$N$G!"(B 297.260 +$B9=@.4IM}$NJ,Ln$G$O!"(B 297.261 +$BF1$8$3$H$rI=$9J#?t$NMQ8l$d8@$$2s$7$,B8:_$7$^$9!#(B 297.262 +Mercurial $B$G$NMzNr4IM}$K$D$$$FOC$r$9$k>l9g!"(B 297.263 +``$B%A%'%s%8%;%C%H(B''$B!J(Bchangeset$B!K$H$$$&MQ8l$,;~$K$O(B 297.264 +``$B%A%'%s%8(B''$B!J(Bchange$B!K$d(B 297.265 +$B!JJ8=q$N>l9g$O!K(B``cset''$B$J$I$H>JN,$5$l$F$$$?$j!"(B 297.266 +$B%A%'%s%8%;%C%H$H$$$&8@$$2s$7$,!"(B 297.267 +``$B%j%S%8%g%s(B''$B!J(Brevision$B!K$J$$$7(B``rev'' 297.268 +$B$rI=$9$b$N$H$7$F;HMQ$5$l$?$j$9$k$N$rL\$K$9$k$+$b$7$l$^$;$s!#(B 297.269 + 297.270 +``$B%A%'%s%8%;%C%H(B''$B$N35G0$r$I$N$h$&$J(B\emph{$BMQ8l(B}$B$GI=$=$&$,LdBj$G$O$"$j$^$;$s$,!"(B 297.271 +``\emph{$BFCDj$N(B}$B%A%'%s%8%;%C%H(B''$B$r;X$9$?$a$N(B\emph{$B<1JL;R(B}$B$OHs>o$K=EMW$G$9!#(B 297.272 +\hgcmd{log} $B$N=PNO$K$*$1$k(B \texttt{changeset} $BMs$,!"(B 297.273 +10 $B?J?t$H(B 16 $B?J?t$NN>J}$N<1JL;R$r;H$C$F%A%'%s%8%;%C%H$r<1JL$7$F$$$k!"(B 297.274 +$B$H$$$&$3$H$r;W$$=P$7$F$/$@$5$$!#(B 297.275 + 297.276 +\begin{itemize} 297.277 +\item 10 $B?J?t$N<1JL;R!J!a(B $B%j%S%8%g%sHV9f!K$,!"(B 297.278 + \emph{$BEv3:%j%]%8%H%j$G$N$_M-8z$JCM(B}$B$G$"$k0lJ}$G!"(B 297.279 + 297.280 +\item 16 $B?J?t$N<1JL;R$O!"(B\emph{$BA4$F$N(B}$BJ#@=%j%]%8%H%j$KEO$C$F!"(B 297.281 + $B87L)$K%A%'%s%8%;%C%H$r<1JL2DG=$J(B\emph{$B915WIaJW$N<1JL;R(B}$B$G$9!#(B 297.282 + 297.283 +\end{itemize} 297.284 + 297.285 +$B$3$N6hJL$O=EMW$G$9!#(B 297.286 +$BEE;R%a!<%k$GB>$N?M$H(B``$B%j%S%8%g%s(B~33''$B$NOC$r$7$?>l9g!"(B 297.287 +$BAj<j$N%j%S%8%g%s(B~33$B$O!"(B 297.288 +$B<+J,$N0U?^$9$k$=$l$H$O9b$$3NN($G(B\emph{$B0[$J$j$^$9(B}$B!#(B 297.289 +$B$3$l$O!"(B 297.290 +$B%j%S%8%g%sHV9f$N3d$jIU$1$,!"(B 297.291 +$BEv3:%A%'%s%8%;%C%H$,%j%]%8%H%j$KG'<1$5$l$?=g=x$K0MB8$7$F$*$j!"(B 297.292 +$B%A%'%s%8%;%C%H$NG'<1=g=x$,F10l$G$"$k$3$H$r!"(B 297.293 +$B0[$J$k%j%]%8%H%j$N4V$G$OJ]>c$G$-$J$$$?$a$G$9!#(B 297.294 +$B#3$D$N%A%'%s%8%;%C%H(B $a,b,c$ $B$,!"(B 297.295 +$B$H$"$k%j%]%8%H%j$G$O(B $0,1,2$ $B$N=g=x$GG'<1$5$l$k0lJ}$G!"(B 297.296 +$BJL$J%j%]%8%H%j$G$O(B $1,0,2$ $B$N=g=x$GG'<1$5$l$k!"(B 297.297 +$B$H$$$C$?$3$H$OMF0W$K5/$3$jF@$^$9!#(B 297.298 + 297.299 +Mercurial $B$,%j%S%8%g%sHV9f$r;HMQ$7$F$$$k$N$O!"(B 297.300 +$B=c?h$K5-=R4JN,2=$NMxJX@-$N$?$a$G$9!#(B 297.301 +$BB>$N?M$H%A%'%s%8%;%C%H$K4X$7$FOC$r$9$k>l9g$d!"(B 297.302 +$B2?$i$+$NM}M3!JNc$($P!">c32Js9p$K$*$1$k5-O?!K(B 297.303 +$B$K$h$C$F%A%'%s%8%;%C%H$K4X$9$k5-O?$r;D$9>l9g$O!"(B 297.304 +16 $B?J?t$N<1JL;R$r;H$$$^$7$g$&!#(B 297.305 + 297.306 +\subsection{Viewing specific revisions} 297.307 + 297.308 +\hgcmd{log} $B$N=PNO$rC10l$N%j%S%8%g%s$N$b$N$K8BDj$9$k>l9g!"(B 297.309 +\hgopt{log}{-r}$B!J$J$$$7(B \hgopt{log}{--rev}$B!K%*%W%7%g%s$r;HMQ$7$^$9!#(B 297.310 +10 $B?J?t$N%j%S%8%g%sHV9f$H!"(B 297.311 +16 $B?J?t$N%A%'%s%8%;%C%H<1JL;R$N$I$A$i$b;HMQ$G$-$^$9$7!"(B 297.312 +$BI,MW$K1~$8$FJ#?t$N%j%S%8%g%s$r;XDj$9$k$3$H$b$G$-$^$9!#(B 297.313 + 297.314 +\interaction{tour.log-r} 297.315 + 297.316 +$B8DJL$KNs5s$9$k$3$HL5$7$KJ#?t$N%j%S%8%g%s$NMzNr$r;2>H$7$?$$>l9g$O!"(B 297.317 +\emph{$BHO0O5-K!(B}$B$r;HMQ$7$^$9!#(B 297.318 +$B$3$N5-K!$O!"(B 297.319 +``$a$ $B$+$i(B $b$ $B$N4V$NA4$F$N%j%S%8%g%s(B'' 297.320 +$B$H$$$&0U?^$rI=8=$7$^$9!#(B 297.321 + 297.322 +\interaction{tour.log.range} 297.323 + 297.324 +Mercurial $B$O$j%S%8%g%s$N5-=R=g=x$KCi<B$K?6Iq$$$^$9$N$G!"(B 297.325 +\hgcmdargs{log}{-r 2:4} $B$H$$$&%3%^%s%I5/F0$,(B 297.326 +$2,3,4$ $B$N=g=x$GI=<($9$k0lJ}!"(B 297.327 +\hgcmdargs{log}{-r 4:2} $B$H$$$&%3%^%s%I5/F0$O(B 297.328 +$4,3,2$ $B$N=g=x$GI=<($7$^$9!#(B 297.329 + 297.330 +\subsection{More detailed information} 297.331 + 297.332 +$BL\Ev$F$N%A%'%s%8%;%C%H$,4{$KH=L@$7$F$$$k>l9g$O(B 297.333 +\hgcmd{log} $B$,=PNO$9$k35MW>pJs$OM-MQ$G$9$,!"(B 297.334 +$B$"$k%A%'%s%8%;%C%H$,L\Ev$F$N$b$N$+H]$+$rH=Dj$7$h$&$H$9$k>l9g$K$O!"(B 297.335 +$BJQ99$K$D$$$F$N40A4$J@bL@J8$d!"(B 297.336 +$BJQ99$5$l$?%U%!%$%k$N0lMw$,I,MW$K$J$k$3$H$G$7$g$&!#(B 297.337 +\hgcmd{log} $B%3%^%s%I$N(B 297.338 +\hggopt{-v}$B!J$J$$$7(B \hggopt{--verbose}$B!K%*%W%7%g%s$O!"(B 297.339 +$B$3$l$iDI2C$N>\:Y>pJs$rI=<($7$^$9!#(B 297.340 + 297.341 +\interaction{tour.log-v} 297.342 + 297.343 +$B@bL@J8$HJQ99FbMF$NN>J}$r8+$?$$>l9g$O!"(B 297.344 +\hgopt{log}{-p} $B!J$J$$$7(B \hgopt{log}{--patch}$B!K(B 297.345 +$B%*%W%7%g%s$rIU2C$7$F$/$@$5$$!#(B 297.346 +$B$3$N%*%W%7%g%s$K$h$j!"(B 297.347 +$BJQ99FbMF$,(B \emph{unified diff} $B7A<0(B 297.348 +$B!J$3$l$^$G$K(B unified diff $B7A<0$r8+$?$3$H$,L5$$$N$G$7$?$i!"(B 297.349 +\ref{sec:mq:patch}~$B@a$K35MW$N@bL@$,$"$j$^$9!K$G=PNO$5$l$^$9!#(B 297.350 + 297.351 +\interaction{tour.log-vp} 297.352 + 297.353 +\section{All about command options} 297.354 + 297.355 +Mercurial $B$N%3%^%s%IC58!$r$3$3$G>/!9CfCG$7$F!"(B 297.356 +Mercurial $B%3%^%s%I$NF0:n%Q%?!<%s$K$D$$$F@bL@$7$^$7$g$&!#(B 297.357 +$BK\>O$K$*$1$k%D%"!<$rB3$1$k$K$D$l$F!"(B 297.358 +$B$3$N$3$H$r3P$($F$*$$$FNI$+$C$?$H;W$&$3$H$G$7$g$&!#(B 297.359 + 297.360 +Mercurial $B$O!"(B 297.361 +$B%3%^%s%I$KBP$7$F;XDj2DG=$J%*%W%7%g%s$N<h$j07$$$K4X$7$F!"(B 297.362 +$B6aG/$N(B Linux $B$*$h$S(B Unix $B%7%9%F%`$K6&DL$N%*%W%7%g%s5-=R47=,$rF'=1$7$?!"(B 297.363 +$B0l4S$7$?AGD>$J07$$J}$r:NMQ$7$F$$$^$9!#(B 297.364 + 297.365 +\begin{itemize} 297.366 +\item $BA4$F$N%*%W%7%g%s$O%m%s%0%M!<%`!J(Blong name$B!K$r;}$C$F$$$^$9!#(B 297.367 + $BNc$($P!"4{$K8+$F$-$?$h$&$K!"(B 297.368 + \hgcmd{log} $B%3%^%s%I$O(B \hgopt{log}{--rev} $B%*%W%7%g%s$r<u$1IU$1$^$9!#(B 297.369 + 297.370 +\item $BKX$I$N%*%W%7%g%s$,%7%g!<%H%M!<%`!J(Bshort name$B!K$b;}$C$F$$$^$9!#(B 297.371 + \hgopt{log}{--rev} $B%*%W%7%g%s$NBe$o$j$K(B 297.372 + \hgopt{log}{-r} $B$r;HMQ$G$-$^$9(B 297.373 + $B!J%7%g!<%H%M!<%`$r;}$?$J$$%*%W%7%g%s$,$"$k$N$O!"(B 297.374 + $B$=$l$i$N%*%W%7%g%s$,LGB?$KMxMQ$5$l$J$$$?$a$G$9(B\footnote{$BLuCm(B: 297.375 + $BLu<T$N%3%^%s%I3+H/7P83$G$O!"(B 297.376 + $B%7%g!<%H%M!<%`$N8uJd$H$J$k%"%k%U%!%Y%C%H$,J#?t$N%*%W%7%g%s$N4V$G=E$J$k>l9g!"(B 297.377 + $B$"$($F%7%g!<%H%M!<%`$r@_Dj$7$J$$!"(B 297.378 + $B$H$$$&>l9g$b$"$j$^$9!#(B}$B!K!#(B 297.379 + 297.380 +\item $B%m%s%0%M!<%`%*%W%7%g%s$O#2$D$N%^%$%J%95-9f(B\footnote{$BLuCm(B: 297.381 + $B86J8$G$O(B ``dash(es)'' $B$G$9$,!"(B 297.382 + $B!V%@%C%7%e!J%@!<%7!K!W$d!V%O%$%U%s!W$h$j$b!"(B 297.383 + PC $B$K$*$1$kF~NO$G$OD>@\E*$J!"(B 297.384 + $B!V%^%$%J%95-9f!W$rLu8l$KEv$F$^$7$?!#(B}$B$G;O$^$j$^$9(B 297.385 + $B!JNc(B: \hgopt{log}{--rev}$B!K$,(B 297.386 + $B%7%g!<%H%M!<%`%*%W%7%g%s$O#1$D$N%^%$%J%95-9f$G;O$^$j$^$9(B 297.387 + $B!JNc(B: \hgopt{log}{-r}$B!K!#(B 297.388 + 297.389 +\item $B%*%W%7%g%s$NL?L>$HMQK!$O!"%3%^%s%I4V$G0l4S@-$,<h$i$l$F$$$^$9(B\footnote{ 297.390 + $BLuCm!'(B $BLu<T$,0JA0!"%*%W%7%g%s$rDI2C$9$k%Q%C%A$rDs0F$7$?:]$K$O!"(B 297.391 + $B%Q%C%A$N5!G=E*$JOC$H$OJL$K!"(B 297.392 + $B!V!{!{$N%3%^%s%I$G$O!_!_$H$$$&$&L?L>$K$J$C$F$$$k$+$i!"$=$l$KJo$C$F$M!W(B 297.393 + $B$H;XE&$5$l$?$3$H$,$"$j!"(B 297.394 + $B!V0l4S@-$,$H$i$l$F$$$k!W$H$N<gD%$O0KC#$G$O$"$j$^$;$s!#(B}$B!#(B 297.395 + $BNc$($P!"%A%'%s%8%;%C%H<1JL;R$d$j%S%8%g%sHV9f$r;XDj2DG=$J%3%^%s%I$O!"(B 297.396 + $BA4$F(B \hgopt{log}{-r} $B$*$h$S(B \hgopt{log}{--rev} $B%*%W%7%g%s$r<uM}$7$^$9!#(B 297.397 + 297.398 +\end{itemize} 297.399 + 297.400 +$BK\=q$N<B9TNc$G$O!"(B 297.401 +$B%m%s%0%M!<%`%*%W%7%g%s$NBe$o$j$K%7%g!<%H%M!<%`%*%W%7%g%s$r;HMQ$7$^$9!#(B 297.402 +$B$3$l$OC1$KI.<T$N9%$_$H$$$&$@$1$N$3$H$G$9$N$G!"(B 297.403 +$BFC$K5$$K$9$kI,MW$O$"$j$^$;$s!#(B 297.404 + 297.405 +$B2?$i$+$NI=<($r9T$&%3%^%s%I$NB?$/$O!"(B 297.406 +\hggopt{-v}$B!J$J$$$7(B \hggopt{--verbose}$B!K(B 297.407 +$B%*%W%7%g%s$rIUM?$9$k$3$H$G$h$jB?$/$N>pJs$NI=<($r!"(B 297.408 +\hggopt{-q}$B!J$J$$$7(B \hggopt{--quiet}$B!K(B 297.409 +$B%*%W%7%g%s$rIUM?$9$k$3$H$GI=<($rM^;_$9$k$3$H$,$G$-$^$9!#(B 297.410 + 297.411 +\section{Making and reviewing changes} 297.412 + 297.413 +$B$3$N;~E@$G!"(BMercurial $B$K$*$1$kMzNr$rGD0.$G$-$F$$$^$9$N$G!"(B 297.414 +$BJQ99$N<B;\$d!"$=$N8!>Z$r9T$C$F$_$^$7$g$&!#(B 297.415 + 297.416 +$B$^$:;O$a$K$9$Y$-$3$H$O!"(B 297.417 +$BFH<+$N<B83$r85!9$N%j%]%8%H%j$+$i3VN%$9$k$3$H$G$9!#(B 297.418 +$B%j%]%8%H%j$NJ#@=$K!"@hDx$O(B \hgcmd{clone} $B$r;HMQ$7$^$7$?$,!"(B 297.419 +$B$3$N;~E@$G$N1s3V%j%]%8%H%j$+$i$NJ#@=$OI,MW$"$j$^$;$s!#(B 297.420 +$B4{$K<j85$K$"$kJ#@=%j%]%8%H%j$+$iJ#@=$9$l$PNI$$$N$G$9!#(B 297.421 +$B%m!<%+%k%j%]%8%H%j$NJ#@=$O!"(B 297.422 +$B%M%C%H%o!<%/1[$7$NJ#@=$h$j$bHs>o$K9bB.$G$9$7!"(B 297.423 +$BB?$/$N>l9g$K$*$$$F%G%#%9%/NN0h>CHq$b>/$J$/$F:Q$_$^$9(B\footnote{$BLuCm(B: 297.424 +$B>\:Y$O(B ``Avoiding seeks'' $B$K$"$j$^$9$,!"(B 297.425 +Mercurial $B$O%m!<%+%k%j%]%8%H%j$NJ#@=$N:]$K!"(B 297.426 +$B%G%#%9%/%X%C%I$N%7!<%/2sHr$N$?$a$K!"(B 297.427 +$B%U%!%$%k$NJ#@=$G$O$J$/=j0b(B``$B%O!<%I%j%s%/(B''$B$r<B;\$7$^$9!#(B}$B!#(B 297.428 + 297.429 +\interaction{tour.reclone} 297.430 + 297.431 +$BOC$O0o$l$^$9$,!"(B 297.432 +$B:n6H$KCe<j$7$h$&$H$7$?:]$K!"(B 297.433 +$B:n6HMQ%5%s%I%\%C%/%9$H$7$F$N0l;~E*$JJ#@=$r2?;~$G$b:n@.$G$-$^$9$N$G!"(B 297.434 +$B1s3V%j%]%8%H%j$NJ#@=$r(B``$B$^$C$5$i$J(B''$B>uBV$GJ]$D$h$&$K?43]$1$k$N$,NI$$$G$7$g!#(B 297.435 +$B$3$&$9$k$3$H$G!"(B 297.436 +$BJ#?t$N:n6H$rJ?9T$K9T$&$3$H$,$G$-$^$9$7!"(B 297.437 +$B:n6H40N;8e$K$=$l$i$rE}9g$9$k$^$G$O!"(B 297.438 +$B8_$$$N:n6H$r3VN%$5$l$?>uBV$K$9$k$3$H$,$G$-$^$9!#(B 297.439 +$B%m!<%+%k%j%]%8%H%j$NJ#@=$ODc%3%9%H$G$9$+$i!"(B 297.440 +$B%j%]%8%H%j$NJ#@=$*$h$SGK4~$K$O%*!<%P%X%C%I$,KX$I$"$j$^$;$s!#(B 297.441 + 297.442 +\dirname{my-hello} $B%j%]%8%H%j$K$O!"(B 297.443 +$BE57?E*$J(B ``hello, world'' $B%W%m%0%i%`$,3JG<$5$l$?(B 297.444 +\filename{hello.c} $B%U%!%$%k$,$"$j$^$9!#(B 297.445 +$B$G$O$3$3$G!"(B 297.446 +$B$$$K$7$($N(B \command{sed} $B%3%^%s%I$r;HMQ$7$F!"(B 297.447 +$B#29TL\$r=PNO$9$k$h$&$KJQ99$7$F$_$^$7$g$&!#(B 297.448 +$B!JJQ99$N$?$a$K(B \command{sed} $B$r;HMQ$9$k$N$O!"(B 297.449 +$BC1$K%9%/%j%W%H$K$h$k<+F02=$,4JC1$G$"$k$+$i$G$9!#(B 297.450 +$B<+F02=$NI,MW$,L5$1$l$P!"(B 297.451 +$B$*$=$i$/(B \command{sed} $B$r;HMQ$9$kI,MW$OL5$$$G$7$g$&!#(B 297.452 +$B9%$_$N%(%G%#%?$GJT=8$r$7$F$/$@$5$$!#!K!#(B 297.453 + 297.454 +\interaction{tour.sed} 297.455 + 297.456 +\hgcmd{status} $B%3%^%s%I$K$h$j!"(B 297.457 +$B%j%]%8%H%jG[2<$N%U%!%$%k$N>u67$K4X$9$k(B 297.458 +Mercurial $B$NG'<1$,I=<($5$l$^$9!#(B 297.459 + 297.460 +\interaction{tour.status} 297.461 + 297.462 +$B4v$D$+$N%U%!%$%k$KBP$7$F$O!"(B 297.463 +\hgcmd{status} $B%3%^%s%I$OFC$K2?$bI=<($7$^$;$s$,!"(B 297.464 +\filename{hello.c} $B$KBP$7$F$O(B 297.465 +``\texttt{M}'' $B$G;O$^$k9T$rI=<($7$^$9!#(B 297.466 +$BL@<(E*$K;XDj$7$J$$8B$j!"(B 297.467 +$BJQ99$5$l$F$$$J$$%U%!%$%k$KBP$7$F(B 297.468 +\hgcmd{status} $B$O2?$bI=<($7$^$;$s!#(B 297.469 + 297.470 +``\texttt{M}'' $BI=<($O!"(B 297.471 +Mercurial $B$,(B \filename{hello.c} $B%U%!%$%k$NJQ99$r8!CN$7$F$$$k$3$H$rI=$7$^$9!#(B 297.472 +$B%U%!%$%k$NJQ99$K@hN)$C$F!J$"$k$$$OJQ99$N8e$K!K!"(B 297.473 +Mercurial $B$KBP$7$F(B\emph{$BDLCN(B}$B$9$kI,MW$O$"$j$^$;$s!#(B 297.474 +Mercurial $B<+?H$GJQ99$N<B;\$r8!CN$9$k$3$H$,$G$-$^$9!#(B 297.475 + 297.476 +\hgcmd{status} $B$NI=<($O!"(B 297.477 +\filename{hello.c} $B$rJQ99$7$?$3$H$rCN$k$N$KLrN)$A$^$9$,!"(B 297.478 +\emph{$B$I$N$h$&$J(B}$BJQ99$r9T$C$?$N$+$r87L)$KCN$j$?$$>l9g$bM-$k$G$7$g$&!#(B 297.479 +$BJQ99FbMF$rCN$k$?$a$K$O!"(B 297.480 +\hgcmd{diff} $B%3%^%s%I$r;HMQ$7$^$9!#(B 297.481 + 297.482 +\interaction{tour.diff} 297.483 + 297.484 +\section{Recording changes in a new changeset} 297.485 + 297.486 +$BJQ99FbMF$KK~B-$7$F!"(B 297.487 +$B?75,%A%'%s%8%;%C%H$KJQ99FbMF$r5-O?$9$k$KB-$k>u67$KE~C#$9$k$^$G$O!"(B 297.488 +$B%U%!%$%k$NFbMF$rJQ99$7!"(B 297.489 +$B%S%k%I$HJQ99FbMF$KBP$9$k;n83$r9T$$!"(B 297.490 +\hgcmd{status} $B$*$h$S(B \hgcmd{diff} $B$K$h$kJQ99FbMF$r3NG'$9$k!"(B 297.491 +$B$H$$$&:n6H$r7+$jJV$7$^$9!#(B 297.492 + 297.493 +\hgcmd{commit} $B%3%^%s%I$rMQ$$$k$3$H$G!"(B 297.494 +$B%A%'%s%8%;%C%H$r?7$?$K:n@.$9$k$3$H$,$G$-$^$9!#(B 297.495 +$BDL>o$3$l$r(B``$B%3%_%C%H$N<B;\(B''$B!J(B``making a commit''$B!K$J$$$7(B 297.496 +``$B%3%_%C%H$9$k(B''$B!J(B``committing''$B!K$H8@$$$^$9!#(B 297.497 + 297.498 +\subsection{Setting up a username} 297.499 + 297.500 +$B:G=i$K(B \hgcmd{commit} $B<B9T$r9T$&:]$K$O!"(B 297.501 +$BI,$:$7$b<B9T$,@.8y(B\footnote{$BLuCm(B: 297.502 +$B$3$3$G8@$&(B``$B@.8y(B''$B$H$O!"(B 297.503 +$B%3%^%s%I<B9T$=$N$b$N$N@.8y$H$$$&$h$j$O!"(B 297.504 +``$B;W$C$?DL$j$N%A%'%s%8%;%C%H$r@8@.(B''$B$9$k$3$H$KBP$9$k@.8y$K6a$$%K%e%"%s%9$G$9!#(B 297.505 +}$B$9$k$H$O8B$j$^$;$s!#(B 297.506 +$B%A%'%s%8%;%C%H$N%3%_%C%H$N:]$K(B Mercurial $B$O!"(B 297.507 +$B%3%_%C%H$7$?%f!<%6$NL>A0$HEE;R%a!<%k%"%I%l%9$r!"(B 297.508 +$B%A%'%s%8%;%C%HKh$K5-O?$7$^$9$N$G!"(B 297.509 +$BC/$b$,8e$+$i%A%'%s%8%;%C%H:n@.<T$rCN$k$3$H$,$G$-$^$9!#(B 297.510 +Mercurial $B$O0J2<$N<j=g$G!"(B 297.511 +$BJQ99FbMF$H6&$K5-O?$9$kBEEv$J%f!<%6L>$r<+F0E*$K8!=P$7$h$&$H$7$^$9!#(B 297.512 + 297.513 +\begin{enumerate} 297.514 +\item \hgcmd{commit} $B%3%^%s%I5/F0$N:]$K(B 297.515 + \hgopt{commit}{-u} $B%*%W%7%g%s$K$h$C$F%f!<%6L>$r;XDj$7$?>l9g!"(B 297.516 + $B>o$K$=$NCM$,M%@hE*$K;HMQ$5$l$^$9!#(B 297.517 + 297.518 +\item $B<!$K(B \envar{HGUSER} $B4D6-JQ?t@_Dj$NM-L5$,3NG'$5$l$^$9!#(B 297.519 + 297.520 +\item $B%[!<%`%G%#%l%/%H%jD>2<$K!"(B 297.521 + \rcitem{ui}{username} $BMWAG$r;}$D(B 297.522 + \sfilename{.hgrc}\footnote{$BLuCm(B: 297.523 + Windows $B8~$1%P%$%J%jHG$N>l9g!"(B 297.524 + \envar{HOME} $B4D6-JQ?t$,;X$9%G%#%l%/%H%j!"(B 297.525 + $B$J$$$7(B \dirname{C:\\Documents and Settings\\USERNAME} 297.526 + $BG[2<$N(B \sfilename{Mercurial.ini} $B$,MQ$$$i$l$^$9!#(B} 297.527 + $B$,$"$k>l9g!"$=$NCM$,;HMQ$5$l$^$9!#(B 297.528 + $B$3$N%U%!%$%k$K=q$/$Y$-FbMF$K4X$7$F$O!"(B 297.529 + \ref{sec:tour-basic:username}$B@a$r;2>H$7$F$/$@$5$$!#(B 297.530 + 297.531 +\item \envar{EMAIL} $B4D6-JQ?t$,@_Dj$5$l$F$$$k>l9g$O!"(B 297.532 + $B$=$NCM$,;HMQ$5$l$^$9!#(B 297.533 + 297.534 +\item $B$=$l0J30$N>l9g!"(B 297.535 + Mercurial $B$O2TF0$7$F$$$k%7%9%F%`$K%f!<%6$H%[%9%H$NL>A0$rLd$$9g$o$;$?>e$G!"(B 297.536 + $BEE;R%a!<%k%"%I%l%97A<0$N%f!<%6L>$r@8@.$7!"$3$l$r;HMQ$7$^$9!#(B 297.537 + $B$3$NJ}K!$G@8@.$5$l$?%f!<%6L>$O1}!9$K$7$FLr$KN)$?$J$$$?$a!"(B 297.538 + Mercurial $B$O7Y9p$rI=<($7$^$9!#(B 297.539 + 297.540 +\end{enumerate} 297.541 + 297.542 +$B>e5-$NJ}K!$,A4$F<:GT$7$?>l9g!"(B 297.543 +Mercurial $B$K$h$k%3%_%C%H$O<:GT$7!"(B 297.544 +$B%(%i!<%a%C%;!<%8$rI=<($7$^$9!#(B 297.545 +$B$=$N$h$&$J>l9g$G$O!"L@<(E*$K%f!<%6L>$r;XDj$7$J$$8B$j!"(B 297.546 +$B%3%_%C%H$O@.8y$7$J$$$G$7$g$&!#(B 297.547 + 297.548 +\envar{HGUSER} $B4D6-JQ?t$H(B 297.549 +\hgcmd{commit} $B%3%^%s%I$X$N(B 297.550 +\hgopt{commit}{-u} $B%*%W%7%g%s;XDj$O!"(B 297.551 +Mercurial $B@_Dj%U%!%$%kCf$N(B username $B@_Dj$r(B 297.552 +\emph{$BL58z$K$9$k(B}$BE@$KCm0U$7$F$/$@$5$$!#(B 297.553 +$BDL>o$N;HMQ$K$*$$$F!"(B 297.554 +$B<+?H$N%f!<%6L>$r4JC13n$D3N<B$K;XDj$9$k$K$O!"(B 297.555 +\sfilename{.hgrc} $B%U%!%$%k$G;XDj$9$k$N$,NI$$$G$7$g!#(B 297.556 +$B5-=RJ}K!$K4X$9$k>\:Y$O8e=R$7$^$9!#(B 297.557 + 297.558 +\subsubsection{Creating a Mercurial configuration file} 297.559 +\label{sec:tour-basic:username} 297.560 + 297.561 +$B%f!<%6L>$r@_Dj$9$k$K$O!"(B 297.562 +$B$^$:$O9%$_$N%(%G%#%?$r;H$C$F!"(B 297.563 +$B%[!<%`%G%#%l%/%H%jD>2<$K(B 297.564 +\sfilename{.hgrc}$B%U%!%$%k$r:n@.$7$^$9!#(B 297.565 +Mercurial $B$O$3$N%U%!%$%k$+$iMxMQ<T$N8D?M@_Dj$r;2>H$7$^$9!#(B 297.566 +\sfilename{.hgrc} $B$NFbMF$O!"(B 297.567 +$B$^$:$O0J2<$N$h$&$K$J$k$G$7$g$&!#(B 297.568 + 297.569 +\begin{codesample2} 297.570 + # This is a Mercurial configuration file. 297.571 + [ui] 297.572 + username = Firstname Lastname <email.address@domain.net> 297.573 +\end{codesample2} 297.574 + 297.575 +``\texttt{[ui]}'' $B9T$O!"(B 297.576 +$B@_Dj%U%!%$%k$N(B\emph{$B%;%/%7%g%s(B}$B3+;O$r0UL#$7!"(B 297.577 +``\texttt{username = ...}'' $B$H$$$&5-=R9T$O(B 297.578 +``\texttt{ui} $B%;%/%7%g%s$K$*$1$k(B \texttt{username} $B9`L\$X$NCM$N@_Dj(B'' 297.579 +$B$H$_$J$5$l$^$9!#(B 297.580 +$B0lEY%;%/%7%g%s$,3+;O$5$l$?$J$i!"(B 297.581 +$B?7$?$J%;%/%7%g%s$,3+;O$5$l$k$+!"(B 297.582 +$B%U%!%$%k$NKvHx$KC#$9$k$^$GEv3:%;%/%7%g%s$,B3$-$^$9!#(B 297.583 +$B6u$N9T$H!"(B 297.584 +``\texttt{\#}'' $B$N<!$NJ8;z$+$i9TKv$^$G$O!"(B 297.585 +Mercurial $B$K$h$C$F%3%a%s%H$H$_$J$5$lL5;k$5$l$^$9!#(B 297.586 + 297.587 +\subsubsection{Choosing a user name} 297.588 + 297.589 +\texttt{username} $B@_Dj9`L\$O!"(B 297.590 +Mercurial $B$KM?$($kCM$G$O$"$j$^$9$,!"(B 297.591 +$B%j%]%8%H%j$r;2>H$9$kB>$NMxMQ<T$N$?$a$N>pJs$G$9$N$G!"(B 297.592 +$BG$0U$NJ8;z$r;HMQ2DG=$G$9!#(B 297.593 +$BKX$I$NMxMQ<T$O!"(B 297.594 +$BL>A0$HEE;R%a!<%k%"%I%l%9$rMQ$$$?A0=R$N$h$&$J7A<0$rMQ$$$F$$$^$9!#(B 297.595 + 297.596 +\begin{note} 297.597 + Mercurial $B$NAH$_9~$_%&%'%V%5!<%P5!G=$G$O!"(B 297.598 + $B%9%Q%`%a!<%k$NAwIU<T$,MxMQ$9$kEE;R%a!<%k%"%I%l%9<+F0<}=8%D!<%k$KBP$7$F!"(B 297.599 + $BEE;R%a!<%k%"%I%l%9$rFqFI2=$9$k$3$H$,2DG=$G$9!#(B 297.600 + $B$3$N5!G=$rMQ$$$k$3$H$G!"(B 297.601 + Mercurial $B%j%]%8%H%j$r%&%'%V>e$K8x3+$7$?:]$K!"(B 297.602 + $B1WBN$bL5$$%a!<%k<u?.$NA}2C$rM^;_$9$k$3$H$,$G$-$^$9!#(B 297.603 +\end{note} 297.604 + 297.605 +\subsection{Writing a commit message} 297.606 + 297.607 +$BEv3:%A%'%s%8%;%C%H$G$NJQ99FbMF$r@bL@$9$k%a%C%;!<%8$rF~NO$9$k$?$a$K!"(B 297.608 +Mercurial $B$O%3%_%C%H$N:]$K%(%G%#%?$r5/F0$7$^$9!#(B 297.609 +$B$3$N%a%C%;!<%8$r(B\emph{$B%3%_%C%H%a%C%;!<%8(B}$B$H8F$S!"(B 297.610 +$BFI$_<j$KJQ99$NFbMF$HM}M3$rEA$($k$?$a$K5-O?$5$l$k$b$N$G!"(B 297.611 +$B%3%_%C%H8e$N(B \hgcmd{log} $B%3%^%s%I$K$h$jI=<($5$l$^$9!#(B 297.612 + 297.613 +\interaction{tour.commit} 297.614 + 297.615 +\hgcmd{commit} $B%3%^%s%I$,5/F0$9$k%(%G%#%?$O!"(B 297.616 +``\texttt{HG:}''$B$G;O$^$k?t9T$,8e$KB3$/6u9T$rI=<($7$F$$$k$3$H$G$7$g$&!#(B 297.617 + 297.618 +\begin{codesample2} 297.619 + \emph{$B6u9T(B} 297.620 + HG: changed hello.c 297.621 +\end{codesample2} 297.622 + 297.623 +Mercurial $B$O(B 297.624 +``\texttt{HG:}'' $B$G;O$^$k9T$rL5;k$7$^$9!#(B 297.625 +$B$3$l$i$N9T$O!"(B 297.626 +$B%A%'%s%8%;%C%H$X$NJQ995-O?BP>]$H$J$k%U%!%$%k$N0lMw$r!"(B 297.627 +$B%3%_%C%H$7$h$&$H$7$F$$$k%f!<%6$KCN$i$;$k$?$a$@$1$N$b$N$G$9!#(B 297.628 +$B$=$N$?$a!"$3$l$i$N9T$NJQ99$d:o=|$O2?$b0UL#$r;}$A$^$;$s!#(B 297.629 + 297.630 +\subsection{Writing a good commit message} 297.631 + 297.632 +\hgcmd{log} $B$O%3%_%C%H%a%C%;!<%8$N:G=i$N#19T$7$+I=<($7$^$;$s$N$G!"(B 297.633 +$B:G=i$N#19T$@$1$G0UL#$NDL$8$kFbMF$K$9$k$N$,NI$$$G$7$g$&!#(B 297.634 +$B$3$NJ}?K$+$i(B\emph{$B30$l$F$$$k(B}$B$?$a$K!"(B 297.635 +$BFI$_Fq$$%3%_%C%H%a%C%;!<%8$N<BNc$r0J2<$K<($7$^$9!#(B 297.636 + 297.637 +\begin{codesample2} 297.638 + changeset: 73:584af0e231be 297.639 + user: Censored Person <censored.person@example.org> 297.640 + date: Tue Sep 26 21:37:07 2006 -0700 297.641 + summary: include buildmeister/commondefs. Add an exports and install 297.642 +\end{codesample2} 297.643 + 297.644 +$B%3%_%C%H%a%C%;!<%8$N#29TL\0J9_$K4X$7$F$O!"(B 297.645 +$BFC$K87L)$J%k!<%k$OB8:_$7$^$;$s!#(B 297.646 +$B%3%_%C%H%a%C%;!<%8$KBP$7$F!"(B 297.647 +$B%W%m%8%'%/%H1?MQ>e$NJ}?K$H$7$F2?$i$+$N7A<0$rMW5a$9$k$+$b$7$l$^$;$s$,!"(B 297.648 +Mercurial $B<+?H$,2r<a$dWVEY$r$9$k$3$H$O$"$j$^$;$s!#(B 297.649 + 297.650 +$BI.<T$N8D?ME*$J9%$_$O!"(B 297.651 +\hgcmdargs{log}{--patch} $B$r0lJM$7$?$@$1$G$OH=CG$G$-$J$$;vJA$K$D$$$F!"(B 297.652 +$B4J7i$G$"$j$J$,$iM-1W$J>pJs$r$b$?$i$9$h$&$J%3%_%C%H%a%C%;!<%8$G$9!#(B 297.653 + 297.654 +\subsection{Aborting a commit} 297.655 + 297.656 +$B%3%_%C%H%a%C%;!<%8$N5-=RCf$K%3%_%C%H$r<h$j$d$a$r7h0U$7$?>l9g$K$O!"(B 297.657 +$BJT=8Cf$N%U%!%$%k$rJ]B8$;$:$K%(%G%#%?$r=*N;$9$l$PNI$$$N$G$9!#(B 297.658 +$B$3$N>l9g!"%j%]%8%H%j$H:n6HNN0h%G%#%l%/%H%j$N$$$:$l$KBP$7$F$b!"(B 297.659 +$B2?$iA`:n$O2C$($i$l$^$;$s!#(B 297.660 + 297.661 +$B0z?tL5$7$G(B \hgcmd{commit} $B%3%^%s%I$r<B9T$7$?>l9g!"(B 297.662 +\hgcmd{status} $B$*$h$S(B \hgcmd{diff} 297.663 +$B$K$h$C$FJs9p$5$l$?A4$F$NJQ99FbMF$,5-O?$5$l$^$9!#(B 297.664 + 297.665 +\subsection{Admiring our new handiwork} 297.666 + 297.667 +$B%3%_%C%H$,40N;$7$?$J$i!"(B 297.668 +$B:#$7$,$??75,:n@.$7$?%A%'%s%8%;%C%H$r(B 297.669 +\hgcmd{tip} $B%3%^%s%I$GI=<($9$k$3$H$,$G$-$^$9!#(B 297.670 +$B$3$N%3%^%s%I$O(B \hgcmd{log} $B$HF10l$N=PNO$r9T$$$^$9$,!"(B 297.671 +$BI=<($5$l$k$N$O%j%]%8%H%j$K$*$1$k:G?7$N%j%S%8%g%s$@$1$G$9!#(B 297.672 + 297.673 +\interaction{tour.tip} 297.674 + 297.675 +$B%j%]%8%H%j$K$*$1$k:G?7$N%j%S%8%g%s$r(B tip $B%j%S%8%g%s!"(B 297.676 +$B$"$k$$$OC1$K(B tip $B$H8F$S$^$9!#(B 297.677 + 297.678 +\section{Sharing changes} 297.679 + 297.680 +$B@h$N5-=R$G!"(BMercurial $B$K$*$1$k%j%]%8%H%j$O!"(B 297.681 +$B$=$l<+?H$G407k$7$F$$$k;]=R$Y$^$7$?!#(B 297.682 +$B$3$l$OB($A!"(B 297.683 +$B$?$C$?:#?75,$K:n@.$7$?%A%'%s%8%;%C%H$O!"(B 297.684 +$B<j85$N(B \dirname{my-hello} $B%j%]%8%H%j$K$7$+B8:_$7$J$$$3$H$r0UL#$7$^$9!#(B 297.685 +$B$3$NJQ99FbMF$rB>$N%j%]%8%H%j$X$HEAGE$9$kJ}K!$r!"(B 297.686 +$B=g$K8+$F$f$-$^$7$g$&!#(B 297.687 + 297.688 +\subsection{Pulling changes from another repository} 297.689 +\label{sec:tour:pull} 297.690 + 297.691 +$B$^$:;O$a$K!"(B 297.692 +$B85!9$N(B \dirname{hello} $B%j%]%8%H%j$rJ#@=$7$F!"(B 297.693 +$B$?$C$?:#?75,$K:n@.$7$?JQ99$N%3%_%C%H$5$l$F$$$J$$%j%]%8%H%j$r:n@.$7$^$7$g$&!#(B 297.694 +$B$3$NJ#@=$7$?%j%]%8%H%j$r!"(B 297.695 +\dirname{hello-pull} $B$H8F$S$^$9!#(B 297.696 + 297.697 +\interaction{tour.clone-pull} 297.698 + 297.699 +\hgcmd{pull} $B%3%^%s%I$K$h$j!"(B 297.700 +\dirname{my-hello} $B$+$i(B 297.701 +\dirname{hello-pull} $B$X$HJQ99$r<h$j9~$_$^$9!#(B 297.702 +$B$7$+$7$J$,$i!"L$CN$NJQ99$r0G1@$K%j%]%8%H%j$K<h$j9~$`$N$O!"(B 297.703 +$B$"$^$j$>$C$H$7$^$;$s!#(B 297.704 +Mercurial $B$,Ds6!$9$k(B \hgcmd{incoming} $B%3%^%s%I$O!"(B 297.705 +$B<B:]$KJQ99$r<h$j9~$`;vL5$/!"(B 297.706 +\hgcmd{pull} 297.707 +$B$K$h$C$F%j%]%8%H%j$K<h$j9~$^$l$k(B\emph{$BM=Dj(B}$B$N%A%'%s%8%;%C%H$rI=<($7$^$9!#(B 297.708 + 297.709 +\interaction{tour.incoming} 297.710 + 297.711 +$B!JL^O@!"(B 297.712 +\hgcmd{incoming} $B%3%^%s%I$r<B9T$7$?%j%]%8%H%j$KBP$7$F!"(B 297.713 +\hgcmd{pull} $B$K$h$kJQ99<h$j9~$_$N5!2q$h$j$bA0$K!"(B 297.714 +$B$h$jB?$/$NJQ99$rDI2C$9$k$3$H$O2DG=$G$9$N$G!"(B 297.715 +$B<B:]$NJQ99<h$j9~$_$OM=Dj$H$O0[$J$k2DG=@-$,M-$j$^$9!#!K(B 297.716 + 297.717 +$B%j%]%8%H%j$X$NJQ99$N<h$j9~$_$O!"(B 297.718 +$B$I$N%j%]%8%H%j$+$i<h$j9~$`$+$r;X<($7$D$D!"(B 297.719 +\hgcmd{pull} $B%3%^%s%I$r<B9T$9$k$H$$$&4JC1$J$b$N$G$9!#(B 297.720 + 297.721 +\interaction{tour.pull} 297.722 + 297.723 +$B<B;\A08e$N(B \hgcmd{tip} $B=PNO$+$i8+$F<h$l$k$h$&$K!"(B 297.724 +$B<j85$N%j%]%8%H%j$X$NJQ99FbMF$NH?1G$,@.8y$7$F$$$^$9!#(B 297.725 +$B<h$j9~$s$@JQ99FbMF$r:n6HNN0h%G%#%l%/%H%j$K$*$$$F;2>H$9$k$?$a$K$O!"(B 297.726 +$B$b$&$R$H<j=gI,MW$G$9!#(B 297.727 + 297.728 +\subsection{Updating the working directory} 297.729 + 297.730 +$B%j%]%8%H%j$H:n6HNN0h%G%#%l%/%H%j$N4X78$K$D$$$F!"(B 297.731 +$B$3$l$^$G$OBg;(GD$K$7$+@bL@$7$F$-$^$;$s$G$7$?!#(B 297.732 +\ref{sec:tour:pull}~$B@a$G<B9T$7$?(B 297.733 +\hgcmd{pull} $B%3%^%s%I$O!"(B 297.734 +$B%j%]%8%H%j$X$NJQ99$N<h$j9~$_$r9T$$$^$9$,!"(B 297.735 +$B3NG'$7$F$_$l$P$o$+$k$h$&$K!"(B 297.736 +$B:n6HNN0h$K$O2?$i1F6A$r5Z$\$7$^$;$s!#(B 297.737 +$B$3$l$O!"(B 297.738 +\hgcmd{pull} $B$N!J4pDl$N!K5sF0$,!"(B 297.739 +$B:n6HNN0h$K1F6A$r5Z$\$5$J$$$b$N$G$"$k$?$a$G$9!#(B 297.740 +$B:n6HNN0h$N99?7$K$O!"(B 297.741 +\hgcmd{pull} $B$G$O$J$/(B \hgcmd{update} $B$rMQ$$$^$9!#(B 297.742 + 297.743 +\interaction{tour.update} 297.744 + 297.745 +\hgcmd{pull} $B<B9T;~$K:n6HNN0h$r<+F0E*$K99?7$7$J$$$3$H$O!"(B 297.746 +$B0l8+4q0[$K8+$($k$+$b$7$l$^$;$s$,!"(B 297.747 +$B<B$O$=$l$K$OM}M3$,M-$j$^$9!#(B 297.748 +\hgcmd{update} $B$rMQ$$$k$3$H$G!"(B 297.749 +$B%j%]%8%H%j$K5-O?$5$l$?(B\emph{$BG$0U$NHG(B}$B$N>uBV$X$H!"(B 297.750 +$B:n6HNN0h%G%#%l%/%H%j$NFbMF$r99?7$9$k$3$H$,$G$-$^$9!#(B 297.751 +$B:n6HNN0h%G%#%l%/%H%j$r(B 297.752 +---$BNc$($P!"%P%0$N860xD4::$J$I$N$?$a$K(B--- 297.753 +$B8E$$HG$K$7$F:n6H$7$F$$$?>l9g$J$I$O!"(B 297.754 +\hgcmd{pull} $B<B9T$,:n6HNN0h%G%#%l%/%H%j$r:G?7$NHG$K<+F0E*$K99?7$7$F$7$^$&$N$O!"(B 297.755 +$B$"$^$j$h$m$7$/$J$$$G$7$g$&!#(B 297.756 + 297.757 +$B$7$+$7!"(B\hgcmd{pull} $B!A(B \hgcmd{update} $B$H$$$&N.$l$OHs>o$KIQHK$J:n6H$G$9$+$i!"(B 297.758 +\hgcmd{pull} $B$K(B \hgopt{pull}{-u} $B%*%W%7%g%s$r;XDj$9$k$3$H$G!"(B 297.759 +Mercurial $B$O$3$l$i#2$D$rAH$_9g$o$;$?5!G=$rDs6!$7$^$9!#(B 297.760 + 297.761 +\begin{codesample2} 297.762 + hg pull -u 297.763 +\end{codesample2} 297.764 + 297.765 +\ref{sec:tour:pull}~$B@a$G$N(B 297.766 +\hgopt{pull}{-u} $B%*%W%7%g%s$r;XDj$7$J$$(B 297.767 +\hgcmd{pull} $B<B9T$N=PNO$K$O!"(B 297.768 +$B:n6HNN0h%G%#%l%/%H%j$N99?7$KL@<(E*$J<j=g$,I,MW$G$"$k$3$H$r<($9!"(B 297.769 +$BCm0U4-5/$N%a%C%;!<%8$,I=<($5$l$F$$$k$N$,8+$F<h$l$^$9!#(B 297.770 + 297.771 +\begin{codesample2} 297.772 + (run 'hg update' to get a working copy) 297.773 +\end{codesample2} 297.774 + 297.775 +$B:n6HNN0h%G%#%l%/%H%j$,$I$NHG$NFbMF$K4p$E$$$F$$$k$+$r8+$k$K$O!"(B 297.776 +\hgcmd{parents} $B%3%^%s%I$r;HMQ$7$^$9!#(B 297.777 + 297.778 +\interaction{tour.parents} 297.779 + 297.780 +$B?^(B~\ref{fig:tour-basic:history} $B$G$O!"(B 297.781 +$B8D!9$N%A%'%s%8%;%C%H$r7R$0Lp0u$,IA$+$l$F$$$^$9!#(B 297.782 +$BLp0u$N(B\emph{$B:,85(B}$B$K$"$?$k%A%'%s%8%;%C%H$,?F$r!"(B 297.783 +$B$=$7$FLp0u$N(B\emph{$B@h(B}$B$K$"$?$k%A%'%s%8%;%C%H$,;R$rI=$7$F$$$^$9!#(B 297.784 +$BF1$8$h$&$K!":n6HNN0h%G%#%l%/%H%j$b?F$r;}$C$F$*$j!"(B 297.785 +$B8=;~E@$GJ];}$7$F$$$k:n6HNN0h%G%#%l%/%H%j$NFbMF$O!"(B 297.786 +$B$=$N%A%'%s%8%;%C%H$K4p$E$$$?$b$N$G$9!#(B 297.787 + 297.788 +$B:n6HNN0h%G%#%l%/%H%j$NFbMF$rFCDj$NHG$N$b$N$K$9$k>l9g!"(B 297.789 +\hgcmd{update} $B%3%^%s%I$K%j%S%8%g%sHV9f$J$$$7%A%'%s%8%;%C%H(B~ID$B$r;XDj$7$^$9!#(B 297.790 + 297.791 +\interaction{tour.older} 297.792 + 297.793 +$BL@<(E*$JHG;XDj$r$7$J$+$C$?>l9g!"(B 297.794 +$B>e5-$NNc$K$*$1$k#2$DL\$N(B \hgcmd{update} $B<B9T$G8+$F<h$l$k$h$&$K!"(B 297.795 +\hgcmd{update} $B$O(B tip $B$,;XDj$5$l$?$b$N$H$7$F?6Iq$$$^$9!#(B 297.796 + 297.797 +\subsection{Pushing changes to another repository} 297.798 + 297.799 +Mercurial $B$G$O!"(B 297.800 +$B8=:_:n6H$r9T$C$F$$$k%j%]%8%H%j$+$iB>$N%j%]%8%H%j$X$N!"(B 297.801 +$BJQ99FbMF$NH?1G$,2DG=$G$9!#(B 297.802 +$B@h$K<($7$?(B \hgcmd{pull} $B$NNc$HF1MM$K!"(B 297.803 +$B$^$:$OJQ99H?1G@h$H$9$k$?$a$N0l;~E*$J%j%]%8%H%j$r:n@.$7$^$9!#(B 297.804 + 297.805 +\interaction{tour.clone-push} 297.806 + 297.807 +\hgcmd{outgoing} $B%3%^%s%I$O!"(B 297.808 +$BB>$N%j%]%8%H%j$X$NH?1GBP>]$H$J$k%A%'%s%8%;%C%H$r0lMwI=<($7$^$9!#(B 297.809 + 297.810 +\interaction{tour.outgoing} 297.811 + 297.812 +$B$=$7$F(B \hgcmd{push} $B%3%^%s%I$,<B:]$NH?1G:n6H$r9T$$$^$9!#(B 297.813 + 297.814 +\interaction{tour.push} 297.815 + 297.816 +\hgcmd{pull} $B$HF1MM$K!"(B 297.817 +\hgcmd{push} $B%3%^%s%I$OJQ99H?1G@h$N%j%]%8%H%jB&$K$*$$$F!"(B 297.818 +$B:n6HNN0h%G%#%l%/%H%j$N99?7$O9T$$$^$;$s(B 297.819 +$B!J(B\hgcmd{pull} $B$H0c$$!"(B 297.820 +\hgcmd{push} $B$OJQ99H?1G@h$N%j%]%8%H%jB&$G$N:n6HNN0h%G%#%l%/%H%j$r99?7$9$k(B 297.821 +\texttt{-u} $B%*%W%7%g%s$r;}$A$^$;$s!K!#(B 297.822 + 297.823 +$BEv3:%j%]%8%H%j$,4{$KAjEv$9$k%A%'%s%8%;%C%H$r;}$C$F$$$k>l9g!"(B 297.824 +$BJQ99$N<h$j9~$_$"$k$$$OH?1G$r9T$&$H$I$&$J$k$N$G$7$g$&!)(B 297.825 +$B6C$/$h$&$J$3$H$O2?$b5/$3$j$^$;$s!#(B 297.826 + 297.827 +\interaction{tour.push.nothing} 297.828 + 297.829 +\subsection{Sharing changes over a network} 297.830 + 297.831 +$B@h$N4v$D$+$N@a$G?($l$?%3%^%s%I$NMxMQ$O!"(B 297.832 +$B<j85$K$"$k%j%]%8%H%j$K$N$_8BDj$5$l$F$$$k$o$1$G$O$"$j$^$;$s!#(B 297.833 +$BA4$/F1MM$N7A<0$G!"(B 297.834 +$B%M%C%H%o!<%/@\B37PM3$G$b5!G=$7$^$9!#(B 297.835 +$B%m!<%+%k%U%!%$%k%7%9%F%`$N%Q%9$NBe$o$j$K!"(B 297.836 +URL $B$r;XDj$9$l$PNI$$$N$G$9!#(B 297.837 + 297.838 +\interaction{tour.outgoing.net} 297.839 + 297.840 +$B$3$NNc$G$O!"(B 297.841 +$B1s3V%j%]%8%H%j$KBP$7$FH?1G2DG=$JJQ99$N0lMw$r8+$k$3$H$,$G$-$^$9$,!"(B 297.842 +$B$3$N%j%]%8%H%j$OF?L>$G$NJQ99H?1G$r5v$9$h$&$K$OEvA3$G$9$,@_Dj$5$l$F$$$^$;$s!#(B 297.843 + 297.844 +\interaction{tour.push.net} 297.845 + 297.846 +%%% Local Variables: 297.847 +%%% mode: latex 297.848 +%%% TeX-master: "00book" 297.849 +%%% End:
298.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 298.2 +++ b/ja/tour-history.svg Fri Aug 14 12:10:47 2009 -0700 298.3 @@ -0,0 +1,289 @@ 298.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 298.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 298.6 +<svg 298.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 298.8 + xmlns:cc="http://web.resource.org/cc/" 298.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 298.10 + xmlns:svg="http://www.w3.org/2000/svg" 298.11 + xmlns="http://www.w3.org/2000/svg" 298.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 298.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 298.14 + width="744.09448819" 298.15 + height="1052.3622047" 298.16 + id="svg2" 298.17 + sodipodi:version="0.32" 298.18 + inkscape:version="0.44.1" 298.19 + sodipodi:docname="tour-history.svg"> 298.20 + <defs 298.21 + id="defs4"> 298.22 + <marker 298.23 + inkscape:stockid="Arrow1Mstart" 298.24 + orient="auto" 298.25 + refY="0.0" 298.26 + refX="0.0" 298.27 + id="Arrow1Mstart" 298.28 + style="overflow:visible"> 298.29 + <path 298.30 + id="path2973" 298.31 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 298.32 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 298.33 + transform="scale(0.4) translate(10,0)" /> 298.34 + </marker> 298.35 + <marker 298.36 + inkscape:stockid="Arrow1Mend" 298.37 + orient="auto" 298.38 + refY="0.0" 298.39 + refX="0.0" 298.40 + id="Arrow1Mend" 298.41 + style="overflow:visible;"> 298.42 + <path 298.43 + id="path3066" 298.44 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 298.45 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 298.46 + transform="scale(0.4) rotate(180) translate(10,0)" /> 298.47 + </marker> 298.48 + </defs> 298.49 + <sodipodi:namedview 298.50 + id="base" 298.51 + pagecolor="#ffffff" 298.52 + bordercolor="#666666" 298.53 + borderopacity="1.0" 298.54 + gridtolerance="10000" 298.55 + guidetolerance="10" 298.56 + objecttolerance="10" 298.57 + inkscape:pageopacity="0.0" 298.58 + inkscape:pageshadow="2" 298.59 + inkscape:zoom="1.4" 298.60 + inkscape:cx="232.14286" 298.61 + inkscape:cy="672.75296" 298.62 + inkscape:document-units="px" 298.63 + inkscape:current-layer="layer1" 298.64 + inkscape:window-width="906" 298.65 + inkscape:window-height="620" 298.66 + inkscape:window-x="5" 298.67 + inkscape:window-y="49" /> 298.68 + <metadata 298.69 + id="metadata7"> 298.70 + <rdf:RDF> 298.71 + <cc:Work 298.72 + rdf:about=""> 298.73 + <dc:format>image/svg+xml</dc:format> 298.74 + <dc:type 298.75 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 298.76 + </cc:Work> 298.77 + </rdf:RDF> 298.78 + </metadata> 298.79 + <g 298.80 + inkscape:label="Layer 1" 298.81 + inkscape:groupmode="layer" 298.82 + id="layer1"> 298.83 + <rect 298.84 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 298.85 + id="rect1878" 298.86 + width="94.285713" 298.87 + height="20.714285" 298.88 + x="138" 298.89 + y="479.50504" /> 298.90 + <text 298.91 + xml:space="preserve" 298.92 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 298.93 + x="162.09892" 298.94 + y="493.12619" 298.95 + id="text1872"><tspan 298.96 + sodipodi:role="line" 298.97 + id="tspan1874" 298.98 + x="162.09892" 298.99 + y="493.12619" 298.100 + style="font-family:Courier"><tspan 298.101 + style="font-weight:bold" 298.102 + id="tspan1876">0</tspan>: 0a04</tspan></text> 298.103 + <rect 298.104 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 298.105 + id="rect2800" 298.106 + width="94.285713" 298.107 + height="20.714285" 298.108 + x="138" 298.109 + y="432.63004" /> 298.110 + <text 298.111 + xml:space="preserve" 298.112 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 298.113 + x="162.09892" 298.114 + y="446.25119" 298.115 + id="text2794"><tspan 298.116 + sodipodi:role="line" 298.117 + id="tspan2796" 298.118 + x="162.09892" 298.119 + y="446.25119" 298.120 + style="font-family:Courier"><tspan 298.121 + id="tspan2868" 298.122 + style="font-weight:bold">1</tspan>: 82e5</tspan></text> 298.123 + <rect 298.124 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 298.125 + id="rect2810" 298.126 + width="94.285713" 298.127 + height="20.714285" 298.128 + x="138" 298.129 + y="385.75504" /> 298.130 + <text 298.131 + xml:space="preserve" 298.132 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 298.133 + x="162.09892" 298.134 + y="399.37619" 298.135 + id="text2804"><tspan 298.136 + sodipodi:role="line" 298.137 + id="tspan2806" 298.138 + x="162.09892" 298.139 + y="399.37619" 298.140 + style="font-family:Courier"><tspan 298.141 + style="font-weight:bold" 298.142 + id="tspan2866">2</tspan>: 057d</tspan></text> 298.143 + <rect 298.144 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 298.145 + id="rect2820" 298.146 + width="94.285713" 298.147 + height="20.714285" 298.148 + x="138" 298.149 + y="338.88007" /> 298.150 + <text 298.151 + xml:space="preserve" 298.152 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 298.153 + x="162.09892" 298.154 + y="352.50122" 298.155 + id="text2814"><tspan 298.156 + sodipodi:role="line" 298.157 + id="tspan2816" 298.158 + x="162.09892" 298.159 + y="352.50122" 298.160 + style="font-family:Courier"><tspan 298.161 + style="font-weight:bold" 298.162 + id="tspan2864">3</tspan>: ff5d</tspan></text> 298.163 + <rect 298.164 + style="opacity:1;fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 298.165 + id="rect2830" 298.166 + width="94.285713" 298.167 + height="20.714285" 298.168 + x="138" 298.169 + y="292.00504" /> 298.170 + <text 298.171 + xml:space="preserve" 298.172 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 298.173 + x="162.09892" 298.174 + y="305.62619" 298.175 + id="text2824"><tspan 298.176 + sodipodi:role="line" 298.177 + id="tspan2826" 298.178 + x="162.09892" 298.179 + y="305.62619" 298.180 + style="font-family:Courier"><tspan 298.181 + style="font-weight:bold" 298.182 + id="tspan2862">4</tspan>: b57f</tspan></text> 298.183 + <text 298.184 + xml:space="preserve" 298.185 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 298.186 + x="173.57143" 298.187 + y="443.79074" 298.188 + id="text2832"><tspan 298.189 + sodipodi:role="line" 298.190 + id="tspan2834" 298.191 + x="173.57143" 298.192 + y="443.79074" /></text> 298.193 + <path 298.194 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 298.195 + d="M 185.14286,478.50504 L 185.14286,454.34432" 298.196 + id="path2894" 298.197 + inkscape:connector-type="polyline" /> 298.198 + <path 298.199 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 298.200 + d="M 185.14286,431.63004 L 185.14286,407.46932" 298.201 + id="path2896" 298.202 + inkscape:connector-type="polyline" /> 298.203 + <path 298.204 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 298.205 + d="M 185.14286,384.75504 L 185.14286,360.59435" 298.206 + id="path2898" 298.207 + inkscape:connector-type="polyline" /> 298.208 + <path 298.209 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 298.210 + d="M 185.14286,337.88007 L 185.14286,313.71932" 298.211 + id="path2900" 298.212 + inkscape:connector-type="polyline" /> 298.213 + <text 298.214 + xml:space="preserve" 298.215 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 298.216 + x="244.60992" 298.217 + y="305.245" 298.218 + id="text1902"><tspan 298.219 + sodipodi:role="line" 298.220 + id="tspan1904" 298.221 + x="244.60992" 298.222 + y="305.245">(newest)</tspan></text> 298.223 + <text 298.224 + xml:space="preserve" 298.225 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 298.226 + x="244.60992" 298.227 + y="492.745" 298.228 + id="text1906"><tspan 298.229 + sodipodi:role="line" 298.230 + id="tspan1908" 298.231 + x="244.60992" 298.232 + y="492.745">(oldest)</tspan></text> 298.233 + <rect 298.234 + style="opacity:1;fill:#d2e1e4;fill-opacity:1;stroke:#b1cbd0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 298.235 + id="rect1907" 298.236 + width="94.285713" 298.237 + height="20.714285" 298.238 + x="309.28571" 298.239 + y="324.86218" /> 298.240 + <text 298.241 + xml:space="preserve" 298.242 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 298.243 + x="333.38464" 298.244 + y="338.48334" 298.245 + id="text1909"><tspan 298.246 + sodipodi:role="line" 298.247 + id="tspan1911" 298.248 + x="333.38464" 298.249 + y="338.48334" 298.250 + style="font-family:Courier"><tspan 298.251 + style="font-weight:bold" 298.252 + id="tspan1913">4</tspan>: b57f</tspan></text> 298.253 + <path 298.254 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 298.255 + d="M 332.14286,375.21932 L 335.71429,347.36218" 298.256 + id="path2802" /> 298.257 + <path 298.258 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 298.259 + d="M 372.69968,375.21932 L 369.12825,347.36218" 298.260 + id="path2986" /> 298.261 + <text 298.262 + xml:space="preserve" 298.263 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 298.264 + x="335.14285" 298.265 + y="387.21933" 298.266 + id="text2988"><tspan 298.267 + sodipodi:role="line" 298.268 + x="335.14285" 298.269 + y="387.21933" 298.270 + id="tspan3020" 298.271 + style="text-align:end;text-anchor:end">revision</tspan><tspan 298.272 + sodipodi:role="line" 298.273 + x="335.14285" 298.274 + y="402.21933" 298.275 + id="tspan3014" 298.276 + style="text-align:end;text-anchor:end">number</tspan></text> 298.277 + <text 298.278 + xml:space="preserve" 298.279 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times" 298.280 + x="368.71429" 298.281 + y="387.21933" 298.282 + id="text2994"><tspan 298.283 + sodipodi:role="line" 298.284 + id="tspan2996" 298.285 + x="368.71429" 298.286 + y="387.21933">changeset</tspan><tspan 298.287 + sodipodi:role="line" 298.288 + x="368.71429" 298.289 + y="402.21933" 298.290 + id="tspan2998">identifier</tspan></text> 298.291 + </g> 298.292 +</svg>
299.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 299.2 +++ b/ja/tour-merge-conflict.svg Fri Aug 14 12:10:47 2009 -0700 299.3 @@ -0,0 +1,210 @@ 299.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 299.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 299.6 +<svg 299.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 299.8 + xmlns:cc="http://web.resource.org/cc/" 299.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 299.10 + xmlns:svg="http://www.w3.org/2000/svg" 299.11 + xmlns="http://www.w3.org/2000/svg" 299.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 299.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 299.14 + width="744.09448819" 299.15 + height="1052.3622047" 299.16 + id="svg2" 299.17 + sodipodi:version="0.32" 299.18 + inkscape:version="0.44.1" 299.19 + sodipodi:docname="tour-merge-conflict.svg"> 299.20 + <defs 299.21 + id="defs4"> 299.22 + <marker 299.23 + inkscape:stockid="Arrow1Mend" 299.24 + orient="auto" 299.25 + refY="0.0" 299.26 + refX="0.0" 299.27 + id="Arrow1Mend" 299.28 + style="overflow:visible;"> 299.29 + <path 299.30 + id="path3053" 299.31 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 299.32 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 299.33 + transform="scale(0.4) rotate(180) translate(10,0)" /> 299.34 + </marker> 299.35 + </defs> 299.36 + <sodipodi:namedview 299.37 + id="base" 299.38 + pagecolor="#ffffff" 299.39 + bordercolor="#666666" 299.40 + borderopacity="1.0" 299.41 + gridtolerance="10000" 299.42 + guidetolerance="10" 299.43 + objecttolerance="10" 299.44 + inkscape:pageopacity="0.0" 299.45 + inkscape:pageshadow="2" 299.46 + inkscape:zoom="1.4" 299.47 + inkscape:cx="164.78349" 299.48 + inkscape:cy="590.07679" 299.49 + inkscape:document-units="px" 299.50 + inkscape:current-layer="layer1" 299.51 + inkscape:window-width="906" 299.52 + inkscape:window-height="620" 299.53 + inkscape:window-x="5" 299.54 + inkscape:window-y="49" /> 299.55 + <metadata 299.56 + id="metadata7"> 299.57 + <rdf:RDF> 299.58 + <cc:Work 299.59 + rdf:about=""> 299.60 + <dc:format>image/svg+xml</dc:format> 299.61 + <dc:type 299.62 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 299.63 + </cc:Work> 299.64 + </rdf:RDF> 299.65 + </metadata> 299.66 + <g 299.67 + inkscape:label="Layer 1" 299.68 + inkscape:groupmode="layer" 299.69 + id="layer1"> 299.70 + <g 299.71 + id="g1988" 299.72 + transform="translate(84.85711,0)"> 299.73 + <g 299.74 + id="g1876"> 299.75 + <path 299.76 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 299.77 + d="M 118.57143,458.21933 L 118.57143,563.79075 L 191.42857,563.79075 L 204.28571,550.93361 L 203.57142,459.6479 L 118.57143,458.21933 z " 299.78 + id="path1872" 299.79 + sodipodi:nodetypes="cccccc" /> 299.80 + <path 299.81 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 299.82 + d="M 191.55484,563.36862 L 191.6923,560.98794 L 192.69126,552.44884 L 203.80416,551.31242" 299.83 + id="path1874" 299.84 + sodipodi:nodetypes="cccc" /> 299.85 + </g> 299.86 + <flowRoot 299.87 + style="font-size:8px;font-family:Times New Roman" 299.88 + id="flowRoot1898" 299.89 + xml:space="preserve"><flowRegion 299.90 + id="flowRegion1900"><rect 299.91 + style="font-size:8px;font-family:Times New Roman" 299.92 + y="464.50504" 299.93 + x="122.85714" 299.94 + height="93.571426" 299.95 + width="76.428574" 299.96 + id="rect1902" /></flowRegion><flowPara 299.97 + id="flowPara1904">Greetings!</flowPara><flowPara 299.98 + id="flowPara1906" /><flowPara 299.99 + id="flowPara1908">I am Mariam Abacha, the wife of former Nigerian dictator Sani Abacha. I am contacting you in confidence, and as a means of developing</flowPara></flowRoot> </g> 299.100 + <g 299.101 + id="g1966" 299.102 + transform="translate(82,0.35715)"> 299.103 + <g 299.104 + transform="translate(-77.85718,-140.0714)" 299.105 + id="g1910"> 299.106 + <path 299.107 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 299.108 + d="M 118.57143,458.21933 L 118.57143,563.79075 L 191.42857,563.79075 L 204.28571,550.93361 L 203.57142,459.6479 L 118.57143,458.21933 z " 299.109 + id="path1912" 299.110 + sodipodi:nodetypes="cccccc" /> 299.111 + <path 299.112 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 299.113 + d="M 191.55484,563.36862 L 191.6923,560.98794 L 192.69126,552.44884 L 203.80416,551.31242" 299.114 + id="path1914" 299.115 + sodipodi:nodetypes="cccc" /> 299.116 + </g> 299.117 + <flowRoot 299.118 + transform="translate(-77.85718,-140.0714)" 299.119 + style="font-size:8px;font-family:Times New Roman" 299.120 + id="flowRoot1916" 299.121 + xml:space="preserve"><flowRegion 299.122 + id="flowRegion1918"><rect 299.123 + style="font-size:8px;font-family:Times New Roman" 299.124 + y="464.50504" 299.125 + x="122.85714" 299.126 + height="93.571426" 299.127 + width="76.428574" 299.128 + id="rect1920" /></flowRegion><flowPara 299.129 + id="flowPara1922">Greetings!</flowPara><flowPara 299.130 + id="flowPara1924" /><flowPara 299.131 + id="flowPara1926">I am <flowSpan 299.132 + style="font-style:italic;fill:red" 299.133 + id="flowSpan3094">Shehu Musa Abacha, cousin to</flowSpan> the former Nigerian dictator Sani Abacha. I am contacting you in confidence, and as a means of developing</flowPara></flowRoot> </g> 299.134 + <g 299.135 + id="g1977" 299.136 + transform="translate(81.99999,-0.35715)"> 299.137 + <g 299.138 + transform="translate(83.57141,-139.3571)" 299.139 + id="g1932"> 299.140 + <path 299.141 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 299.142 + d="M 118.57143,458.21933 L 118.57143,563.79075 L 191.42857,563.79075 L 204.28571,550.93361 L 203.57142,459.6479 L 118.57143,458.21933 z " 299.143 + id="path1934" 299.144 + sodipodi:nodetypes="cccccc" /> 299.145 + <path 299.146 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 299.147 + d="M 191.55484,563.36862 L 191.6923,560.98794 L 192.69126,552.44884 L 203.80416,551.31242" 299.148 + id="path1936" 299.149 + sodipodi:nodetypes="cccc" /> 299.150 + </g> 299.151 + <flowRoot 299.152 + transform="translate(83.57141,-139.3571)" 299.153 + style="font-size:8px;font-family:Times New Roman" 299.154 + id="flowRoot1938" 299.155 + xml:space="preserve"><flowRegion 299.156 + id="flowRegion1940"><rect 299.157 + style="font-size:8px;font-family:Times New Roman" 299.158 + y="464.50504" 299.159 + x="122.85714" 299.160 + height="93.571426" 299.161 + width="76.428574" 299.162 + id="rect1942" /></flowRegion><flowPara 299.163 + id="flowPara1944">Greetings!</flowPara><flowPara 299.164 + id="flowPara1946" /><flowPara 299.165 + id="flowPara1948">I am <flowSpan 299.166 + style="font-style:italic;fill:red" 299.167 + id="flowSpan3096">Alhaji Abba Abacha, son of</flowSpan> the former Nigerian dictator Sani Abacha. I am contacting you in confidence, and as a means of developing</flowPara></flowRoot> </g> 299.168 + <path 299.169 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 299.170 + d="M 215.502,457.71933 L 196.35507,424.5765" 299.171 + id="path1999" 299.172 + inkscape:connector-type="polyline" 299.173 + inkscape:connection-start="#g1988" 299.174 + inkscape:connection-end="#g1966" /> 299.175 + <path 299.176 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 299.177 + d="M 277.06936,457.71933 L 296.21629,424.5765" 299.178 + id="path2001" 299.179 + inkscape:connector-type="polyline" 299.180 + inkscape:connection-start="#g1988" 299.181 + inkscape:connection-end="#g1977" /> 299.182 + <text 299.183 + xml:space="preserve" 299.184 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 299.185 + x="302.42859" 299.186 + y="515.08905" 299.187 + id="text1905"><tspan 299.188 + sodipodi:role="line" 299.189 + id="tspan1907" 299.190 + x="302.42859" 299.191 + y="515.08905">Base version</tspan></text> 299.192 + <text 299.193 + xml:space="preserve" 299.194 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 299.195 + x="45.57143" 299.196 + y="374.1619" 299.197 + id="text1917"><tspan 299.198 + sodipodi:role="line" 299.199 + id="tspan1919" 299.200 + x="45.57143" 299.201 + y="374.1619">Our changes</tspan></text> 299.202 + <text 299.203 + xml:space="preserve" 299.204 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 299.205 + x="385.71429" 299.206 + y="374.1619" 299.207 + id="text1921"><tspan 299.208 + sodipodi:role="line" 299.209 + id="tspan1923" 299.210 + x="385.71429" 299.211 + y="374.1619">Their changes</tspan></text> 299.212 + </g> 299.213 +</svg>
300.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 300.2 +++ b/ja/tour-merge-merge.svg Fri Aug 14 12:10:47 2009 -0700 300.3 @@ -0,0 +1,380 @@ 300.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 300.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 300.6 +<svg 300.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 300.8 + xmlns:cc="http://web.resource.org/cc/" 300.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 300.10 + xmlns:svg="http://www.w3.org/2000/svg" 300.11 + xmlns="http://www.w3.org/2000/svg" 300.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 300.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 300.14 + width="744.09448819" 300.15 + height="1052.3622047" 300.16 + id="svg2" 300.17 + sodipodi:version="0.32" 300.18 + inkscape:version="0.44.1" 300.19 + sodipodi:docname="tour-merge-merge.svg"> 300.20 + <defs 300.21 + id="defs4"> 300.22 + <marker 300.23 + inkscape:stockid="Arrow1Mstart" 300.24 + orient="auto" 300.25 + refY="0.0" 300.26 + refX="0.0" 300.27 + id="Arrow1Mstart" 300.28 + style="overflow:visible"> 300.29 + <path 300.30 + id="path2973" 300.31 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 300.32 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 300.33 + transform="scale(0.4) translate(10,0)" /> 300.34 + </marker> 300.35 + <marker 300.36 + inkscape:stockid="Arrow1Mend" 300.37 + orient="auto" 300.38 + refY="0.0" 300.39 + refX="0.0" 300.40 + id="Arrow1Mend" 300.41 + style="overflow:visible;"> 300.42 + <path 300.43 + id="path3066" 300.44 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 300.45 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 300.46 + transform="scale(0.4) rotate(180) translate(10,0)" /> 300.47 + </marker> 300.48 + </defs> 300.49 + <sodipodi:namedview 300.50 + id="base" 300.51 + pagecolor="#ffffff" 300.52 + bordercolor="#666666" 300.53 + borderopacity="1.0" 300.54 + gridtolerance="10000" 300.55 + guidetolerance="10" 300.56 + objecttolerance="10" 300.57 + inkscape:pageopacity="0.0" 300.58 + inkscape:pageshadow="2" 300.59 + inkscape:zoom="1.4" 300.60 + inkscape:cx="247.53795" 300.61 + inkscape:cy="871.05738" 300.62 + inkscape:document-units="px" 300.63 + inkscape:current-layer="layer1" 300.64 + inkscape:window-width="906" 300.65 + inkscape:window-height="620" 300.66 + inkscape:window-x="38" 300.67 + inkscape:window-y="95" /> 300.68 + <metadata 300.69 + id="metadata7"> 300.70 + <rdf:RDF> 300.71 + <cc:Work 300.72 + rdf:about=""> 300.73 + <dc:format>image/svg+xml</dc:format> 300.74 + <dc:type 300.75 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 300.76 + </cc:Work> 300.77 + </rdf:RDF> 300.78 + </metadata> 300.79 + <g 300.80 + inkscape:label="Layer 1" 300.81 + inkscape:groupmode="layer" 300.82 + id="layer1"> 300.83 + <rect 300.84 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 300.85 + id="rect2995" 300.86 + width="94.285713" 300.87 + height="20.714285" 300.88 + x="532.85718" 300.89 + y="203.0479" /> 300.90 + <text 300.91 + xml:space="preserve" 300.92 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 300.93 + x="173.57143" 300.94 + y="443.79074" 300.95 + id="text2832"><tspan 300.96 + sodipodi:role="line" 300.97 + id="tspan2834" 300.98 + x="173.57143" 300.99 + y="443.79074" /></text> 300.100 + <rect 300.101 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 300.102 + id="rect2830" 300.103 + width="94.285713" 300.104 + height="20.714285" 300.105 + x="138" 300.106 + y="297.76227" /> 300.107 + <text 300.108 + xml:space="preserve" 300.109 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 300.110 + x="162.09892" 300.111 + y="311.38342" 300.112 + id="text2824"><tspan 300.113 + sodipodi:role="line" 300.114 + id="tspan2826" 300.115 + x="162.09892" 300.116 + y="311.38342" 300.117 + style="font-family:Courier"><tspan 300.118 + style="font-weight:bold" 300.119 + id="tspan2862">4</tspan>: b57f</tspan></text> 300.120 + <path 300.121 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 300.122 + d="M 185.14286,343.63731 L 185.14286,319.47656" 300.123 + id="path2900" 300.124 + inkscape:connector-type="polyline" /> 300.125 + <rect 300.126 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 300.127 + id="rect2863" 300.128 + width="94.285713" 300.129 + height="20.714285" 300.130 + x="91.428574" 300.131 + y="250.47656" /> 300.132 + <text 300.133 + xml:space="preserve" 300.134 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 300.135 + x="116.09886" 300.136 + y="264.56592" 300.137 + id="text1965" 300.138 + transform="scale(1.000002,0.999998)"><tspan 300.139 + sodipodi:role="line" 300.140 + id="tspan1967" 300.141 + x="116.09886" 300.142 + y="264.56592" 300.143 + style="font-family:Courier"><tspan 300.144 + style="font-weight:bold" 300.145 + id="tspan1973">5</tspan>: ae13</tspan></text> 300.146 + <path 300.147 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 300.148 + d="M 173.95727,296.76228 L 149.75702,272.19085" 300.149 + id="path1971" 300.150 + inkscape:connector-type="polyline" 300.151 + inkscape:connection-end="#rect2863" 300.152 + inkscape:connection-start="#rect2830" /> 300.153 + <rect 300.154 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 300.155 + id="rect2911" 300.156 + width="94.285995" 300.157 + height="20.714283" 300.158 + x="186.71414" 300.159 + y="204.40514" /> 300.160 + <text 300.161 + xml:space="preserve" 300.162 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 300.163 + x="210.81311" 300.164 + y="218.02673" 300.165 + id="text2913" 300.166 + transform="scale(1.000002,0.999998)"><tspan 300.167 + sodipodi:role="line" 300.168 + id="tspan2915" 300.169 + x="210.81311" 300.170 + y="218.02673" 300.171 + style="font-family:Courier"><tspan 300.172 + id="tspan1966" 300.173 + style="font-weight:bold">6</tspan>: d2b5</tspan></text> 300.174 + <path 300.175 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 300.176 + d="M 191.06908,296.76228 L 227.93092,226.11942" 300.177 + id="path2919" 300.178 + inkscape:connector-type="polyline" 300.179 + inkscape:connection-start="#rect2830" /> 300.180 + <text 300.181 + xml:space="preserve" 300.182 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 300.183 + x="295.28571" 300.184 + y="217.56711" 300.185 + id="text2871"><tspan 300.186 + sodipodi:role="line" 300.187 + id="tspan2873" 300.188 + x="295.28571" 300.189 + y="217.56711">tip (and head)</tspan></text> 300.190 + <text 300.191 + xml:space="preserve" 300.192 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 300.193 + x="76" 300.194 + y="264.91769" 300.195 + id="text2875"><tspan 300.196 + sodipodi:role="line" 300.197 + id="tspan2877" 300.198 + x="76" 300.199 + y="264.91769" 300.200 + style="text-align:end;text-anchor:end">head</tspan></text> 300.201 + <rect 300.202 + style="fill:#c8aaa5;fill-opacity:1;stroke:#a07163;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0;stroke-opacity:1" 300.203 + id="rect1913" 300.204 + width="94.285713" 300.205 + height="20.714285" 300.206 + x="138" 300.207 + y="156.90514" /> 300.208 + <path 300.209 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1" 300.210 + d="M 144.22399,249.47657 L 179.49029,178.61943" 300.211 + id="path1915" 300.212 + inkscape:connector-type="polyline" 300.213 + inkscape:connection-start="#rect2863" 300.214 + inkscape:connection-end="#rect1913" /> 300.215 + <path 300.216 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1" 300.217 + d="M 222.20966,203.40514 L 196.79033,178.61943" 300.218 + id="path1917" 300.219 + inkscape:connector-type="polyline" 300.220 + inkscape:connection-start="#rect2911" 300.221 + inkscape:connection-end="#rect1913" /> 300.222 + <text 300.223 + xml:space="preserve" 300.224 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 300.225 + x="166.16823" 300.226 + y="168.52228" 300.227 + id="text2806"><tspan 300.228 + sodipodi:role="line" 300.229 + id="tspan2808" 300.230 + x="166.16823" 300.231 + y="168.52228" 300.232 + style="font-family:Courier">merge</tspan></text> 300.233 + <text 300.234 + xml:space="preserve" 300.235 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 300.236 + x="246" 300.237 + y="162.63338" 300.238 + id="text2810"><tspan 300.239 + sodipodi:role="line" 300.240 + id="tspan2812" 300.241 + x="246" 300.242 + y="162.63338">working directory</tspan><tspan 300.243 + sodipodi:role="line" 300.244 + x="246" 300.245 + y="177.63338" 300.246 + id="tspan2814">during merge</tspan></text> 300.247 + <rect 300.248 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 300.249 + id="rect2816" 300.250 + width="94.285713" 300.251 + height="20.714285" 300.252 + x="483.14636" 300.253 + y="297.76227" /> 300.254 + <text 300.255 + xml:space="preserve" 300.256 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 300.257 + x="507.24527" 300.258 + y="311.38342" 300.259 + id="text2818"><tspan 300.260 + sodipodi:role="line" 300.261 + id="tspan2820" 300.262 + x="507.24527" 300.263 + y="311.38342" 300.264 + style="font-family:Courier"><tspan 300.265 + style="font-weight:bold" 300.266 + id="tspan2822">4</tspan>: b57f</tspan></text> 300.267 + <path 300.268 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 300.269 + d="M 530.28921,343.6373 L 530.28921,319.47655" 300.270 + id="path2824" 300.271 + inkscape:connector-type="polyline" /> 300.272 + <rect 300.273 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 300.274 + id="rect2826" 300.275 + width="94.285713" 300.276 + height="20.714285" 300.277 + x="436.57492" 300.278 + y="250.47656" /> 300.279 + <text 300.280 + xml:space="preserve" 300.281 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 300.282 + x="461.24484" 300.283 + y="264.56613" 300.284 + id="text2828" 300.285 + transform="scale(1.000002,0.999998)"><tspan 300.286 + sodipodi:role="line" 300.287 + id="tspan2830" 300.288 + x="461.24484" 300.289 + y="264.56613" 300.290 + style="font-family:Courier"><tspan 300.291 + style="font-weight:bold" 300.292 + id="tspan2832">5</tspan>: ae13</tspan></text> 300.293 + <path 300.294 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 300.295 + d="M 519.10362,296.76227 L 494.90337,272.19084" 300.296 + id="path2834" 300.297 + inkscape:connector-type="polyline" /> 300.298 + <rect 300.299 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 300.300 + id="rect2836" 300.301 + width="94.285995" 300.302 + height="20.714283" 300.303 + x="483.14001" 300.304 + y="156.548" /> 300.305 + <text 300.306 + xml:space="preserve" 300.307 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 300.308 + x="555.95911" 300.309 + y="218.02698" 300.310 + id="text2838" 300.311 + transform="scale(1.000002,0.999998)"><tspan 300.312 + sodipodi:role="line" 300.313 + id="tspan2840" 300.314 + x="555.95911" 300.315 + y="218.02698" 300.316 + style="font-family:Courier"><tspan 300.317 + id="tspan2842" 300.318 + style="font-weight:bold">6</tspan>: d2b5</tspan></text> 300.319 + <path 300.320 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 300.321 + d="M 536.21543,296.76227 L 574.03453,224.76218" 300.322 + id="path2844" 300.323 + inkscape:connector-type="polyline" /> 300.324 + <text 300.325 + xml:space="preserve" 300.326 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 300.327 + x="594.43207" 300.328 + y="169.78796" 300.329 + id="text2846"><tspan 300.330 + sodipodi:role="line" 300.331 + id="tspan2848" 300.332 + x="594.43207" 300.333 + y="169.78796">tip</tspan></text> 300.334 + <path 300.335 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" 300.336 + d="M 489.37034,249.47656 L 524.65575,178.26229" 300.337 + id="path2856" 300.338 + inkscape:connector-type="polyline" 300.339 + inkscape:connection-end="#rect2836" /> 300.340 + <path 300.341 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" 300.342 + d="M 567.85714,202.0479 L 542.42591,178.26229" 300.343 + id="path2858" 300.344 + inkscape:connector-type="polyline" 300.345 + inkscape:connection-end="#rect2836" 300.346 + inkscape:connection-start="#rect2995" /> 300.347 + <text 300.348 + xml:space="preserve" 300.349 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 300.350 + x="504.54507" 300.351 + y="170.39714" 300.352 + id="text2860"><tspan 300.353 + sodipodi:role="line" 300.354 + id="tspan2863" 300.355 + x="504.54507" 300.356 + y="170.39714" 300.357 + style="font-family:Courier"><tspan 300.358 + style="font-weight:bold" 300.359 + id="tspan2997">7</tspan>: dba3</tspan></text> 300.360 + <text 300.361 + xml:space="preserve" 300.362 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 300.363 + x="90.323105" 300.364 + y="120.21933" 300.365 + id="text2929"><tspan 300.366 + sodipodi:role="line" 300.367 + id="tspan2931" 300.368 + x="90.323105" 300.369 + y="120.21933" 300.370 + style="font-weight:bold">Working directory during merge</tspan></text> 300.371 + <text 300.372 + xml:space="preserve" 300.373 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 300.374 + x="435.35226" 300.375 + y="120.21933" 300.376 + id="text2937"><tspan 300.377 + sodipodi:role="line" 300.378 + id="tspan2939" 300.379 + x="435.35226" 300.380 + y="120.21933" 300.381 + style="font-weight:bold">Repository after merge committed</tspan></text> 300.382 + </g> 300.383 +</svg>
301.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 301.2 +++ b/ja/tour-merge-pull.svg Fri Aug 14 12:10:47 2009 -0700 301.3 @@ -0,0 +1,288 @@ 301.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 301.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 301.6 +<svg 301.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 301.8 + xmlns:cc="http://web.resource.org/cc/" 301.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 301.10 + xmlns:svg="http://www.w3.org/2000/svg" 301.11 + xmlns="http://www.w3.org/2000/svg" 301.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 301.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 301.14 + width="744.09448819" 301.15 + height="1052.3622047" 301.16 + id="svg2" 301.17 + sodipodi:version="0.32" 301.18 + inkscape:version="0.44.1" 301.19 + sodipodi:docname="tour-merge-pull.svg" 301.20 + sodipodi:docbase="/home/bos/hg/hgbook/en"> 301.21 + <defs 301.22 + id="defs4"> 301.23 + <marker 301.24 + inkscape:stockid="Arrow1Mstart" 301.25 + orient="auto" 301.26 + refY="0.0" 301.27 + refX="0.0" 301.28 + id="Arrow1Mstart" 301.29 + style="overflow:visible"> 301.30 + <path 301.31 + id="path2973" 301.32 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 301.33 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 301.34 + transform="scale(0.4) translate(10,0)" /> 301.35 + </marker> 301.36 + <marker 301.37 + inkscape:stockid="Arrow1Mend" 301.38 + orient="auto" 301.39 + refY="0.0" 301.40 + refX="0.0" 301.41 + id="Arrow1Mend" 301.42 + style="overflow:visible;"> 301.43 + <path 301.44 + id="path3066" 301.45 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 301.46 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 301.47 + transform="scale(0.4) rotate(180) translate(10,0)" /> 301.48 + </marker> 301.49 + </defs> 301.50 + <sodipodi:namedview 301.51 + id="base" 301.52 + pagecolor="#ffffff" 301.53 + bordercolor="#666666" 301.54 + borderopacity="1.0" 301.55 + gridtolerance="10000" 301.56 + guidetolerance="10" 301.57 + objecttolerance="10" 301.58 + inkscape:pageopacity="0.0" 301.59 + inkscape:pageshadow="2" 301.60 + inkscape:zoom="1.4" 301.61 + inkscape:cx="233.63208" 301.62 + inkscape:cy="832.54381" 301.63 + inkscape:document-units="px" 301.64 + inkscape:current-layer="layer1" 301.65 + inkscape:window-width="906" 301.66 + inkscape:window-height="620" 301.67 + inkscape:window-x="237" 301.68 + inkscape:window-y="103" /> 301.69 + <metadata 301.70 + id="metadata7"> 301.71 + <rdf:RDF> 301.72 + <cc:Work 301.73 + rdf:about=""> 301.74 + <dc:format>image/svg+xml</dc:format> 301.75 + <dc:type 301.76 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 301.77 + </cc:Work> 301.78 + </rdf:RDF> 301.79 + </metadata> 301.80 + <g 301.81 + inkscape:label="Layer 1" 301.82 + inkscape:groupmode="layer" 301.83 + id="layer1"> 301.84 + <text 301.85 + xml:space="preserve" 301.86 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 301.87 + x="173.57143" 301.88 + y="443.79074" 301.89 + id="text2832"><tspan 301.90 + sodipodi:role="line" 301.91 + id="tspan2834" 301.92 + x="173.57143" 301.93 + y="443.79074" /></text> 301.94 + <rect 301.95 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 301.96 + id="rect1878" 301.97 + width="94.285713" 301.98 + height="20.714285" 301.99 + x="138" 301.100 + y="479.50504" /> 301.101 + <text 301.102 + xml:space="preserve" 301.103 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 301.104 + x="162.09892" 301.105 + y="493.12619" 301.106 + id="text1872"><tspan 301.107 + sodipodi:role="line" 301.108 + id="tspan1874" 301.109 + x="162.09892" 301.110 + y="493.12619" 301.111 + style="font-family:Courier"><tspan 301.112 + style="font-weight:bold" 301.113 + id="tspan1876">0</tspan>: 0a04</tspan></text> 301.114 + <rect 301.115 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 301.116 + id="rect2800" 301.117 + width="94.285713" 301.118 + height="20.714285" 301.119 + x="138" 301.120 + y="432.63004" /> 301.121 + <text 301.122 + xml:space="preserve" 301.123 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 301.124 + x="162.09892" 301.125 + y="446.25119" 301.126 + id="text2794"><tspan 301.127 + sodipodi:role="line" 301.128 + id="tspan2796" 301.129 + x="162.09892" 301.130 + y="446.25119" 301.131 + style="font-family:Courier"><tspan 301.132 + id="tspan2868" 301.133 + style="font-weight:bold">1</tspan>: 82e5</tspan></text> 301.134 + <rect 301.135 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 301.136 + id="rect2810" 301.137 + width="94.285713" 301.138 + height="20.714285" 301.139 + x="138" 301.140 + y="385.75504" /> 301.141 + <text 301.142 + xml:space="preserve" 301.143 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 301.144 + x="162.09892" 301.145 + y="399.37619" 301.146 + id="text2804"><tspan 301.147 + sodipodi:role="line" 301.148 + id="tspan2806" 301.149 + x="162.09892" 301.150 + y="399.37619" 301.151 + style="font-family:Courier"><tspan 301.152 + style="font-weight:bold" 301.153 + id="tspan2866">2</tspan>: 057d</tspan></text> 301.154 + <rect 301.155 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 301.156 + id="rect2820" 301.157 + width="94.285713" 301.158 + height="20.714285" 301.159 + x="138" 301.160 + y="338.88007" /> 301.161 + <text 301.162 + xml:space="preserve" 301.163 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 301.164 + x="162.09892" 301.165 + y="352.50122" 301.166 + id="text2814"><tspan 301.167 + sodipodi:role="line" 301.168 + id="tspan2816" 301.169 + x="162.09892" 301.170 + y="352.50122" 301.171 + style="font-family:Courier"><tspan 301.172 + style="font-weight:bold" 301.173 + id="tspan2864">3</tspan>: ff5d</tspan></text> 301.174 + <rect 301.175 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 301.176 + id="rect2830" 301.177 + width="94.285713" 301.178 + height="20.714285" 301.179 + x="138" 301.180 + y="292.00504" /> 301.181 + <text 301.182 + xml:space="preserve" 301.183 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 301.184 + x="162.09892" 301.185 + y="305.62619" 301.186 + id="text2824"><tspan 301.187 + sodipodi:role="line" 301.188 + id="tspan2826" 301.189 + x="162.09892" 301.190 + y="305.62619" 301.191 + style="font-family:Courier"><tspan 301.192 + style="font-weight:bold" 301.193 + id="tspan2862">4</tspan>: b57f</tspan></text> 301.194 + <path 301.195 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 301.196 + d="M 185.14286,478.50504 L 185.14286,454.34432" 301.197 + id="path2894" 301.198 + inkscape:connector-type="polyline" /> 301.199 + <path 301.200 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 301.201 + d="M 185.14286,431.63004 L 185.14286,407.46932" 301.202 + id="path2896" 301.203 + inkscape:connector-type="polyline" /> 301.204 + <path 301.205 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 301.206 + d="M 185.14286,384.75504 L 185.14286,360.59435" 301.207 + id="path2898" 301.208 + inkscape:connector-type="polyline" /> 301.209 + <path 301.210 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 301.211 + d="M 185.14286,337.88007 L 185.14286,313.71932" 301.212 + id="path2900" 301.213 + inkscape:connector-type="polyline" /> 301.214 + <rect 301.215 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 301.216 + id="rect2863" 301.217 + width="94.285713" 301.218 + height="20.714285" 301.219 + x="91.428574" 301.220 + y="244.71933" /> 301.221 + <text 301.222 + xml:space="preserve" 301.223 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 301.224 + x="116.09886" 301.225 + y="258.80865" 301.226 + id="text1965" 301.227 + transform="scale(1.000002,0.999998)"><tspan 301.228 + sodipodi:role="line" 301.229 + id="tspan1967" 301.230 + x="116.09886" 301.231 + y="258.80865" 301.232 + style="font-family:Courier"><tspan 301.233 + style="font-weight:bold" 301.234 + id="tspan1973">5</tspan>: ae13</tspan></text> 301.235 + <path 301.236 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 301.237 + d="M 173.95727,291.00504 L 149.75702,266.43361" 301.238 + id="path1971" 301.239 + inkscape:connector-type="polyline" 301.240 + inkscape:connection-end="#rect2863" 301.241 + inkscape:connection-start="#rect2830" /> 301.242 + <rect 301.243 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 301.244 + id="rect2911" 301.245 + width="94.285995" 301.246 + height="20.714283" 301.247 + x="186.71414" 301.248 + y="198.6479" /> 301.249 + <text 301.250 + xml:space="preserve" 301.251 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 301.252 + x="210.81311" 301.253 + y="212.26949" 301.254 + id="text2913" 301.255 + transform="scale(1.000002,0.999998)"><tspan 301.256 + sodipodi:role="line" 301.257 + id="tspan2915" 301.258 + x="210.81311" 301.259 + y="212.26949" 301.260 + style="font-family:Courier"><tspan 301.261 + id="tspan1966" 301.262 + style="font-weight:bold">6</tspan>: d2b5</tspan></text> 301.263 + <path 301.264 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 301.265 + d="M 191.06908,291.00504 L 227.93092,220.36218" 301.266 + id="path2919" 301.267 + inkscape:connector-type="polyline" 301.268 + inkscape:connection-start="#rect2830" /> 301.269 + <text 301.270 + xml:space="preserve" 301.271 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 301.272 + x="295.28571" 301.273 + y="211.80988" 301.274 + id="text2871"><tspan 301.275 + sodipodi:role="line" 301.276 + id="tspan2873" 301.277 + x="295.28571" 301.278 + y="211.80988">tip (and head)</tspan></text> 301.279 + <text 301.280 + xml:space="preserve" 301.281 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 301.282 + x="76" 301.283 + y="259.16046" 301.284 + id="text2875"><tspan 301.285 + sodipodi:role="line" 301.286 + id="tspan2877" 301.287 + x="76" 301.288 + y="259.16046" 301.289 + style="text-align:end;text-anchor:end">head</tspan></text> 301.290 + </g> 301.291 +</svg>
302.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 302.2 +++ b/ja/tour-merge-sep-repos.svg Fri Aug 14 12:10:47 2009 -0700 302.3 @@ -0,0 +1,466 @@ 302.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 302.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 302.6 +<svg 302.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 302.8 + xmlns:cc="http://web.resource.org/cc/" 302.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 302.10 + xmlns:svg="http://www.w3.org/2000/svg" 302.11 + xmlns="http://www.w3.org/2000/svg" 302.12 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 302.13 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 302.14 + width="744.09448819" 302.15 + height="1052.3622047" 302.16 + id="svg2" 302.17 + sodipodi:version="0.32" 302.18 + inkscape:version="0.44.1" 302.19 + sodipodi:docname="tour-merge-sep-repos.svg"> 302.20 + <defs 302.21 + id="defs4"> 302.22 + <marker 302.23 + inkscape:stockid="Arrow1Mstart" 302.24 + orient="auto" 302.25 + refY="0.0" 302.26 + refX="0.0" 302.27 + id="Arrow1Mstart" 302.28 + style="overflow:visible"> 302.29 + <path 302.30 + id="path2973" 302.31 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 302.32 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 302.33 + transform="scale(0.4) translate(10,0)" /> 302.34 + </marker> 302.35 + <marker 302.36 + inkscape:stockid="Arrow1Mend" 302.37 + orient="auto" 302.38 + refY="0.0" 302.39 + refX="0.0" 302.40 + id="Arrow1Mend" 302.41 + style="overflow:visible;"> 302.42 + <path 302.43 + id="path3066" 302.44 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 302.45 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 302.46 + transform="scale(0.4) rotate(180) translate(10,0)" /> 302.47 + </marker> 302.48 + </defs> 302.49 + <sodipodi:namedview 302.50 + id="base" 302.51 + pagecolor="#ffffff" 302.52 + bordercolor="#666666" 302.53 + borderopacity="1.0" 302.54 + gridtolerance="10000" 302.55 + guidetolerance="10" 302.56 + objecttolerance="10" 302.57 + inkscape:pageopacity="0.0" 302.58 + inkscape:pageshadow="2" 302.59 + inkscape:zoom="1.4" 302.60 + inkscape:cx="307.20351" 302.61 + inkscape:cy="716.87911" 302.62 + inkscape:document-units="px" 302.63 + inkscape:current-layer="layer1" 302.64 + inkscape:window-width="906" 302.65 + inkscape:window-height="620" 302.66 + inkscape:window-x="5" 302.67 + inkscape:window-y="49" /> 302.68 + <metadata 302.69 + id="metadata7"> 302.70 + <rdf:RDF> 302.71 + <cc:Work 302.72 + rdf:about=""> 302.73 + <dc:format>image/svg+xml</dc:format> 302.74 + <dc:type 302.75 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 302.76 + </cc:Work> 302.77 + </rdf:RDF> 302.78 + </metadata> 302.79 + <g 302.80 + inkscape:label="Layer 1" 302.81 + inkscape:groupmode="layer" 302.82 + id="layer1"> 302.83 + <text 302.84 + xml:space="preserve" 302.85 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.86 + x="173.57143" 302.87 + y="443.79074" 302.88 + id="text2832"><tspan 302.89 + sodipodi:role="line" 302.90 + id="tspan2834" 302.91 + x="173.57143" 302.92 + y="443.79074" /></text> 302.93 + <rect 302.94 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.95 + id="rect1878" 302.96 + width="94.285713" 302.97 + height="20.714285" 302.98 + x="138" 302.99 + y="479.50504" /> 302.100 + <text 302.101 + xml:space="preserve" 302.102 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.103 + x="162.09892" 302.104 + y="493.12619" 302.105 + id="text1872"><tspan 302.106 + sodipodi:role="line" 302.107 + id="tspan1874" 302.108 + x="162.09892" 302.109 + y="493.12619" 302.110 + style="font-family:Courier"><tspan 302.111 + style="font-weight:bold" 302.112 + id="tspan1876">0</tspan>: 0a04</tspan></text> 302.113 + <rect 302.114 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.115 + id="rect2800" 302.116 + width="94.285713" 302.117 + height="20.714285" 302.118 + x="138" 302.119 + y="432.63004" /> 302.120 + <text 302.121 + xml:space="preserve" 302.122 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.123 + x="162.09892" 302.124 + y="446.25119" 302.125 + id="text2794"><tspan 302.126 + sodipodi:role="line" 302.127 + id="tspan2796" 302.128 + x="162.09892" 302.129 + y="446.25119" 302.130 + style="font-family:Courier"><tspan 302.131 + id="tspan2868" 302.132 + style="font-weight:bold">1</tspan>: 82e5</tspan></text> 302.133 + <rect 302.134 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.135 + id="rect2810" 302.136 + width="94.285713" 302.137 + height="20.714285" 302.138 + x="138" 302.139 + y="385.75504" /> 302.140 + <text 302.141 + xml:space="preserve" 302.142 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.143 + x="162.09892" 302.144 + y="399.37619" 302.145 + id="text2804"><tspan 302.146 + sodipodi:role="line" 302.147 + id="tspan2806" 302.148 + x="162.09892" 302.149 + y="399.37619" 302.150 + style="font-family:Courier"><tspan 302.151 + style="font-weight:bold" 302.152 + id="tspan2866">2</tspan>: 057d</tspan></text> 302.153 + <rect 302.154 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.155 + id="rect2820" 302.156 + width="94.285713" 302.157 + height="20.714285" 302.158 + x="138" 302.159 + y="338.88007" /> 302.160 + <text 302.161 + xml:space="preserve" 302.162 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.163 + x="162.09892" 302.164 + y="352.50122" 302.165 + id="text2814"><tspan 302.166 + sodipodi:role="line" 302.167 + id="tspan2816" 302.168 + x="162.09892" 302.169 + y="352.50122" 302.170 + style="font-family:Courier"><tspan 302.171 + style="font-weight:bold" 302.172 + id="tspan2864">3</tspan>: ff5d</tspan></text> 302.173 + <rect 302.174 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.175 + id="rect2830" 302.176 + width="94.285713" 302.177 + height="20.714285" 302.178 + x="138" 302.179 + y="292.00504" /> 302.180 + <text 302.181 + xml:space="preserve" 302.182 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.183 + x="162.09892" 302.184 + y="305.62619" 302.185 + id="text2824"><tspan 302.186 + sodipodi:role="line" 302.187 + id="tspan2826" 302.188 + x="162.09892" 302.189 + y="305.62619" 302.190 + style="font-family:Courier"><tspan 302.191 + style="font-weight:bold" 302.192 + id="tspan2862">4</tspan>: b57f</tspan></text> 302.193 + <path 302.194 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.195 + d="M 185.14286,478.50504 L 185.14286,454.34432" 302.196 + id="path2894" 302.197 + inkscape:connector-type="polyline" /> 302.198 + <path 302.199 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.200 + d="M 185.14286,431.63004 L 185.14286,407.46932" 302.201 + id="path2896" 302.202 + inkscape:connector-type="polyline" /> 302.203 + <path 302.204 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.205 + d="M 185.14286,384.75504 L 185.14286,360.59435" 302.206 + id="path2898" 302.207 + inkscape:connector-type="polyline" /> 302.208 + <path 302.209 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.210 + d="M 185.14286,337.88007 L 185.14286,313.71932" 302.211 + id="path2900" 302.212 + inkscape:connector-type="polyline" /> 302.213 + <rect 302.214 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.215 + id="rect1963" 302.216 + width="94.285995" 302.217 + height="20.714283" 302.218 + x="138" 302.219 + y="245.18723" /> 302.220 + <text 302.221 + xml:space="preserve" 302.222 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.223 + x="162.09877" 302.224 + y="258.80865" 302.225 + id="text1965" 302.226 + transform="scale(1.000002,0.999998)"><tspan 302.227 + sodipodi:role="line" 302.228 + id="tspan1967" 302.229 + x="162.09877" 302.230 + y="258.80865" 302.231 + style="font-family:Courier"><tspan 302.232 + style="font-weight:bold" 302.233 + id="tspan1973">5</tspan>: ae13</tspan></text> 302.234 + <path 302.235 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.236 + d="M 185.143,291.06218 L 185.143,266.90143" 302.237 + id="path1971" 302.238 + inkscape:connector-type="polyline" /> 302.239 + <text 302.240 + xml:space="preserve" 302.241 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 302.242 + x="136.90039" 302.243 + y="232.25546" 302.244 + id="text2921"><tspan 302.245 + sodipodi:role="line" 302.246 + id="tspan2923" 302.247 + x="136.90039" 302.248 + y="232.25546">my-hello</tspan></text> 302.249 + <rect 302.250 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.251 + id="rect2863" 302.252 + width="94.285713" 302.253 + height="20.714285" 302.254 + x="370.71414" 302.255 + y="479.49289" /> 302.256 + <text 302.257 + xml:space="preserve" 302.258 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.259 + x="394.81305" 302.260 + y="493.11404" 302.261 + id="text2865"><tspan 302.262 + sodipodi:role="line" 302.263 + id="tspan2867" 302.264 + x="394.81305" 302.265 + y="493.11404" 302.266 + style="font-family:Courier"><tspan 302.267 + style="font-weight:bold" 302.268 + id="tspan2869">0</tspan>: 0a04</tspan></text> 302.269 + <rect 302.270 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.271 + id="rect2871" 302.272 + width="94.285713" 302.273 + height="20.714285" 302.274 + x="370.71414" 302.275 + y="432.61789" /> 302.276 + <text 302.277 + xml:space="preserve" 302.278 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.279 + x="394.81305" 302.280 + y="446.23904" 302.281 + id="text2873"><tspan 302.282 + sodipodi:role="line" 302.283 + id="tspan2875" 302.284 + x="394.81305" 302.285 + y="446.23904" 302.286 + style="font-family:Courier"><tspan 302.287 + id="tspan2877" 302.288 + style="font-weight:bold">1</tspan>: 82e5</tspan></text> 302.289 + <rect 302.290 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.291 + id="rect2879" 302.292 + width="94.285713" 302.293 + height="20.714285" 302.294 + x="370.71414" 302.295 + y="385.74289" /> 302.296 + <text 302.297 + xml:space="preserve" 302.298 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.299 + x="394.81305" 302.300 + y="399.36404" 302.301 + id="text2881"><tspan 302.302 + sodipodi:role="line" 302.303 + id="tspan2883" 302.304 + x="394.81305" 302.305 + y="399.36404" 302.306 + style="font-family:Courier"><tspan 302.307 + style="font-weight:bold" 302.308 + id="tspan2885">2</tspan>: 057d</tspan></text> 302.309 + <rect 302.310 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.311 + id="rect2887" 302.312 + width="94.285713" 302.313 + height="20.714285" 302.314 + x="370.71414" 302.315 + y="338.86792" /> 302.316 + <text 302.317 + xml:space="preserve" 302.318 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.319 + x="394.81305" 302.320 + y="352.48907" 302.321 + id="text2889"><tspan 302.322 + sodipodi:role="line" 302.323 + id="tspan2891" 302.324 + x="394.81305" 302.325 + y="352.48907" 302.326 + style="font-family:Courier"><tspan 302.327 + style="font-weight:bold" 302.328 + id="tspan2893">3</tspan>: ff5d</tspan></text> 302.329 + <rect 302.330 + style="fill:#a5c3c8;fill-opacity:1;stroke:#6396a0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.331 + id="rect2895" 302.332 + width="94.285713" 302.333 + height="20.714285" 302.334 + x="370.71414" 302.335 + y="291.99289" /> 302.336 + <text 302.337 + xml:space="preserve" 302.338 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.339 + x="394.81305" 302.340 + y="305.61404" 302.341 + id="text2897"><tspan 302.342 + sodipodi:role="line" 302.343 + id="tspan2899" 302.344 + x="394.81305" 302.345 + y="305.61404" 302.346 + style="font-family:Courier"><tspan 302.347 + style="font-weight:bold" 302.348 + id="tspan2901">4</tspan>: b57f</tspan></text> 302.349 + <path 302.350 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.351 + d="M 417.85701,478.4929 L 417.85701,454.33218" 302.352 + id="path2903" 302.353 + inkscape:connector-type="polyline" /> 302.354 + <path 302.355 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.356 + d="M 417.85701,431.6179 L 417.85701,407.45718" 302.357 + id="path2905" 302.358 + inkscape:connector-type="polyline" /> 302.359 + <path 302.360 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.361 + d="M 417.85701,384.7429 L 417.85701,360.58221" 302.362 + id="path2907" 302.363 + inkscape:connector-type="polyline" /> 302.364 + <path 302.365 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.366 + d="M 417.85701,337.86793 L 417.85701,313.70718" 302.367 + id="path2909" 302.368 + inkscape:connector-type="polyline" /> 302.369 + <rect 302.370 + style="fill:#78a5ad;fill-opacity:1;stroke:#507b84;stroke-width:2.00000286;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.371 + id="rect2911" 302.372 + width="94.285995" 302.373 + height="20.714283" 302.374 + x="370.71414" 302.375 + y="245.17511" /> 302.376 + <text 302.377 + xml:space="preserve" 302.378 + style="font-size:12.00001812px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier" 302.379 + x="394.81274" 302.380 + y="258.79678" 302.381 + id="text2913" 302.382 + transform="scale(1.000002,0.999998)"><tspan 302.383 + sodipodi:role="line" 302.384 + id="tspan2915" 302.385 + x="394.81274" 302.386 + y="258.79678" 302.387 + style="font-family:Courier"><tspan 302.388 + style="font-weight:bold" 302.389 + id="tspan2917">5</tspan>: d2b5</tspan></text> 302.390 + <path 302.391 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.00000143px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 302.392 + d="M 417.85715,291.05004 L 417.85715,266.88929" 302.393 + id="path2919" 302.394 + inkscape:connector-type="polyline" /> 302.395 + <text 302.396 + xml:space="preserve" 302.397 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 302.398 + x="369.61453" 302.399 + y="232.25546" 302.400 + id="text2925"><tspan 302.401 + sodipodi:role="line" 302.402 + id="tspan2927" 302.403 + x="369.61453" 302.404 + y="232.25546">my-new-hello</tspan></text> 302.405 + <text 302.406 + xml:space="preserve" 302.407 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 302.408 + x="300.54352" 302.409 + y="252.12723" 302.410 + id="text2933"><tspan 302.411 + sodipodi:role="line" 302.412 + id="tspan2935" 302.413 + x="300.54352" 302.414 + y="252.12723" 302.415 + style="text-align:center;text-anchor:middle">newest changes</tspan><tspan 302.416 + sodipodi:role="line" 302.417 + x="300.54352" 302.418 + y="267.12723" 302.419 + style="text-align:center;text-anchor:middle" 302.420 + id="tspan3132">differ</tspan></text> 302.421 + <text 302.422 + xml:space="preserve" 302.423 + style="font-size:12px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 302.424 + x="262.15436" 302.425 + y="398.37112" 302.426 + id="text2929"><tspan 302.427 + sodipodi:role="line" 302.428 + x="262.15436" 302.429 + y="398.37112" 302.430 + id="tspan3013" 302.431 + style="text-align:start;text-anchor:start">common history</tspan></text> 302.432 + <g 302.433 + id="g3107" 302.434 + transform="translate(0,0.855744)"> 302.435 + <path 302.436 + id="path3101" 302.437 + d="M 300.35713,381.29075 L 300.35713,304.50504" 302.438 + style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" /> 302.439 + <path 302.440 + id="path3105" 302.441 + d="M 291.07142,301.64789 L 309.28571,301.64789" 302.442 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:0.60000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 302.443 + </g> 302.444 + <path 302.445 + style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" 302.446 + d="M 300.53571,486.38926 L 300.53571,409.60355" 302.447 + id="path3113" /> 302.448 + <path 302.449 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:0.60000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 302.450 + d="M 291.25,488.49641 L 309.46429,488.49641" 302.451 + id="path3115" /> 302.452 + <text 302.453 + xml:space="preserve" 302.454 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 302.455 + x="480.71429" 302.456 + y="250.91507" 302.457 + id="text1949"><tspan 302.458 + sodipodi:role="line" 302.459 + id="tspan1951" 302.460 + x="480.71429" 302.461 + y="250.91507" 302.462 + style="text-align:start;text-anchor:start">head revision</tspan><tspan 302.463 + sodipodi:role="line" 302.464 + x="480.71429" 302.465 + y="265.91507" 302.466 + id="tspan1953" 302.467 + style="text-align:start;text-anchor:start">(has no children)</tspan></text> 302.468 + </g> 302.469 +</svg>
303.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 303.2 +++ b/ja/tour-merge.tex Fri Aug 14 12:10:47 2009 -0700 303.3 @@ -0,0 +1,398 @@ 303.4 +\chapter{A tour of Mercurial: merging work} 303.5 +\label{chap:tour-merge} 303.6 + 303.7 +$BA0>O$K$*$$$F$O!"(B 303.8 +$B%j%]%8%H%j$NJ#@=!"(B 303.9 +$B%j%]%8%H%j$G$N%A%'%s%8%;%C%H$N@8@.!"(B 303.10 +$B$J$i$S$K(B \hgcmd{push} $B$*$h$S(B \hgcmd{pull} 303.11 +$B$K$h$k%j%]%8%H%j4V$G$N%A%'%s%8%;%C%H$N<x<u$r8+$F$-$^$7$?!#(B 303.12 +$B<!$NCJ3,$H$7$F!"JL!9$N%j%]%8%H%j$K$*$1$kJQ99$N(B\emph{$B%^!<%8(B} 303.13 +$B!J(Bmerge$B!K$K$D$$$F8+$F$_$^$7$g$&!#(B 303.14 + 303.15 +\section{Merging streams of work} 303.16 + 303.17 +$BJ,;69=@.4IM}%D!<%k$K$*$$$F!"%^!<%8$O:n6H$N4pK\$G$9!#(B 303.18 + 303.19 +\begin{itemize} 303.20 +\item Alice $B$H(B Bob $B$,!"(B 303.21 + $B6&F1:n6H$7$F$$$k%W%m%8%'%/%H$N%j%]%8%H%j$+$iJ#@=$7$?!"(B 303.22 + $B8D?ME*$J%j%]%8%H%j$r;}$C$F$$$k$b$N$H$7$^$9!#(B 303.23 + Alice $B$O<+J,$N%j%]%8%H%j$K$*$$$F%P%0$r=$@5$7$^$7$?!#(B 303.24 + Bob $B$O<+J,$N%j%]%8%H%j$K$*$$$F5!G=$rDI2C$7$^$7$?!#(B 303.25 + $BFs?M$O!"(B 303.26 + $B%P%0%U%#%C%/%9$H?75!G=$NN>J}$r4^$`%j%]%8%H%j$r6&M-$7$?$$$H;W$&$G$7$g$&!#(B 303.27 + 303.28 +\item $BI.<T$O!"(B 303.29 + $B8DJL$N%j%]%8%H%j$K$h$C$F!"(B 303.30 + $B$*8_$$$,0BA4$K3VN%$5$l$?J#?t$N0[$J$k:n6H$r!"(B 303.31 + $BF10l%W%m%8%'%/%H$K$*$$$FF1;~$K<B;\$9$k$3$H$,IQHK$K$"$j$^$9!#(B 303.32 + $B$3$N7A<0$G$N:n6H$G$O!"(B 303.33 + $B$"$k%j%]%8%H%j$K$*$1$k@.2L$r!"(B 303.34 + $BB>$N%j%]%8%H%j$KBP$7$FIQHK$K%^!<%8$9$kI,MW$,$"$j$^$9!#(B 303.35 + 303.36 +\end{itemize} 303.37 + 303.38 +$B%^!<%8$OI,MW$K1~$8$F<B;\$9$k$"$j$U$l$?:n6H$G$9$N$G!"(B 303.39 +Mercurial $B$G$O4JC1$K9T$($k$h$&$K$J$C$F$$$^$9!#(B 303.40 +$B$=$l$G$O!"%^!<%8<j=g$r8+$F9T$-$^$7$g$&!#(B 303.41 +$B$b$&0lEY%j%]%8%H%j$NJ#@=$r9T$$!J$b$&2?EY$bJ#@=$7$^$7$?$h$M!)!K!"(B 303.42 +$B$=$N%j%]%8%H%j$K$*$$$FJQ99$r9T$$$^$9!#(B 303.43 + 303.44 +\interaction{tour.merge.clone} 303.45 + 303.46 +$B$3$N;~E@$G!"(B 303.47 +$BFbMF$N0[$J$k#2$D$N(B \filename{hello.c} $B$N%3%T!<$,B8:_$9$k$O$:$G$9!#(B 303.48 +$B#2$D$N%j%]%8%H%j$NMzNr$O!"(B 303.49 +$B?^(B~\ref{fig:tour-merge:sep-repos} $B$K<($9$h$&$K!"(B 303.50 +$B;^J,$+$l$7$F$$$^$9!#(B 303.51 + 303.52 +\interaction{tour.merge.cat} 303.53 + 303.54 +\begin{figure}[ht] 303.55 + \centering 303.56 + \grafix{tour-merge-sep-repos} 303.57 + \caption{Divergent recent histories of the \dirname{my-hello} and 303.58 + \dirname{my-new-hello} repositories} 303.59 + \label{fig:tour-merge:sep-repos} 303.60 +\end{figure} 303.61 + 303.62 +\hgcmd{pull} $B$r9T$C$F$b!"(B 303.63 +$B:n6HNN0h%G%#%l%/%H%j$K$O1F6A$r5Z$\$5$J$$$3$H$O4{$K@bL@$7$?$H$*$j$G$9$N$G!"(B 303.64 +\dirname{my-hello} $B$+$i(B \hgcmd{pull} $B$7$F$_$^$7$g$&!#(B 303.65 + 303.66 +\interaction{tour.merge.pull} 303.67 + 303.68 +$B:n6HNN0h%G%#%l%/%H%j$K$O1F6A$r5Z$\$7$F$$$^$;$s$,!"(B 303.69 +\hgcmd{pull} $B%3%^%s%I$O(B ``heads'' $B$K$D$$$F2?$+7Y9p$7$F$$$^$9!#(B 303.70 + 303.71 +\subsection{Head changesets} 303.72 + 303.73 +``head'' $B$H$O!"(B 303.74 +$B%j%]%8%H%jCf$K$*$$$F!"(B 303.75 +$B;RB9!J$J$$$7;R6!!K$H$J$k%A%'%s%8%;%C%H$,B8:_$7$J$$%A%'%s%8%;%C%H$N$3$H$G$9!#(B 303.76 +$B%j%]%8%H%j$K$*$1$k:G$b:G?7$N%j%S%8%g%s$O!"(B 303.77 +$B0l@Z$N;R%A%'%s%8%;%C%H$r;}$A$^$;$s$+$i!"(B 303.78 +$B=>$C$F(B tip $B%j%S%8%g%s$O(B head $B$H$J$j$^$9$,!"(B 303.79 +$B#1$D$N%j%]%8%H%j$K$OJ#?t$N(B head $B$,B8:_$7$($^$9!#(B 303.80 + 303.81 +\begin{figure}[ht] 303.82 + \centering 303.83 + \grafix{tour-merge-pull} 303.84 + \caption{Repository contents after pulling from \dirname{my-hello} into 303.85 + \dirname{my-new-hello}} 303.86 + \label{fig:tour-merge:pull} 303.87 +\end{figure} 303.88 + 303.89 +\dirname{my-hello} $B$+$i(B \dirname{my-new-hello} $B$X$N(B 303.90 +\hgcmd{pull} $B$K$h$k1F6A$r!"(B 303.91 +$B?^(B~\ref{fig:tour-merge:pull} $B$G8+$k$3$H$,$G$-$^$9!#(B 303.92 +$B4{$K(B \dirname{my-new-hello} $B$KB8:_$7$F$$$?MzNr$K$O<j$,IU$1$i$l$F$$$^$;$s$,!"(B 303.93 +$B?7$7$$%j%S%8%g%s$,DI2C$5$l$F$$$^$9!#(B 303.94 +$B?^(B~\ref{fig:tour-merge:pull} $B$+$i$O!"(B 303.95 +$B?7$7$$%j%]%8%H%j!J(B\dirname{my-new-hello}$B!K$K$*$$$F!"(B 303.96 +\emph{$B%A%'%s%8%;%C%H<1JL;R(B}$B$OF1$8$^$^$G$b!"(B 303.97 +\emph{$B%j%S%8%g%sHV9f(B}$B$,0[$J$kMM$,FI$_<h$l$^$9(B 303.98 +$B!J$=$7$F!"?^$i$:$b!"%A%'%s%8%;%C%H$K$D$$$FOC$r$9$k:]$K!"(B 303.99 +$B%j%S%8%g%sHV9f$r;HMQ$9$k$N$,NI$/$J$$!"$H$$$&9%Nc$K$J$C$F$$$^$9!K!#(B 303.100 +\hgcmd{heads} $B%3%^%s%I$K$h$j!"(B 303.101 +$B%j%]%8%H%j$N(B head $B$r8+$k$3$H$,$G$-$^$9!#(B 303.102 + 303.103 +\interaction{tour.merge.heads} 303.104 + 303.105 +\subsection{Performing the merge} 303.106 + 303.107 +$B:n6HNN0h%G%#%l%/%H%j$r!"(B 303.108 +$B!J(B\dirname{my-hello} $B$+$i<h$j9~$s$@!K?7$?$J(B tip $B%j%S%8%g%s$K99?7$9$k$?$a$K!"(B 303.109 +$B$$$D$b$N$h$&$K(B \hgcmd{update} $B%3%^%s%I$r<B9T$9$k$H!"(B 303.110 +$B$I$&$J$k$G$7$g$&!)(B 303.111 + 303.112 +\interaction{tour.merge.update} 303.113 + 303.114 +Mercurial $B$+$i!"(B 303.115 +\hgcmd{update} $B%3%^%s%I$G$O%^!<%8$,9T$o$l$J$$;]$,DLC#$5$l$^$9!#(B 303.116 +$B%^!<%8$N<B;\$,I,MW$H;W$o$l$k>l9g!"(B 303.117 +$B6/@)E*$J<B9T$r$7$J$$8B$j$O(B 303.118 +\hgcmd{update} $B%3%^%s%I$K$h$k:n6HNN0h%G%#%l%/%H%j$N99?7$O9T$o$l$^$;$s!#(B 303.119 +\hgcmd{update} $B%3%^%s%I$NBe$o$j$K!"(B 303.120 +\hgcmd{merge} $B%3%^%s%I$rMQ$$$F#2$D$N(B head $B$r%^!<%8$7$^$9!#(B 303.121 + 303.122 +\interaction{tour.merge.merge} 303.123 + 303.124 +\begin{figure}[ht] 303.125 + \centering 303.126 + \grafix{tour-merge-merge} 303.127 + \caption{Working directory and repository during merge, and 303.128 + following commit} 303.129 + \label{fig:tour-merge:merge} 303.130 +\end{figure} 303.131 + 303.132 +\hgcmd{merge} $B%3%^%s%I$K$h$C$F!"(B 303.133 +\hgcmd{parents} $B%3%^%s%I$N=PNO!"(B 303.134 +$B$*$h$S(B \filename{hello.c} $B$NFbMF$NJQ99$H$$$&7A$G!"(B 303.135 +\emph{$BN>J}(B}$B$N(B head $B$NJQ99FbMF$,:n6HNN0h%G%#%l%/%H%j$KH?1G$5$l$^$9!#(B 303.136 + 303.137 +\interaction{tour.merge.parents} 303.138 + 303.139 +\subsection{Committing the results of the merge} 303.140 + 303.141 +$B7k2L$r(B \hgcmd{commit} $B$9$k$^$G$O!"(B 303.142 +\hgcmd{parents} $B$O%^!<%8$N:]$K$O>o$K#2$D$N?F!J%A%'%s%8%;%C%H!K$rI=<($7$^$9!#(B 303.143 + 303.144 +\interaction{tour.merge.commit} 303.145 + 303.146 +$B$3$l$G!"?7$7$$(B tip $B%j%S%8%g%s$,:n@.$5$l$^$7$?!#(B 303.147 +$B@h=R$7$?#2$D$N(B head $B$N(B\emph{$BN>J}(B}$B$r?F$K;}$DE@$KCm0U$7$F$/$@$5$$!#(B 303.148 +$B$3$l$i$O!"@h$K(B \hgcmd{parents} $B$GI=<($7$?%j%S%8%g%s$H0lCW$7$^$9!#(B 303.149 + 303.150 +\interaction{tour.merge.tip} 303.151 + 303.152 +$B:n6HNN0h%G%#%l%/%H%j$,%^!<%8$N:]$K$I$N$h$&$K$J$C$F$$$k$N$+!"(B 303.153 +$B$=$7$F%3%_%C%H$K$h$C$F$I$N$h$&$K%j%]%8%H%j$K:nMQ$9$k$N$+$r!"(B 303.154 +$B?^(B~\ref{fig:tour-merge:merge} $B$+$iFI$_<h$k$3$H$,$G$-$^$9!#(B 303.155 +$B%^!<%8$N:]$K:n6HNN0h%G%#%l%/%H%j$N?F$G$"$C$?#2$D$N%A%'%s%8%;%C%H$O!"(B 303.156 +$B%3%_%C%H$N:]$K$O?7$?$J%A%'%s%8%;%C%H$K$H$C$F$N?F%A%'%s%8%;%C%H$H$J$j$^$9!#(B 303.157 + 303.158 +\section{Merging conflicting changes} 303.159 + 303.160 +$BKX$I$N%^!<%8:n6H$O4JC1$K:Q$_$^$9$,!"(B 303.161 +$B;~$K$O%^!<%8BP>]$N%A%'%s%8%;%C%HF1;N$,!"(B 303.162 +$BF1$8%U%!%$%k$NF1$8It0L$rJQ99$7$F$$$k>l9g$,$"$j$^$9!#(B 303.163 +$BN><T$NJQ99FbMF$,F10l$GL5$1$l$P!"(B 303.164 +$B%^!<%8$O(B\emph{$B>WFM(B}$B!J(Bconflict$B!K$r@8$8$k$?$a!"(B 303.165 +$BN><T$N0[$J$kJQ99FbMF$rN>N)$5$;$F(B 303.166 +$B2?$i$+$N0l4S@-$N<h$l$?>uBV$K$9$k$?$a$N7hCG$,I,MW$G$9!#(B 303.167 + 303.168 +\begin{figure}[ht] 303.169 + \centering 303.170 + \grafix{tour-merge-conflict} 303.171 + \caption{Conflicting changes to a document} 303.172 + \label{fig:tour-merge:conflict} 303.173 +\end{figure} 303.174 + 303.175 +$BJ8=q$KBP$9$k#2$D$NJQ99$N>WFM$NNc$r!"(B 303.176 +$B?^(B~\ref{fig:tour-merge:conflict} $B$,?^<($7$F$$$^$9!#(B 303.177 +$BN><T$O%U%!%$%k$NF1$8HG$r85$K$7$F$$$^$9$,!"(B 303.178 +$B0lJ}$,JQ99$r9T$&K5$i!"(B 303.179 +$BB>J}$,F1$8CJMn$KBP$7$F0[$J$kJQ99$r$7$F$7$^$$$^$9!#(B 303.180 +$BJQ99$N>WFM$r2r>C$9$k:n6H$H$O!"(B 303.181 +$B$=$N%U%!%$%k$,$I$N$h$&$K$J$C$F$$$k$Y$-$+$r7hDj$9$k$3$H$KB>$J$j$^$;$s!#(B 303.182 + 303.183 +Mercurial $B$K$O>WFM$r07$&5!G=$,AH$_9~$^$l$F$$$^$;$s!#(B 303.184 +$B$=$NBe$o$j$K!"(B 303.185 +\command{hgmerge} $B$H8F$P$l$k30It%W%m%0%i%`$r<B9T$7$^$9!#(B 303.186 +$B$3$N%W%m%0%i%`$O!"(B 303.187 +Mercurial $B$KE:IU$5$l$k%7%'%k%9%/%j%W%H(B\footnote{$BLuCm(B: 303.188 +\command{/bin/sh} $B8~$1$@$+$i!"$H$$$&$3$H$J$N$G$7$g$&$,!"(B 303.189 +Windows $B$N%P%$%J%jHG$K$OE:IU$5$l$F$$$^$;$s!#(B}$B$G$9$,!"(B 303.190 +$BJL$J%W%m%0%i%`$r5/F0$5$;$k$3$H$b$G$-$^$9!#(B 303.191 +\command{hgmerge} $B$N4pDlF0:n$G$O!"(B 303.192 +$B4v$D$+$NCxL>$J%^!<%8%D!<%k$N$&$A!"(B 303.193 +$B2TF/4D6-$K$*$$$F%$%s%9%H!<%k$5$l$F$$$k$H;W$o$l$k$b$N$rC5$7$^$9!#(B 303.194 +$B$^$:;O$a$K!"(B 303.195 +$BHsBPOCE*%^!<%8%D!<%k(B\footnote{$BLuCm(B: 303.196 +\command{diff3} $B$d(B \command{merge} $B$J$I(B}$B$r<B9T$7$F$_$^$9$,!"(B 303.197 +$B!J?M<j$K$h$C$F2r7h$9$kI,MW@-$,$"$k$?$a$K!K$=$l$,<:GT$7$?>l9g$d!"(B 303.198 +$B$=$b$=$b$=$l$i$N%D!<%k$,Ds6!$5$l$F$$$J$$>l9g!"(B 303.199 +$BB>$N%0%i%U%#%+%k$J%^!<%8%D!<%k$N5/F0$r;n$_$^$9(B 303.200 +\footnote{$BLuCm(B: $BNc$($P!"(B 303.201 +\command{diff3} $B$K$h$k%^!<%8$r9T$$!"(B 303.202 +$B>WFM$,8!=P$5$l$?>l9g$O$=$N%U%!%$%k$4$H$K!"(B 303.203 +\envar{EDITOR} $B4D6-JQ?t$GDj5A$5$l$k%(%G%#%?!J$J$$$7(B \command{vi}$B!K(B 303.204 +$B$r5/F0$7$F!"(B 303.205 +$B$=$l$>$l$N%A%'%s%8%;%C%H$KM3Mh$9$kJQ99$N4V$G$ND4Dd$rMW5a$7$F$-$^$9!#(B 303.206 +}$B!#(B 303.207 + 303.208 +\envar{HGMERGE} 303.209 +$B4D6-JQ?t$K5/F0BP>]%W%m%0%i%`$J$$$7%9%/%j%W%HL>$r@_Dj$9$k$3$H$G!"(B 303.210 +Mercurial $B$K(B \command{hgmerge} $B0J30$r5/F0$5$;$k;v$b$G$-$^$9(B 303.211 + 303.212 +\subsection{Using a graphical merge tool} 303.213 + 303.214 +$BCx<T$N$*A&$a$N%0%i%U%#%+%k$J%^!<%8%D!<%k$O(B \command{kdiff3} $B$J$N$G!"(B 303.215 +$B%0%i%U%#%+%k$J%U%!%$%k%^!<%8%D!<%k$K5a$a$i$l$k5!G=$K$D$$$F!"(B 303.216 +$B$3$l$rBj:`$K@bL@$7$h$&$H;W$$$^$9!#(B 303.217 +$B:n6HCf$N2hLL%$%a!<%8$,?^(B~\ref{fig:tour-merge:kdiff3}$B$K$"$j$^$9!#(B 303.218 +$BCeL\$7$F$$$k#1$D$N%U%!%$%k$KBP$7$F!"(B 303.219 +$B#3$D$N0[$J$k%j%S%8%g%s$,B8:_$9$k$3$H$+$i!"(B 303.220 +$B%^!<%8J}K!$O(B\emph{$B#3J}8~%^!<%8(B}$B!J(Bthree-way merge$B!K$H8F$P$l$F$$$^$9!#(B 303.221 +$B$=$l$f$(!"%^!<%8%D!<%k$O%&%#%s%I%&>eIt$r#3$D$N6h2h$KJ,3d$7$F$$$^$9!#(B 303.222 + 303.223 +\begin{itemize} 303.224 +\item $B:8C<$KI=<($5$l$F$$$k$N$O!"(B 303.225 + $B%U%!%$%k$N(B\emph{$B85(B}$B!J(Bbase$B!K$NHG!"(B 303.226 + $B$D$^$j%^!<%8BP>]$H$7$F$$$k#2$D$NHG$K$H$C$F!"(B 303.227 + $B:G$b?7$7$$J,4t85$H$J$C$F$$$kHG$G$9!#(B 303.228 + 303.229 +\item $BCf1{$KI=<($5$l$F$$$k$N$O!"(B 303.230 + $B%^!<%8(B``$B@h(B''$B$NHG(B\footnote{$BLuCm(B: $B86J8$G$O!V(B``our'' version$B!W(B}$B$G$9$N$G!"(B 303.231 + $B:n6HNN0h%G%#%l%/%H%j$K$*$1$kJQ99FbMF$,I=<($5$l$^$9!#(B 303.232 + 303.233 +\item $B1&C<$KI=<($5$l$F$$$k$N$O!"(B 303.234 + $B%^!<%8(B``$B85(B''\footnote{$BLuCm(B: $B86J8$G$O!V(B``their'' version$B!W(B}$B$G$9$N$G!"(B 303.235 + $B%^!<%8$7$h$&$H$7$F$$$k%A%'%s%8%;%C%H$KM3Mh$9$kFbMF$,I=<($5$l$^$9!#(B 303.236 + 303.237 +\end{itemize} 303.238 + 303.239 +$B$3$l$i$N6h2h$N2<J}$KI=<($5$l$F$$$k$N$O!"(B 303.240 +$B8=;~E@$G$N%^!<%8(B\emph{$B7k2L(B}$B$G$9!#(B 303.241 +$B%^!<%8$K$*$1$k:n6H$H$O!"(B 303.242 +$B2hLL>e$K@V;z$GI=<($5$l$?(B\footnote{$BLuCm(B: 303.243 +\command{diff3} $B$,9TC10L$G$N>WFMI=<($G$"$k$N$KHf$Y$F!"(B 303.244 +GUI $B$G$"$kMxE@$,@8$-$F$$$^$9!#(B}$B!"(B 303.245 +$B?5=E$J%U%!%$%k$N%^!<%8$,I,MW$H$5$l$kL$2r7h$N>WFM$r!"(B 303.246 +$BBEEv$JFbMF$GCV$-49$($k$3$H$G$9!#(B 303.247 + 303.248 +$B$3$l$i#4$D$N6h2h$O(B\emph{$B8_$$$K8GDj(B}$B$5$l$F$$$k$N$G!"(B 303.249 +$B$$$:$l$+$N6h2h$r%9%/%m!<%k$5$;$?>l9g$K$O!"(B 303.250 +$BB>$N6h2h$bAj1~$N>l=j$rI=<($9$k$h$&$K99?7$5$l$^$9!#(B 303.251 + 303.252 +\begin{figure}[ht] 303.253 + \centering 303.254 + \grafixL{kdiff3} 303.255 + \label{fig:tour-merge:kdiff3} 303.256 + \caption{Using \command{kdiff3} to merge versions of a file} 303.257 +\end{figure} 303.258 + 303.259 +$B%U%!%$%kCf$N8D!9$N>WFM2U=j$K$*$$$F!"(B 303.260 +$B>WFM$r2r>C$9$k$?$a$K!"(B 303.261 +$B85HG!?%^!<%8@hHG!?%^!<%885HG$N%F%-%9%H$r(B 303.262 +$B!J$=$l$i$NAH$_9g$o$;$b4^$a$F!KG$0U$KA*Br$9$k$3$H$,$G$-$^$9!#(B 303.263 +$B$^$?!"99$J$kJQ99$r9T$&$?$a$K!"(B 303.264 +$B%^!<%87k2L$rD>@\<j$GF~NO$9$k$3$H$b$G$-$^$9!#(B 303.265 + 303.266 +$B$3$3$G>R2p$7@Z$l$J$$$[$I(B\emph{$BB?$/$N(B}$B%U%!%$%k%^!<%8%D!<%k$,B8:_$7$^$9!#(B 303.267 +$B$3$l$i$O$=$l$>$l!"2TF02DG=%W%i%C%H%[!<%`$d!"(B 303.268 +$BFCD'E*$JF@<jITF@<j$J$I$NE@$G0[$J$j$^$9!#(B 303.269 +$BKX$I$N%D!<%k$O%F%-%9%H%U%!%$%k$N%^!<%8$KFC2=$7$F$$$^$9$,!"(B 303.270 +$BCf$K$OFCDj$N%U%!%$%k%U%)!<%^%C%H!J0lHL$K$O(B XML$B!K(B 303.271 +$B$KFC2=$7$?$b$N$b$"$j$^$9!#(B 303.272 + 303.273 +\subsection{A worked example} 303.274 + 303.275 +$BK\@a$G$NNc$G$O!"(B 303.276 +$BA0=R$N?^(B~\ref{fig:tour-merge:conflict} 303.277 +$B$K$*$1$k%U%!%$%k99?7$NMzNr$r:F8=$7$^$9!#(B 303.278 +$B85$H$J$kHG$N%U%!%$%k$r3JG<$7$?%j%]%8%H%j$r:n@.$9$k$3$H$+$i;O$a$^$7$g$&(B 303.279 +\footnote{$BLuCm(B: $B<B9TNc$G$O!"(B 303.280 +$B?75,$N%j%]%8%H%j$G$"$k(B \dirname{scam} $B$N(B \hgcmd{init} $B$,H4$1$F$$$^$9!#(B}$B!#(B 303.281 + 303.282 +\interaction{tour-merge-conflict.wife} 303.283 + 303.284 +$B<!$K!"%j%]%8%H%j$rJ#@=$7!"%U%!%$%k$rJQ99$7$^$9!#(B 303.285 + 303.286 +\interaction{tour-merge-conflict.cousin} 303.287 + 303.288 +$B$b$&0l$D%j%]%8%H%j$rJ#@=$7!"(B 303.289 +$BB>$NMxMQ<T$K$h$k%U%!%$%k$X$NJQ99$rLO5<E*$K:F8=$7$^$9(B 303.290 +$B!J$3$NLO5<E*$J<B9T$O!"(B 303.291 +$B%?%9%/$4$H$K3VN%$7$?%j%]%8%H%j$N4V$G$N%^!<%8$I$3$m$+!"(B 303.292 +$B$=$l$i$N%^!<%8$N:]$N>WFM$r2r>C$9$k$3$H$G$9$i!"(B 303.293 +$B7h$7$FDA$7$$$3$H$G$O$J$$!"(B 303.294 +$B$H$$$&$3$H$r0E<($7$F$$$^$9!K!#(B 303.295 + 303.296 +\interaction{tour-merge-conflict.son} 303.297 + 303.298 +$BF10l%U%!%$%k$K#2$D$N0[$J$kHG$,$G$-$?$N$G!"(B 303.299 +$B%^!<%8<B;\$N4D6-$,@0$$$^$7$?!#(B 303.300 + 303.301 +\interaction{tour-merge-conflict.pull} 303.302 + 303.303 +$B%^!<%8$K$*$1$kBPOCE*$J=hM}$NItJ,$,!"(B 303.304 +$BK\=q$K$*$1$k<B9TNc$N<+F0<B9T5!9=(B~ref{sec:automated-example-running 303.305 +}$B$rB;$M$k$?$a!"(B 303.306 +$B$3$NNc$G$O(B Mercurial $B$N(B \command{hgmerge} $B$r;HMQ$7$^$;$s!#(B 303.307 +$B$=$NBe$o$j$K!"(B 303.308 +\envar{HGMERGE} $B$r@_Dj$9$k$3$H$G!"(B 303.309 +Mercurial $B$KHsBPOCE*$J(B \command{merge} $B%3%^%s%I$r<B9T$5$;$^$9!#(B 303.310 +$B$3$N%3%^%s%I$OB?$/$N(B Unix $BE*$J%7%9%F%`$KF1:-$5$l$F$$$^$9!#(B 303.311 +$B0J2<$NNc$r<B:]$K;n$9:]$K$O!"(B 303.312 +\envar{HGMERGE} $B$r$o$6$o$6@_Dj$9$kI,MW$O$"$j$^$;$s!#(B 303.313 + 303.314 +\interaction{tour-merge-conflict.merge} 303.315 + 303.316 +\command{merge} $B%3%^%s%I$O>WFM$r2r>C$;$:$K!"(B 303.317 +$B$I$N9T$K$*$1$kJQ99$,>WFM$7$F$$$F!"(B 303.318 +$B$=$NJQ99$,$I$N%A%'%s%8%;%C%H$KM3Mh$9$k$N$+$r<($9(B\emph{$B%^!<%8%^!<%/(B}$B$r!"(B 303.319 +$B>WFM$,8!=P$5$l$?%U%!%$%k$K=q$-9~$_$^$9!#(B 303.320 + 303.321 +Mercurial $B$O!"(B 303.322 +\command{merge} $B$N=*N;%3!<%I$,%^!<%8=hM}(B\footnote{$BLuCm(B: 303.323 +$B$h$j@53N$K$O!V%^!<%8$K$*$1$k>WFM$N2r>C!W(B}$B<:GT$r<($9>l9g!"(B 303.324 +$B%^!<%8=hM}$r:F<B9T$9$k<j=g$rI=<($7$^$9!#(B 303.325 +$B$3$3$GDs<($5$l$k<j=g$O!"(B 303.326 +$B%^!<%8:n6H$NESCf$G:.Mp$7$F$7$^$C$?$j!"(B 303.327 +$B4V0c$C$F$7$^$C$?$3$H$K5$IU$$$F!"(B 303.328 +$B%0%i%U%#%+%k$J%^!<%8%D!<%k$rCfES=*N;$5$;$?>l9g$J$I$KLrN)$A$^$9!#(B 303.329 + 303.330 +$B<+F0$J$$$7<jF0$N%^!<%8$,<:GT$7$?>l9g$G$"$C$F$b!"(B 303.331 +$B4XO"$NM-$k%U%!%$%k$rD>@\(B``$B=$@5(B''$B$7$?>e$G!"(B 303.332 +$B%^!<%87k2L$r%3%_%C%H$9$k$3$H$b2DG=$G$9!#(B 303.333 + 303.334 +\interaction{tour-merge-conflict.commit} 303.335 + 303.336 +\section{Simplifying the pull-merge-commit sequence} 303.337 +\label{sec:tour-merge:fetch} 303.338 + 303.339 +$B$3$3$^$G$K=R$Y$F$-$?JQ99%^!<%8$N<j=g$OC1=c$J$b$N$G$9$,!"(B 303.340 +$B#3$D$N%3%^%s%I$r=g$K<B9T$9$kI,MW$,$"$j$^$9!#(B 303.341 + 303.342 +\begin{codesample2} 303.343 + hg pull 303.344 + hg merge 303.345 + hg commit -m 'Merged remote changes' 303.346 +\end{codesample2} 303.347 + 303.348 +$B:G8e$N%3%_%C%H$N:]$K$O!"(B 303.349 +$BDL>o$OLLGr$/$bL5$$(B``$B7h$^$j$-$C$?(B''$BFbMF$K$J$i$6$k$rF@$^$;$s$,!"(B 303.350 +$B%3%_%C%H%a%C%;!<%8$rF~NO$9$kI,MW$,$"$j$^$9!#(B 303.351 + 303.352 +$B2DG=$G$"$l$P!"I,MW$H$5$l$k<j=g$rDc8:$5$;$?$$$b$N$G$9!#(B 303.353 +$B<B:]$K(B Mercurial $B$O!"$3$l$r2DG=$H$9$k(B \hgext{fetch} 303.354 +$B$H8F$P$l$k%$%/%9%F%s%7%g%s$,F1:-$5$l$F$$$^$9!#(B 303.355 + 303.356 +Mercurial $B$O!"(B 303.357 +$B<h$j07$$$NMxJX@->e$+$iCf3K5!G=$r>.$5$/4J7i$KJ]$D0lJ}$G!"(B 303.358 +$B5!G=DI2C$r2DG=$K$9$k$?$a$N=@Fp$J3HD%!J%$%/%9%F%s%7%g%s!K5!9=$rDs6!$7$F$$$^$9!#(B 303.359 +$B%3%^%s%I%i%$%s$+$iMxMQ$G$-$k(B 303.360 +Mercurial $B%3%^%s%I$rDI2C$9$k%$%/%9%F%s%7%g%s$b$"$l$P!"(B 303.361 +$BNc$($P%5!<%P5!G=$r3HD%$9$k$h$&$J!"(B 303.362 +``$BIqBfN"(B''$B$G5!G=$9$k%$%/%9%F%s%7%g%s$b$"$j$^$9!#(B 303.363 + 303.364 +\hgext{fetch} $B%$%/%9%F%s%7%g%s$O!"(B 303.365 +$BM=A[$7$?$3$H$H$O;W$$$^$9$,!"(B 303.366 +\hgcmd{fetch} $B$H8F$P$l$k?7$7$$%3%^%s%I$rDI2C$7$^$9!#(B 303.367 +\hgcmd{fetch} $B%3%^%s%I$O!"(B 303.368 +\hgcmd{pull}$B!?(B\hgcmd{update}$B!?(B\hgcmd{merge}$B!?(B\hgcmd{commit} 303.369 +$B$NAH$_9g$o$;$N$h$&$K?6Iq$$$^$9!#(B 303.370 +$B$^$:$OB>$N%j%]%8%H%j$+$i:n6HCf$N%j%]%8%H%j$XJQ99$r<h$j9~$_$^$9!#(B 303.371 +$B<h$j9~$s$@%A%'%s%8%;%C%H$K$h$k?7$?$J(B head $B$NDI2C$,8!CN(B\footnote{$BLuCm(B: 303.372 +$BB>$N%j%]%8%H%j$+$i$N<h$j9~$_$K$h$j!"(B 303.373 +$B#3$D0J>e$N(B head $B$,%j%]%8%H%j$KB8:_$9$k$h$&$K$J$C$?>l9g$O!"(B 303.374 +$B%^!<%8BP>]$NFCDj$,$G$-$J$$$?$a!"(B 303.375 +$B<h$j9~$_$N$_$G=hM}$rCfCG$7$^$9!#(B}$B$5$l$?>l9g!"(B 303.376 +$B%^!<%8$r3+;O$7!"(B 303.377 +$B<+F0E*$K@8@.$5$l$?%3%_%C%H%a%C%;!<%8$r;H$C$F%3%_%C%H$r9T$$$^$9!#(B 303.378 +$B?7$?$J(B head $B$NDI2C$,L5$+$C$?>l9g!"(B 303.379 +\hgcmd{fetch} $B%3%^%s%I$O:n6HNN0h%G%#%l%/%H%j$r(B 303.380 +tip $B%j%S%8%g%s$G99?7$7$^$9!#(B 303.381 + 303.382 +\hgext{fetch} $B%$%/%9%F%s%7%g%s$O4JC1$KM-8z2=$G$-$^$9!#(B 303.383 +\sfilename{.hgrc} $B%U%!%$%k$rJT=8$7!"(B 303.384 +\rcsection{extensions} $B%;%/%7%g%s(B 303.385 +$B!JL5$$>l9g$O:n@.$7$F$/$@$5$$!K$K0\F0$7!"(B 303.386 +``\Verb+fetch +'' $B$G;O$^$k9T$rDI2C$7$^$9!#(B 303.387 + 303.388 +\begin{codesample2} 303.389 + [extensions] 303.390 + fetch = 303.391 +\end{codesample2} 303.392 + 303.393 +$B!JDL>o$O!"(B 303.394 +``\texttt{=}'' $B$N1&JU$K%$%/%9%F%s%7%g%s$N0LCV$r;XDj$7$^$9$,!"(B 303.395 +\hgext{fetch} $B%$%/%9%F%s%7%g%s$OI8=`$NG[I[J*$KF1:-$5$l$F$$$k$N$G!"(B 303.396 +Mercurial $B$O(B \hgext{fetch} $B$rC5$7=P$9$3$H$,$G$-$^$9!K(B 303.397 + 303.398 +%%% Local Variables: 303.399 +%%% mode: latex 303.400 +%%% TeX-master: "00book" 303.401 +%%% End:
304.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 304.2 +++ b/ja/undo-manual-merge.dot Fri Aug 14 12:10:47 2009 -0700 304.3 @@ -0,0 +1,8 @@ 304.4 +digraph undo_manual { 304.5 + "first change" -> "second change"; 304.6 + "second change" -> "third change"; 304.7 + backout [label="back out\nsecond change", shape=box]; 304.8 + "second change" -> backout; 304.9 + "third change" -> "manual\nmerge"; 304.10 + backout -> "manual\nmerge"; 304.11 +}
305.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 305.2 +++ b/ja/undo-manual.dot Fri Aug 14 12:10:47 2009 -0700 305.3 @@ -0,0 +1,6 @@ 305.4 +digraph undo_manual { 305.5 + "first change" -> "second change"; 305.6 + "second change" -> "third change"; 305.7 + backout [label="back out\nsecond change", shape=box]; 305.8 + "second change" -> backout; 305.9 +}
306.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 306.2 +++ b/ja/undo-non-tip.dot Fri Aug 14 12:10:47 2009 -0700 306.3 @@ -0,0 +1,9 @@ 306.4 +digraph undo_non_tip { 306.5 + "first change" -> "second change"; 306.6 + "second change" -> "third change"; 306.7 + backout [label="back out\nsecond change", shape=box]; 306.8 + "second change" -> backout; 306.9 + merge [label="automated\nmerge", shape=box]; 306.10 + "third change" -> merge; 306.11 + backout -> merge; 306.12 +}
307.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 307.2 +++ b/ja/undo-simple.dot Fri Aug 14 12:10:47 2009 -0700 307.3 @@ -0,0 +1,4 @@ 307.4 +digraph undo_simple { 307.5 + "first change" -> "second change"; 307.6 + "second change" -> "back out\nsecond change"; 307.7 +}
308.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 308.2 +++ b/ja/undo.tex Fri Aug 14 12:10:47 2009 -0700 308.3 @@ -0,0 +1,1051 @@ 308.4 +\chapter{Finding and fixing your mistakes} 308.5 +\label{chap:undo} 308.6 + 308.7 +$B?M$O4V0c$($k$b$N$G$9$,!"$=$N7k2L$r$h$j>e<j$K07$C$F$3$=!"(B 308.8 +$BM%$l$?9=@.4IM}%7%9%F%`$H8@$($^$9!#(B 308.9 +$B$3$N>O$G$O!"(B 308.10 +$B%W%m%8%'%/%H$KG&$S9~$s$@LdBj$rH/8+$7$?:]$K!"(B 308.11 +$B;H$($k<jK!$K$D$$$F@bL@$7$^$9!#(B 308.12 +Mercurial $B$O!"(B 308.13 +$BLdBj$N85$r3VN%$7E,@Z$K=hM}$9$k$?$a$NM%$l$?5!G=$r;}$C$F$$$^$9!#(B 308.14 + 308.15 +\section{Erasing local history} 308.16 + 308.17 +\subsection{The accidental commit} 308.18 + 308.19 +$BI.<T$O!";~$H$7$F9M$($k$h$j$b@h$KF~NO$7$F$7$^$&!"(B 308.20 +$B$H$$$&:,?<$$LdBj$rJz$($F$$$k$?$a!"(B 308.21 +$BIT40A4$G$"$C$?$j!"(B 308.22 +$BC1=c$K4V0c$C$?FbMF$N%A%'%s%8%;%C%H$r%3%_%C%H$7$F$7$^$&$3$H$,$"$j$^$9!#(B 308.23 +$BI.<T$N>l9g!"(B 308.24 +$BIT40A4$J%A%'%s%8%;%C%H$r%3%_%C%H$7$F$7$^$&$N$O!"(B 308.25 +$B?7$7$$%=!<%9%U%!%$%k$r:n@.$7$?$N$K(B 308.26 +\hgcmd{add} $B$N<B9T$rK:$l$F$$$k>l9g$,KX$I$G$9!#(B 308.27 +``$BC1=c$K4V0c$C$F$$$k(B''$B%A%'%s%8%;%C%H$r%3%_%C%H$7$F$7$^$&%1!<%9$K$O!"(B 308.28 +$BFC$K6&DLE@$O$"$j$^$;$s$,!"(Bbut $BHs>o$KLBOG(B(no less annoying) XXXXX$B!#(B 308.29 + 308.30 +\subsection{Rolling back a transaction} 308.31 +\label{sec:undo:rollback} 308.32 + 308.33 +Mercurial $B$,!"(B 308.34 +$B%j%]%8%H%j$X$N8D!9$NJQ99$r(B\emph{$B%H%i%s%6%/%7%g%s(B}$B$H$7$F07$C$F$$$k$3$H$r(B 308.35 +\ref{sec:concepts:txn} $B@a$G=R$Y$^$7$?!#(B 308.36 +$B%A%'%s%8%;%C%H$r%3%_%C%H$7$?$j!"(B 308.37 +$BB>$N%j%]%8%H%j$+$iJQ99$r(B pull $B$9$k:]$K!"(B 308.38 +Mercurial $B$O>o$K=hM}$7$?$3$H$r5-O?$7$F$$$^$9!#(B 308.39 +\hgcmd{rollback} $B%3%^%s%I$r;HMQ$9$k$3$H$G!"(B 308.40 +$B$-$C$A$j0l2sJ,$N=hM}$r85$KLa$9!"(B 308.41 +$BJL$J8@$$J}$r$9$k$J$i!"(B\emph{$B4,$-La$9(B}$B$3$H$,$G$-$^$9(B 308.42 +$B!J$3$N%3%^%s%I$r;HMQ$9$k:]$N=EMW$JCm0U$,=R$Y$i$l$F$$$^$9$N$G!"(B 308.43 +\ref{sec:undo:rollback-after-push} $B@a$r;2>H$7$F$/$@$5$$!K!#(B 308.44 + 308.45 +$B?7$7$/%U%!%$%k$r:n@.$7$?$N$K!"(B 308.46 +$B$=$N%U%!%$%k$KBP$7$F(B \hgcmd{add} 308.47 +$B%3%^%s%I$r<B9T$9$k$N$rK:$l$F%3%_%C%H$7$F$7$^$&!"(B 308.48 +$B$H$$$&I.<T$N$h$/$d$k4V0c$$$O!"0J2<$N$h$&$J$b$N$G$9!#(B 308.49 + 308.50 +\interaction{rollback.commit} 308.51 + 308.52 +$B%3%_%C%H8e$N(B \hgcmd{status} $B=PNO$r8+$l$P!"(B 308.53 +$B$9$0$5$^4V0c$$$r3N>Z$G$-$^$9!#(B 308.54 + 308.55 +\interaction{rollback.status} 308.56 + 308.57 +$B@h$N%3%_%C%H$O!"(B 308.58 +\filename{a} $B$NJQ99$OB*$($F$$$^$9$,!"(B 308.59 +$B?75,$N%U%!%$%k(B \filename{b} $B$OGD0.$7$F$$$^$;$s!#(B 308.60 +$BF1N=$H6&M-$7$F$$$k%j%]%8%H%j$K!"(B 308.61 +$B$3$N%A%'%s%8%;%C%H$rH?1G$7$F$7$^$C$?$i!"(B 308.62 +$BF1N=$,$3$N%A%'%s%8%;%C%H$r<h$j9~$s$@:]$K!"(B 308.63 +\filename{a} $BCf$N2?$+$,!"(B 308.64 +$BF1N=$N%j%]%8%H%j$K$OB8:_$7$J$$(B \filename{b} $B$r;2>H$7$F$7$^$$$^$9!#(B 308.65 +$B$=$&$J$l$P!";d$OF1N=$NJ0$j$NBP>]$K$J$C$F$7$^$&$G$7$g$&!#(B 308.66 + 308.67 +$B$7$+$7!"9,$$$J$3$H$K!"(B 308.68 +$B%A%'%s%8%;%C%H$r6&M-%j%]%8%H%j$X$HH?1G$9$kA0$K!"(B 308.69 +$B<+J,$N4V0c$$$r8+$D$1$F$$$^$9!#(B 308.70 +\hgcmd{rollback} $B%3%^%s%I$r;H$&$3$H$G!"(B 308.71 +Mercurial $B$O:G8e$N%A%'%s%8%;%C%H$r>C$7$F$/$l$^$9!#(B 308.72 + 308.73 +\interaction{rollback.rollback} 308.74 + 308.75 +$B%j%]%8%H%j$NMzNr>e!":GAa:GA0$N%A%'%s%8%;%C%H$OB8:_$7$^$;$s$N$G!"(B 308.76 +$B:n6HNN0h%G%#%l%/%H%j$O!"(B 308.77 +$B:F$S(B \filename{a} $B%U%!%$%k$,JQ99$5$l$F$$$k>uBV$@$H$_$J$5$l$^$9!#(B 308.78 +$B%3%_%C%H8e$N%m!<%k%P%C%/$O!"(B 308.79 +$B:n6HNN0h%G%#%l%/%H%j$r%3%_%C%HA0$N>uBV$=$N$^$^$KLa$7!"(B 308.80 +$B%A%'%s%8%;%C%H$O40A4$K>C5n$5$l$^$9!#(B 308.81 +$B$=$&$J$C$?$J$i!"(B 308.82 +$B0BA4$K(B \filename{b} $B%U%!%$%k$r(B \hgcmd{add} $B$7!"(B 308.83 +$B:FEY%3%_%C%H$9$k$3$H$,$G$-$^$9!#(B 308.84 + 308.85 +\interaction{rollback.add} 308.86 + 308.87 +\subsection{The erroneous pull} 308.88 + 308.89 +$B#1$D$N(B $B%W%m%8%'%/%H$G!"(B 308.90 +$BJL!9$K3+H/$N?J$s$G$$$k%V%i%s%A$r(B Mercurial $B$GJ]<i$9$k>l9g!"(B 308.91 +$B$=$l$>$l0[$J$k%j%]%8%H%j$GJ]<i$9$k$3$H$,0lHLE*$J47=,$H$J$C$F$$$^$9!#(B 308.92 +$B3+H/%A!<%`$O!"(B 308.93 +$B%W%m%8%'%/%H$N(B ``0.9'' $B%j%j!<%9MQ$K6&M-%j%]%8%H%j$r;}$D0lJ}$G!"(B 308.94 +$B0[$J$kJQ99MzNr$r;}$D(B ``1.0'' $B%j%j!<%9MQ$N%j%]%8%H%j$rJLES;}$D$+$b$7$l$^$;$s!#(B 308.95 + 308.96 +$B$3$N>l9g!"(B 308.97 +$B%m!<%+%k$J(B ``0.9'' $B%j%]%8%H%j$,$"$C$F!"(B 308.98 +$B$=$3$K6vA3(B ``1.0'' $BMQ6&M-%j%]%8%H%j$N@.2L$r<h$j9~$s$@>l9g!"(B 308.99 +$BLLE]$J;vBV$K$J$k$3$H$,A[A|$G$-$^$9!#(B 308.100 +$B:G0-$N>l9g!"(B 308.101 +$B==J,$JCm0U$rJ'$o$J$$$?$a$K!"(B 308.102 +``1.0'' $B$N%j%]%8%H%j$+$i<h$j9~$s$@JQ99$r(B 308.103 +``0.9'' $B$N6&MQ%j%]%8%H%j$X$HH?1G$7$F$7$^$C$?(B 308.104 +$B%A!<%`A4BN$r:.Mp$5$;$F$7$^$&$G$7$g$&(B 308.105 +$B!J$3$N62$m$7$$%1!<%9$K4X$7$F$O!"(B 308.106 +$B8e$[$I2r7hJ}K!$r<($7$^$9$N$G8f0B?4$r!#!K!#(B 308.107 +$B$7$+$7!"(B 308.108 +Mercurial $B$O@.2L<h$j9~$_@h$N(B URL $B$rI=<($9$k$+!"(B 308.109 +Mercurial 308.110 +$B$,2x$7$2$JBgNL$NJQ99$r%j%]%8%H%j$K<h$j9~$s$@$3$H$,I=<($5$l$^$9$+$i!"(B 308.111 +$B$9$0$K5$IU$/J}$,$"$jF@$^$9(B 308.112 +\footnote{$BLuCm(B: ``display the URL it's pulling from'' 308.113 +$B$N4X78$,$h$/$o$+$i$J$$(B}$B!#(B 308.114 + 308.115 +\hgcmd{rollback} $B%3%^%s%I$O!"(B 308.116 +$B:#$^$5$K<h$j9~$s$@A4$F$N%A%'%s%8%;%C%H$r!"(B 308.117 +$B$-$A$s$He:No$K$7$^$9!#(B 308.118 +Mercurial $B$O!"0l2s$N(B \hgcmd{pull} $B5/F0$K$h$j<h$j9~$^$l$k%A%'%s%8%;%C%HA4BN$r!"(B 308.119 +$BC10l$N%H%i%s%6%/%7%g%s$KJ,N`$9$k$N$G!"(B 308.120 +$B0l2s$N(B \hgcmd{rollback} $B5/F0$G$3$N<:GT$r<h$j>C$9$3$H$,$G$-$^$9!#(B 308.121 + 308.122 +\subsection{Rolling back is useless once you've pushed} 308.123 +\label{sec:undo:rollback-after-push} 308.124 + 308.125 +\hgcmd{rollback} $B$O!"(B 308.126 +$B0lC6B>$N%j%]%8%H%j$KH?1G$7$?JQ99$G$b!"(B 308.127 +$B!J<j85$N%j%]%8%H%j$K$*$$$F$O!KL5$+$C$?$3$H$K$G$-$^$9!#(B 308.128 +$B<h$j>C$7$K$h$jJQ99$O40A4$K>C$5$l$^$9$,!"(B 308.129 +$B$=$l$,$G$-$k$N$O!"(B 308.130 +\hgcmd{rollback} $B$r<B;\$7$?%j%]%8%H%j$K$*$1$k<h$j>C$7(B\emph{$B$N$_(B}$B$G$9!#(B 308.131 +$B<h$j>C$7$OMzNr$r:o=|$7$^$9$N$G!"(B 308.132 +$BJQ99$N<h$j>C$7$r%j%]%8%H%j4V$GEAGE$9$k<jCJ$,L5$$$N$G$9!#(B 308.133 + 308.134 +$BJQ99$rB>$N%j%]%8%H%j(B--$BE57?E*$JNc$G$O6&M-%j%]%8%H%j(B--$B$KH?1G$7$?>l9g!"(B 308.135 +$BK\<AE*$K$O!"$=$NJQ99$O(B``$BLn@8$KF($2=P$7(B''$B$F$*$j!"(B 308.136 +$B<h$j>C$7$H$OJL$JJ}K!$G4V0c$$$rKd$a9g$o$;$kI,MW$,$"$j$^$9!#(B 308.137 +$BJQ99$rB>$N%j%]%8%H%j$KH?1G$7!"(B 308.138 +$B!J<j85$N%j%]%8%H%j$G!K$=$NJQ99$r<h$j>C$7$?8e$G!"(B 308.139 +$BJQ99$rH?1G$7$?%j%]%8%H%j$+$iJQ99$r<h$j9~$s$@;~$K$O!"(B 308.140 +$B<h$j>C$7$?JQ99$,!J<j85$N%j%]%8%H%j$K!K:F$S8=$l$^$9!#(B 308.141 + 308.142 +$B!J<h$j>C$7$?$$JQ99$,!"JQ99$rH?1G$7$?%j%]%8%H%j$K$*$1$k:G?7$N$b$N$G!"(B 308.143 +\emph{$B3n$D(B}$B!"(B 308.144 +$BC/$b$=$l$r$=$N%j%]%8%H%j$+$i<h$j9~$s$G$$$J$$$3$H$,3N<B$G$"$k>l9g!"(B 308.145 +$B$=$NJQ99$r<h$j>C$9$3$H$b$G$-$^$9$,!"(B 308.146 +$B<h$j>C$7$,5!G=$9$k$3$H$K$O0MB8$7$J$$$h$&$K$7$F$/$@$5$$!#(B 308.147 +$BCY$+$lAa$+$lJQ99$OD>@\?($k$3$H$N$G$-$J$$(B 308.148 +$B!J$"$k$$$OB8:_$rK:$l$F$$$?!K%j%]%8%H%j$X$HH?1G$5$l!"(B 308.149 +$B2s$j$^$o$C$FLa$C$F$-$?;~$K3z$_IU$+$l$F$7$^$$$^$9!#(B 308.150 +$B!K(B 308.151 + 308.152 +\subsection{You can only roll back once} 308.153 + 308.154 +Mercurial $B$O!"(B 308.155 +$BEv3:%j%]%8%H%j$K$*$1$k:G$b:G?7$N%H%i%s%6%/%7%g%s$r!"(B 308.156 +$B#1$D$@$1%H%i%s%6%/%7%g%s%m%0$K5-O?$7$^$9!#(B 308.157 +$B$=$N$?$a!"<h$j>C$;$k%H%i%s%6%/%7%g%s$O#1$DJ,$@$1$G$9!#(B 308.158 +$B%H%i%s%6%/%7%g%s$r#1$D<h$j>C$7$?8e$G!"(B 308.159 +$B$=$NA0$N%H%i%s%6%/%7%g%s$b<h$j>C$;$k$3$H$r4|BT$7$F$b!"(B 308.160 +$B4|BTDL$j$N7k2L$OF@$i$l$^$;$s!#(B 308.161 + 308.162 +\interaction{rollback.twice} 308.163 + 308.164 +$B$"$k%j%]%8%H%j$G%H%i%s%6%/%7%g%s$N<h$j>C$7$r9T$C$?>l9g!"(B 308.165 +$BJL$JJQ99$r%3%_%C%H$9$k$J$j<h$j9~$`$J$j$7$J$$8B$j!"(B 308.166 +$B$=$N%j%]%8%H%j$G<h$j>C$7$r9T$&$3$H$O$G$-$^$;$s!#(B 308.167 + 308.168 +\section{Reverting the mistaken change} 308.169 + 308.170 +$B%U%!%$%k$rJQ99$7$?8e$G!"(B 308.171 +$B%U%!%$%k$NJQ99$,A4$/I,MW$J$$$3$H$K5$IU$$$?>l9g!"(B 308.172 +$BJQ99$r%3%_%C%H$9$kA0$G$"$l$P!"(B 308.173 +\hgcmd{revert} $B%3%^%s%I$,MxMQ$G$-$^$9!#(B 308.174 +$B$3$N%3%^%s%I$O!"(B 308.175 +$B:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$r;2>H$7!"(B 308.176 +$B%U%!%$%k$NFbMF$r85$N>uBV$KLa$7$^$9!#(B 308.177 +$B!J@bL@$9$k$HD9$/$J$j$^$9$,!"(B 308.178 +$BDL>o$N>l9g!"$3$N%3%^%s%I$OJQ99$r<h$j>C$7$^$9!#!K(B 308.179 + 308.180 +\hgcmd{revert} $B%3%^%s%I$N5!G=$r!"(B 308.181 +$B$A$g$C$H$7$?%5%s%W%k$G@bL@$7$^$9!#(B 308.182 +Mercurial $B$K$h$j4{$K9=@.4IM}$5$l$F$$$k%U%!%$%k$rJQ99$7$^$9!#(B 308.183 + 308.184 +\interaction{daily.revert.modify} 308.185 + 308.186 +$BJQ99$,I,MW$J$$>l9g!"(B 308.187 +$BC1=c$K(B \hgcmd{revert} $B%3%^%s%I$r%U%!%$%k$KE,MQ$7$^$9!#(B 308.188 + 308.189 +\interaction{daily.revert.unmodify} 308.190 + 308.191 +\hgcmd{revert} $B%3%^%s%I$O!"(B 308.192 +$B$"$kDxEY$N0BA4@-$r3NJ]$9$k$?$a$K!"(B 308.193 +\filename{.orig} $B3HD%;RIU$-$N%U%!%$%k$K!"(B 308.194 +$BJQ99$5$l$?%U%!%$%k$NFbMF$rJ]B8$7$^$9!#(B 308.195 + 308.196 +\interaction{daily.revert.status} 308.197 + 308.198 +\hgcmd{revert} $B%3%^%s%I$,07$&$3$H$N$G$-$k>u67$r0J2<$K$^$H$a$^$9!#(B 308.199 +$B8D!9$N>u67$K4X$9$k>\:Y$O!"0J8e$N@a$G@bL@$7$^$9!#(B 308.200 + 308.201 +\begin{itemize} 308.202 +\item $B%U%!%$%k$,JQ99$5$l$F$$$?$J$i!"JQ99A0$N>uBV$KLa$7$^$9!#(B 308.203 + 308.204 +\item $B%U%!%$%k$,(B \hgcmd{add} $B$5$l$F$$$?$J$i!"(B 308.205 + $B%U%!%$%k$N(B``$BDI2C(B''$B$5$l$F$$$k>uBV$r<h$j>C$7$^$9$,!"(B 308.206 + $B%U%!%$%k$=$N$b$N$K$O2?$bJQ99$r9T$$$^$;$s!#(B 308.207 + 308.208 +\item Mercurial $B$X$N;X<(L5$/%U%!%$%k$r:o=|$7$F$$$?$J$i!"(B 308.209 + $BJQ99A0(B\footnote{$BLuCm(B: ``$B:o=|A0(B''$B$G$O$J$$E@$KCm0U(B}$B$N>uBV$KLa$7$^$9!#(B 308.210 + 308.211 +\item \hgcmd{remove} $B%3%^%s%I$G%U%!%$%k$r:o=|$7$F$$$?$J$i!"(B 308.212 + $B%U%!%$%k$N(B``$B:o=|$5$l$?(B''$B>uBV$r<h$j>C$7!"(B 308.213 + $BJQ99A0$N>uBV$KLa$7$^$9!#(B 308.214 + 308.215 +\end{itemize} 308.216 + 308.217 +\subsection{File management errors} 308.218 +\label{sec:undo:mgmt} 308.219 + 308.220 +\hgcmd{revert} $B$OJQ99$5$l$?%U%!%$%k0J30$KBP$7$F$bM-MQ$J%3%^%s%I$G$9!#(B 308.221 +$B$3$N%3%^%s%I$O!"(B 308.222 +Mercurial $B$NA4$F$N%U%!%$%k4IM}%3%^%s%I(B 308.223 +---\hgcmd{add} $B$d(B \hgcmd{remove} $B$J$I(B--- 308.224 +$B$N<B;\$rH?E>$5$;$^$9!#(B 308.225 + 308.226 +$B%U%!%$%k$KBP$7$F(B \hgcmd{add} $B$r9T$C$?8e$G!"(B 308.227 +$B$=$N%U%!%$%k$r(B Mercurial $B$G9=@.4IM}$9$kI,MW$,L5$$$3$H$K5$IU$$$?$J$i!"(B 308.228 +\hgcmd{revert} $B$K$h$j%U%!%$%k$NDI2C$r<h$j>C$;$^$9!#(B 308.229 +Mercurial $B$O%U%!%$%k<+BN$K$O2?$bJQ99$r9T$$$^$;$s$N$G0B?4$7$F$/$@$5$$!#(B 308.230 +$B%U%!%$%kDI2C$N<h$j>C$7$O!"(B 308.231 +$B%U%!%$%k$KBP$7$F(B``$B0u$r>C$9(B''$B$@$1$G$9!#(B 308.232 + 308.233 +\interaction{daily.revert.add} 308.234 + 308.235 +$BF1MM$K!"(B 308.236 +$B%U%!%$%k$KBP$7$F(B \hgcmd{remove} $B$r9T$C$?8e$G$b!"(B 308.237 +\hgcmd{revert} $B$r;H$&$3$H$G!"(B 308.238 +$B:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$K$*$1$k>uBV$K!"(B 308.239 +$B%U%!%$%k$NFbMF$rI|5l$9$k$3$H$,$G$-$^$9!#(B 308.240 + 308.241 +\interaction{daily.revert.remove} 308.242 + 308.243 +$B$3$l$O!"(BMercurial $B$rDL$5$:$K<jF0$G:o=|$7$?%U%!%$%k(B 308.244 +$B!J(BMercurial $B$NMQ8l$G$O$3$N<o$N%U%!%$%k$,(B``$BJ6<:(B''(missing) 308.245 +$B$H8F$P$l$k$3$H$r;W$$=P$7$F$/$@$5$$!K$G$"$C$F$b5!G=$7$^$9!#(B 308.246 + 308.247 +\interaction{daily.revert.missing} 308.248 + 308.249 +\hgcmd{copy} $B$5$l$?%U%!%$%k$K<h$j>C$7$r9T$C$?>l9g!"(B 308.250 +$BJ#@=@h%U%!%$%k$O:n6HNN0h%G%#%l%/%H%j$K!"(B 308.251 +$B9=@.4IM}$5$l$J$$>uBV$G$=$N$^$^;D$j$^$9!#(B 308.252 +$BJ#@=A`:n$OJ#@=85%U%!%$%k$K$O2?$b:nMQ$7$J$$$N$G!"(B 308.253 +$B<h$j>C$7$N:]$K(B Mercurial $B$OJ#@=85%U%!%$%k$KBP$7$FFC$K2?$b$7$^$;$s!#(B 308.254 + 308.255 +\interaction{daily.revert.copy} 308.256 + 308.257 +\subsubsection{A slightly special case: reverting a rename} 308.258 + 308.259 + 308.260 +$B%U%!%$%k$KBP$7$F(B \hgcmd{rename} $B$r9T$C$?>l9g!"(B 308.261 +$B3P$($F$$$FM_$7$$$3$H$,$"$j$^$9!#(B 308.262 +\hgcmd{rename} $B<B9T$KBP$7$F(B \hgcmd{revert} $B$r9T$&:]$K$O!"(B 308.263 +$B0J2<$K<($9$h$&$K!"(B 308.264 +$BJQ998e$N%U%!%$%kL>$r;XDj$7$?$@$1$G$OIT==J,$G$9!#(B 308.265 + 308.266 +\interaction{daily.revert.rename} 308.267 + 308.268 +\hgcmd{status} $B%3%^%s%I$N=PNO$+$i$b$o$+$k$h$&$K!"(B 308.269 +$BJQL>8e$N%U%!%$%k$O4{$KL$DI2C>uBV$HG'<1$5$l$F$$$^$9$,!"(B 308.270 +$BJQL>(B\emph{$BA0(B}$B$N%U%!%$%k$OL$$@$K:o=|>uBV$HG'<1$5$l$F$$$^$9!*(B 308.271 +$B$3$l$O!J>/$J$/$H$bCx<T$K$H$C$F$O!KD>46$KH?$7$^$9$,!"(B 308.272 +$B07$$$O4JC1$G$9!#(B 308.273 + 308.274 +\interaction{daily.revert.rename-orig} 308.275 + 308.276 +\hgcmd{rename} $B$N<h$j>C$7$r9T$&$K$O!"(B 308.277 +$BJQL>A08e$N%U%!%$%kL>$r(B\emph{$BN>J}(B}$B;XDj$9$k$3$H$rK:$l$J$$$G$/$@$5$$!#(B 308.278 + 308.279 +$B!J$A$J$_$K!"(B 308.280 +$B%U%!%$%k$NJQL>8e$K!"JQL>8e$N%U%!%$%k$rJQ99$7!"(B 308.281 +$B$=$l$+$iJQL>A08e$N%U%!%$%kL>$NN>J}$r;XDj$7$F<h$j>C$7$r9T$C$?>l9g!"(B 308.282 +Mercurial $B$OJQL>$N:]$K:o=|$5$l$?%U%!%$%k(B\footnote{$BLuCm(B: $BJQL>A0$N%U%!%$%k(B 308.283 +}$B$r2?$bJQ99$5$l$F$$$J$$>uBV$KLa$7$^$9!#(B 308.284 +$BJQL>8e$N%U%!%$%k$KBP$9$kJQ99$rJQL>A0%U%!%$%k$KH?1G$7$?$$>l9g$K$O!"(B 308.285 +$BJQL>8e%U%!%$%k$+$iJQL>A0%U%!%$%k$X$N%3%T!<$rK:$l$J$$$G$/$@$5$$!#(B 308.286 +$B!K(B 308.287 + 308.288 +$BJQL>$N<h$j>C$7$K$*$1$k$3$l$i$NLq2p$JB&LL$O!"(B 308.289 +$B$*$=$i$/(B Mercurial $B$N>.$5$J%P%0$KM3Mh$9$k$b$N$G$9!#(B 308.290 + 308.291 +\section{Dealing with committed changes} 308.292 + 308.293 +$B$"$kJQ99(B $a$ $B$r%3%_%C%H$7!"$=$N>e$GJL$NJQ99(B $b$ $B$r%3%_%C%H$7$?8e$G!"(B 308.294 +$BJQ99(B $a$ $B$,4V0c$C$F$$$?$3$H$K5$IU$$$?$H$7$^$9!#(B 308.295 +Mercurial $B$K$O!"(B 308.296 +$B%A%'%s%8%;%C%H$=$N$b$N$r<+F0E*$K(B``$BL5$+$C$?$3$H$K$9$k(B''$B5!G=$d!"(B 308.297 +$B%A%'%s%8%;%C%H$N0lIt$r<jF0$GL58z$K$9$k$?$a$N>pJs$rDs6!$9$k5!G=$,$"$j$^$9!#(B 308.298 + 308.299 +$B$3$N@a$rFI$`A0$K!"3P$($F$*$$$FM_$7$$$3$H$,4v$D$+$"$j$^$9!#(B 308.300 +\hgcmd{backout} $B%3%^%s%I$K$h$kJQ99$N<h$j>C$7$O!"(B 308.301 +$BMzNr$r(B\emph{$BDI2C(B}$B$9$k$3$H$G9T$o$l$k$b$N$G$"$j!"(B 308.302 +$BJQ99$=$N$b$N$r=$@5$7$?$j:o=|$7$?$j$9$k$b$N$G$O$"$j$^$;$s!#(B 308.303 +$B$=$N$?$a!"%P%0$N=$@5$r$9$k$N$K$O8~$$$F$$$^$9$,!"(B 308.304 +$BGK2uE*$J7k2L$rH<$&<h$j>C$7$H$$$C$?MQES$K$O8~$$$F$$$^$;$s!#(B 308.305 +$B$=$N$h$&$J<h$j>C$7$K4X$7$F$O!"(B 308.306 +~\ref{sec:undo:aaaiiieee} $B@a$r;2>H$7$F$/$@$5$$!#(B 308.307 + 308.308 +\subsection{Backing out a changeset} 308.309 + 308.310 +\hgcmd{backout} $B%3%^%s%I$O!"(B 308.311 +$B<+F02=$5$l$?7A<0$G%A%'%s%8%;%C%H$N8z2LA4BN$r(B``$B<h$j>C$7(B''$B$^$9!#(B 308.312 +Mercurial $B$NMzNr$O2~JQ$G$-$J$$$N$G!"(B 308.313 +$B$3$N%3%^%s%I$O<h$j>C$7$?$$%A%'%s%8%;%C%H$r<h$j=|$$$?$j$O(B\emph{$B$7$^$;$s(B}$B!#(B 308.314 +$B$=$NBe$o$j$K$3$N%3%^%s%I$O!"(B 308.315 +$B<h$j>C$7$?$$%A%'%s%8%;%C%H$K$h$k2~JQFbMF$r(B\emph{$BH?E>(B}$B$5$;$k!"(B 308.316 +$B?7$?$J%A%'%s%8%;%C%H$r:n@.$7$^$9!#(B 308.317 + 308.318 +\hgcmd{backout} $B%3%^%s%I$NA`:n$O>/!9J#;($G$9$N$G!"Nc$r;H$C$F@bL@$7$^$9!#(B 308.319 +$B$^$:$OC1=c$J%A%'%s%8%;%C%H$r4v$D$+;}$D%j%]%8%H%j$r:n@.$7$^$9!#(B 308.320 + 308.321 +\interaction{backout.init} 308.322 + 308.323 +\hgcmd{backout} $B%3%^%s%I$O!"(B 308.324 +``bakc out''$BBP>]$H$9$kC10l$N%A%'%s%8%;%C%H<1JL;R$r0z?t$K<h$j$^$9!#(B 308.325 +$BDL>o!"(B 308.326 +\hgcmd{backout} 308.327 +$B$O%3%_%C%H%a%C%;!<%8$r=q$/$?$a$K%F%-%9%H%(%G%#%?$r5/F0$7$^$9$N$G!"(B 308.328 +$BJQ99$r(B back out $B$9$kM}M3$r5-O?$9$k$3$H$,$G$-$^$9!#(B 308.329 +$B$3$NNc$G$O!"(B 308.330 +\hgopt{backout}{-m} $B%*%W%7%g%s$rMQ$$$k$3$H$G!"(B 308.331 +$B%3%^%s%I%i%$%s$+$i%3%_%C%H%a%C%;!<%8$rM?$($F$$$^$9!#(B 308.332 + 308.333 +\subsection{Backing out the tip changeset} 308.334 + 308.335 +$B0J2<$NNc$G$O!"(B 308.336 +$B:G8e$K%3%_%C%H$7$?%A%'%s%8%;%C%H$r(B back out $B$7$^$9!#(B 308.337 + 308.338 +\interaction{backout.simple} 308.339 + 308.340 +\filename{myfile} $B$,4{$K#29TL\$r;}$?$J$$$3$H$,$*$o$+$j$G$7$g$&!#(B 308.341 +\hgcmd{log} $B=PNO$r8+$l$P!"(B 308.342 +\hgcmd{backout} $B%3%^%s%I$,2?$r9T$C$?$+$rM}2r$G$-$^$9!#(B 308.343 + 308.344 +\interaction{backout.simple.log} 308.345 + 308.346 +\hgcmd{backout} $B$,@8@.$7$??7$7$$%A%'%s%8%;%C%H$O!"(B 308.347 +back out $B$7$?%A%'%s%8%;%C%H$N;R%A%'%s%8%;%C%H$H$J$kE@$KCm0U$7$F$/$@$5$$!#(B 308.348 +$BJQ99MzNr$r?^<($7$?(B \ref{fig:undo:backout}~$B?^$r8+$l$P!"(B 308.349 +$B$3$N$3$H$,$o$+$k$G$7$g$&!#(B 308.350 +$B$4Mw$NDL$j!"MzNr$O8+;v$K0lD>@~$G$9!#(B 308.351 + 308.352 +\begin{figure}[htb] 308.353 + \centering 308.354 + \grafix{undo-simple} 308.355 + \label{fig:undo:backout} 308.356 + \caption{Backing out a change using the \hgcmd{backout} command} 308.357 +\end{figure} 308.358 + 308.359 +\subsection{Backing out a non-tip change} 308.360 + 308.361 +$B:G8e$K%3%_%C%H$7$?%A%'%s%8%;%C%H0J30$r(B back out $B$7$?$$>l9g!"(B 308.362 +\hgcmd{backout} $B%3%^%s%I$K(B 308.363 +\hgopt{backout}{--merge} $B%*%W%7%g%s$r;XDj$7$F$/$@$5$$!#(B 308.364 + 308.365 +\interaction{backout.non-tip.clone} 308.366 + 308.367 +$B$3$N%3%^%s%I<B9T$O!"(B 308.368 +$BG$0U$N%A%'%s%8%;%C%H$r!"(B 308.369 +$B4JC1$GAGAa$$(B``$B0l2s8B$j$N(B''$BA`:n$G(B back out $B$G$-$^$9!#(B 308.370 + 308.371 +\interaction{backout.non-tip.backout} 308.372 + 308.373 +back out $B40N;8e$N(B \filename{myfile} $B$NFbMF$K$O!"(B 308.374 +$B#12sL\$H#32sL\$NJQ99$KAjEv$9$kFbMF$O8+$k$3$H$,$G$-$^$9$,!"(B 308.375 +$B#22sL\$NJQ99$KAjEv$9$kFbMF$O8+$k$3$H$,$G$-$J$$$G$7$g$&!#(B 308.376 + 308.377 +\interaction{backout.non-tip.cat} 308.378 + 308.379 +$BMzNr$r?^<($7$?(B \ref{fig:undo:backout-non-tip}~$B?^$K8+$i$l$k$h$&$K!"(B 308.380 +$B$3$N$h$&$J>u67$N>l9g!"(B 308.381 +Mercurial $B$O<B:]$K$O(B\emph{$B#2$D(B}$B$N%A%'%s%8%;%C%H$r%3%_%C%H$7$^$9(B 308.382 +$B!J(BMercurial $B$,<+F0E*$K%3%_%C%H$7$?$b(B\footnote{$BLuCm(B: 308.383 +$B<B9TNc$G(B Mercurial $B$,=PNO$9$k%a%C%;!<%8$r8+$l$P$o$+$k$h$&$K!"(B 308.384 +$B%^!<%8$5$l$?%A%'%s%8%;%C%H$N%3%_%C%H$OMxMQ<T@UG$$H$J$C$F$$$k$?$a!"(B 308.385 +$B!V<+F0E*$K%3%_%C%H!W$7$?$b$N$G$O$J$/(B 308.386 +$B!V<+F0E*$K@8@.$7$?$b$N!W$,@5$7$$I=8=$G$9!#(B}$B$N$O6k7A$G<($7$F$"$j$^$9!K!#(B 308.387 +Mercurial $B$O(B back out $B=hM}$r;O$a$kA0$K!"(B 308.388 +$B8=;~E@$G$N:n6HNN0h%G%#%l%/%H%j$K$*$1$k?F%A%'%s%8%;%C%H$r3P$($F$*$-$^$9!#(B 308.389 +$B$=$N>e$GBP>]%A%'%s%8%;%C%H$r(B back out $B$7!"(B 308.390 +$B%A%'%s%8%;%C%H$H$7$F%3%_%C%H$7$^$9!#(B 308.391 +$B:G8e$K!"(B 308.392 +$B:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$H%^!<%8$7$?7k2L$r%3%_%C%H$7$^$9(B 308.393 +footnote{$BLuCm(B: $BA0=R$N$h$&$K!"<+F0E*$K$O%3%_%C%H$5$l$^$;$s(B}$B!#(B 308.394 + 308.395 +\begin{figure}[htb] 308.396 + \centering 308.397 + \grafix{undo-non-tip} 308.398 + \label{fig:undo:backout-non-tip} 308.399 + \caption{Automated backout of a non-tip change using the \hgcmd{backout} command} 308.400 +\end{figure} 308.401 + 308.402 +$B7k2L$H$7$F!"(B 308.403 +back out $B$7$?$$%A%'%s%8%;%C%H$K$h$kJQ99FbMF$r<h$j>C$9$?$a$N!"(B 308.404 +$B4v$D$+$NM>J,$JMzNr$N$_$rH<$C$F!"(B 308.405 +``$B0JA0$N>uBV$X$NI|5l(B''$B$,9T$o$l$^$9!#(B 308.406 + 308.407 +\subsubsection{Always use the \hgopt{backout}{--merge} option} 308.408 + 308.409 +$B<B$N$H$3$m!"(B 308.410 +back out $BBP>]$N%A%'%s%8%;%C%H$,(B tip $B$+H]$+$K4X$o$i$:!"(B 308.411 +\hgopt{backout}{--merge} $B%*%W%7%g%s$O(B``$B@5$7$/5!G=(B''$B$7$^$9(B 308.412 +$B!J(Bback out $BBP>]$,(B tip $B$N>l9g$O!"I,MW$,L5$$$N$G%^!<%8$7$h$&$H$O$7$^$;$s!K(B 308.413 +$B$N$G!"(B 308.414 +\hgcmd{backout} $B%3%^%s%I$r<B9T$9$k:]$K$O(B\emph{$B>o$K(B} 308.415 +\hgopt{backout}{--merge} $B%*%W%7%g%s$r;XDj$9$k$Y$-$G$7$g$&!#(B 308.416 + 308.417 +\subsection{Gaining more control of the backout process} 308.418 + 308.419 +$B@h$N5-=R$G$O!"JQ99$N(B back out $B$N:]$N(B 308.420 +\hgopt{backout}{--merge} $B%*%W%7%g%s$N>oMQ$r?d>)$7$^$7$?$,!"(B 308.421 +$B$=$N0lJ}$G!"(B 308.422 +back out $BBP>]$H$J$k%A%'%s%8%;%C%H$N%^!<%8J}K!$r!"(B 308.423 +\hgcmd{backout} $B%3%^%s%I$NMxMQ<T$,7hDj$9$k$3$H$b$G$-$^$9!#(B 308.424 +back out $B=hM}$r<jF0$G@)8f$9$kI,MW$OLGB?$K$"$j$^$;$s$,!"(B 308.425 +$B<jF0@)8f$NJ}K!$rCN$k$3$H$O!"(B 308.426 +\hgcmd{backout} $B$,<+F0E*$K9T$C$F$$$k$3$H$NFb>p$rM}2r$9$k>e$GM-MQ$G$9!#(B 308.427 +$B<jF0@)8f$N@bL@$N$?$a$K!"(B 308.428 +$B:G=i$K:n@.$7$?%j%]%8%H%j$rJ#@=$7$^$9$,!"(B 308.429 +$B$3$3$G$O(B back out $B$O9T$$$^$;$s!#(B 308.430 + 308.431 +\interaction{backout.manual.clone} 308.432 + 308.433 +$B@h$NNc$HF1MM$K!"(B 308.434 +$BBh#3$N%A%'%s%8%;%C%H$r%3%_%C%H$7!"(B 308.435 +$B$=$N>e$G$=$N?F$r(B back out $B$7$?7k2L$r8+$F$_$^$7$g$&!#(B 308.436 + 308.437 +\interaction{backout.manual.backout} 308.438 + 308.439 +$B?7$?$J%A%'%s%8%;%C%H$bBh#3$N%A%'%s%8%;%C%HF1MM$K!"(B 308.440 +back out $BBP>]$N%A%'%s%8%;%C%H$N;R$K$J$j$^$9$N$G!"(B 308.441 +$B$=$l$^$G(B tip $B$@$C$?%A%'%s%8%;%C%H(B\footnote{$BLuCm(B: $BBh#3$N%A%'%s%8%;%C%H$N$3$H(B} 308.442 +$B$N;R(B\emph{$B$G$O$J$/(B}$B!"?7$?$J%X%C%I$K$J$j$^$9!#(B 308.443 +\hgcmd{backout} $B%3%^%s%I$O!"(B 308.444 +$B$3$N$3$H$r9p$2$kHs>o$K$O$C$-$j$H$7$?%a%C%;!<%8$rI=<($7$F$$$^$9!#(B 308.445 + 308.446 +\interaction{backout.manual.log} 308.447 + 308.448 +$B$3$3$G$b!"(B 308.449 +$BMzNr$r?^<($7$?(B\ref{fig:undo:backout-manual}~$B?^$r8+$k$3$H$G!"(B 308.450 +$B$I$&$$$C$?>u67$K$"$k$N$+$,M}2r$70W$$$H;W$$$^$9!#(B 308.451 +$B$3$N?^$+$i!"(B 308.452 +\hgcmd{backout} $B%3%^%s%I$r(B tip $B0J30$N%A%'%s%8%;%C%H$KE,MQ$7$?:]$K!"(B 308.453 +Mercurial $B$,?7$7$$%X%C%I$r%j%]%8%H%j$KDI2C$9$k(B 308.454 +$B!J(BMercurial $B$K$h$jDI2C$5$l$?%A%'%s%8%;%C%H$O6k7A$GI=$7$F$$$^$9!K(B 308.455 +$B$3$H$,$h$/$o$+$j$^$9!#(B 308.456 + 308.457 +\begin{figure}[htb] 308.458 + \centering 308.459 + \grafix{undo-manual} 308.460 + \label{fig:undo:backout-manual} 308.461 + \caption{Backing out a change using the \hgcmd{backout} command} 308.462 +\end{figure} 308.463 + 308.464 +\hgcmd{backout} $B%3%^%s%I$N<B9T$,40N;$9$k$H!"(B 308.465 +$B:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$,!"(B 308.466 +$B?7$7$$(B ``backout'' $B%A%'%s%8%;%C%H$K$J$j$^$9!#(B 308.467 + 308.468 +\interaction{backout.manual.parents} 308.469 + 308.470 +$B$3$N;~E@$G!"#2$D$NFHN)$7$?JQ99$N$^$H$^$j(B 308.471 +\footnote{$BLuCm(B: $B%^!<%8$,I,MW$J!VJ#?t%X%C%I>uBV!W$N$3$H$r;X$7$F$$$k$H;W$o$l$^$9(B} 308.472 +$B$,B8:_$7$^$9!#(B 308.473 + 308.474 +\interaction{backout.manual.heads} 308.475 + 308.476 +$B$3$N;~E@$G!"(B\filename{myfile} 308.477 +$B$O$I$N$h$&$JFbMF$G$"$k$3$H$,4|BT$5$l$k$+$r9M$($F$_$^$7$g$&!#(B 308.478 +$BBh#1$NJQ99$O(B back out $B$7$F$$$^$;$s$+$i!"(B 308.479 +$B$=$l$K4X$9$kFbMF$OB8:_$7$F$$$J$1$l$P$J$j$^$;$s!#(B 308.480 +$BBh#2$NJQ99$O(B back out $B$7$^$7$?$N$G!"(B 308.481 +$B$=$l$K4X$9$kFbMF$O>C<:$7$F$$$J$1$l$P$J$j$^$;$s!#(B 308.482 +$BMzNr?^$GJL8D$N%X%C%I$H$7$F?^<($5$l$F$$$k$h$&$K!"(B 308.483 +$BBh#3$NJQ99$K4X$9$kFbMF$,(B 308.484 +\filename{myfile} $B$KB8:_$7$F$O(B\emph{$B$J$j$^$;$s(B}$B!#(B 308.485 + 308.486 +\interaction{backout.manual.cat} 308.487 + 308.488 +$BBh#3$NJQ99$NFbMF$r%U%!%$%k$K<h$j9~$`$K$O!"(B 308.489 +$B#2$D$N%X%C%I$r$$$D$b$N$h$&$K%^!<%8$9$l$PNI$$$N$G$9!#(B 308.490 + 308.491 +\interaction{backout.manual.merge} 308.492 + 308.493 +$B%^!<%8$9$k$3$H$G!"(B 308.494 +$B%j%]%8%H%jCf$NMzNr$O(B 308.495 +\ref{fig:undo:backout-manual-merge}~$B?^$K<($9$h$&$K$J$j$^$9!#(B 308.496 + 308.497 +\begin{figure}[htb] 308.498 + \centering 308.499 + \grafix{undo-manual-merge} 308.500 + \caption{Manually merging a backout change} 308.501 + \label{fig:undo:backout-manual-merge} 308.502 +\end{figure} 308.503 + 308.504 +\subsection{Why \hgcmd{backout} works as it does} 308.505 + 308.506 +\hgcmd{backout} $B%3%^%s%I$N?6$kIq$$$r4JC1$K$^$H$a$k$H0J2<$N$h$&$K$J$j$^$9!#(B 308.507 + 308.508 +\begin{enumerate} 308.509 +\item $B:n6HNN0h%G%#%l%/%H%j$,(B``$B%/%j!<%s(B''$B$J>uBV!"(B 308.510 + $BB($A(B \hgcmd{status} $B$N=PNO$,6u$G$"$k$3$H$r3NG'$7$^$9!#(B 308.511 + 308.512 +\item $B$=$N;~E@$G$N:n6HNN0h%G%#%l%/%H%j$N?F%A%'%s%8%;%C%H$r3P$($F$*$-$^$9!#(B 308.513 + $B0J2<!"$3$N%A%'%s%8%;%C%H$r(B \texttt{orig} $B$H8F>N$7$^$9!#(B 308.514 + 308.515 +\item $B:n6HNN0h%G%#%l%/%H%j$r(B back out $BBP>]%A%'%s%8%;%C%H$KF14|$9$k$?$a$K!"(B 308.516 + \hgcmd{update} $B$HF1Ey$N=hM}$r9T$$$^$9!#(B 308.517 + $B0J2<!"$3$N%A%'%s%8%;%C%H$r(B \texttt{backout} $B$H8F>N$7$^$9!#(B 308.518 + 308.519 +\item \texttt{backout} $B$N?F%A%'%s%8%;%C%H$rD4$Y$^$9!#(B 308.520 + $B0J2<!"$3$N?F%A%'%s%8%;%C%H$r(B \texttt{parent} $B$H8F>N$7$^$9!#(B 308.521 + 308.522 +\item \texttt{backout} $B%A%'%s%8%;%C%H$,1F6A$9$k8D!9$N%U%!%$%k$KBP$7$F!"(B 308.523 + \hgcmdargs{revert}{-r parent} $BAjEv$N=hM}$r9T$$!"(B 308.524 + \texttt{backout} $B%A%'%s%8%;%C%H$,%3%_%C%H$5$l$kA0$NFbMF$KI|85$7$^$9!#(B 308.525 + 308.526 +\item $BI|857k2L$r?7$7$$%A%'%s%8%;%C%H$H$7$F%3%_%C%H$7$^$9!#(B 308.527 + $B$3$N%A%'%s%8%;%C%H$N?F$O(B \texttt{backout} $B$G$9!#(B 308.528 + 308.529 +\item $B%3%^%s%I%i%$%s$G(B \hgopt{backout}{--merge} $B$,;XDj$5$l$F$$$?>l9g!"(B 308.530 + $B?7$7$$%A%'%s%8%;%C%H$H(B \texttt{orig} $B$r%^!<%8$7!"(B 308.531 + $B$=$N7k2L$r%3%_%C%H$7$^$9!#(B 308.532 + 308.533 +\end{enumerate} 308.534 + 308.535 +$B:n6HNN0h%G%#%l%/%H%j$rO.7+$j2s$9$3$H$J$/(B 308.536 +\hgcmd{backout} $B%3%^%s%IAjEv$N8z2L$rF@$k$b$&0l$D$NJ}K!$O!"(B 308.537 +back out $B$5$l$k%A%'%s%8%;%C%H$KBP$7$F(B \hgcmd{export} 308.538 +$B$9$k$3$H$GF@$?(B diff $B%U%!%$%k$r!"(B 308.539 +$B:nMQ$rH?E>$5$;$k(B 308.540 +\cmdopt{patch}{--reverse} $B%*%W%7%g%s$r;XDj$7$?(B 308.541 +\command{patch} $B%3%^%s%I$KMQ$$$k$3$H$G$9!#(B 308.542 +$B$3$NJ}K!$OHs>o$K4JC1$K46$8$k$G$7$g$&$,!"(B 308.543 +$BA4$/>e<j$/5!G=$7$^$;$s!#(B 308.544 + 308.545 +\hgcmd{backout} $B$,(B update$B!"(Bcommit$B!"(Bmerge $B$*$h$S:FEY$N(B commit $B$r9T$&$N$O!"(B 308.546 +back out $BBP>]$N%A%'%s%8%;%C%H$H8=:_$N(B tip 308.547 +$B$N(B\emph{$B4V(B}$B$NA4$F$N%A%'%s%8%;%C%H$r07$&:]$K!"(B 308.548 +$BNI9%$J7k2L$rF@$k$?$a$N:GA1$N5!2q$r(B Mercurial $B$N%^!<%85!9=$KM?$($k$?$a$G$9!#(B 308.549 + 308.550 +$BNc$($P!"(B 308.551 +$B%W%m%8%'%/%H$NMzNr$+$i!"(B100 $B%j%S%8%g%sJ,A0$N%A%'%s%8%;%C%H$r(B 308.552 +back out $B$7$h$&$H$7$?>l9g!"(B 308.553 +\command{patch} $B$,%Q%C%A$NE,MQ2DH]$rH=Dj$9$k%3%s%F%-%9%H>pJs$r!"(B 308.554 +back out $BBP>]$H$N4V$K$"$k%A%'%s%8%;%C%H$,(B``$BGK2u(B''$B$7$F$7$^$&$+$b$7$l$J$$(B 308.555 +$B!J$3$N0UL#$,$o$+$i$J$$>l9g$O!"(B 308.556 +\ref{sec:mq:patch}~$B@a$N(B \command{patch} $B$K4X$9$k@bL@$r;2>H$7$F$/$@$5$$!K(B 308.557 +$B$N$G!"(B 308.558 +\command{patch} $B%3%^%s%I$,H?E>(B diff $B$re:No$KE,MQ$G$-$k$3$H$O4|BT$G$-$^$;$s!#(B 308.559 +Mercurial $B$N%^!<%85!9=$O!"(B 308.560 +$B%U%!%$%k$d%G%#%l%/%H%j$NJQL>!"(B 308.561 +$B%U%!%$%k8"8B$NJQ99$d!"(B 308.562 +$B%P%$%J%j%U%!%$%k$NJQ99$H$$$C$?(B 308.563 +\command{patch} $B%3%^%s%I$,07$&$3$H$N$G$-$J$$$b$N$b07$&$3$H$,$G$-$^$9!#(B 308.564 + 308.565 +\section{Changes that should never have been} 308.566 +\label{sec:undo:aaaiiieee} 308.567 + 308.568 +$BJQ99FbMF$r<h$j>C$=$&$H$7$?>l9g$NKX$I$O!"(B 308.569 +\hgcmd{backout} $B%3%^%s%I$NMxMQ$,BEEv$G$9!#(B 308.570 +\hgcmd{backout} $B%3%^%s%I$O!"(B 308.571 +$B85$N%A%'%s%8%;%C%H$N%3%_%C%H$H!"(B 308.572 +$B8e$+$i$=$l$r<h$j>C$7$?:]$NN>J}$K4X$7$F!"(B 308.573 +$B@53N$G1JB3E*$J5-O?$r;D$7$^$9!#(B 308.574 + 308.575 +$B$7$+$7!"Hs>o$K5)$J>u67$G$9$,!"(B 308.576 +$B%j%]%8%H%jCf$KB8:_$7$FM_$7$/$J$$JQ99$r%3%_%C%H$7$F$7$^$&$+$b$7$l$^$;$s!#(B 308.577 +$BNc$($P!"(B 308.578 +$B%=!<%9%U%!%$%k$HF1MM$K%*%V%8%'%/%H%U%!%$%k$r%3%_%C%H$7$F$7$^$&$h$&$J;vBV$O!"(B 308.579 +$BLGB?$KL5$$$N$GDL>o$O!V4V0c$$!W$H$_$J$5$l$^$9!#(B 308.580 +$B%*%V%8%'%/%H%U%!%$%k$K$OK\<AE*$J2ACM$O$"$j$^$;$s$7!"(B 308.581 +$BHs>o$K(B\emph{$B%5%$%:$,Bg$-$$(B}$B$G$9$+$i!"(B 308.582 +$B%j%]%8%H%5%$%:$dJ#@=!?JQ99<h$j9~$_$KMW$9$k;~4V$,A}2C$7$F$7$^$$$^$9!#(B 308.583 + 308.584 +XXXXXXXXXX 308.585 +Before I discuss the options that you have if you commit a ``brown 308.586 +paper bag'' change (the kind that's so bad that you want to pull a 308.587 +brown paper bag over your head), let me first discuss some approaches 308.588 +that probably won't work. 308.589 +XXXXXXXXXX 308.590 + 308.591 +Mercurial $B$OMzNr$r!VC_@QE*$J$b$N!W(B--- 308.592 +$BA4$F$NJQ99$,@h9T$9$kJQ99$N>e$KE,MQ$5$l$k(B---$B$H$7$F07$$$^$9$N$G!"(B 308.593 +$BGK2uE*$J1F6A$r;}$D%A%'%s%8%;%C%H$KBP$7$F$G$"$C$F$b!"(B 308.594 +$B$=$l$rGK4~$9$k$3$H$ODL>o$O$G$-$^$;$s!#(B 308.595 +\ref{sec:undo:rollback}~$B@a$G>\:Y$r=R$Y$^$9$,!"(B 308.596 +$BNc30E*$K(B \hgcmd{rollback} $B%3%^%s%I$r0BA4$K;HMQ$G$-$k$N$O!"(B 308.597 +$BJQ99$r%3%_%C%H$7$?D>8e$G!"(B 308.598 +$BJL$J%j%]%8%H%j$X(B \hgcmd{push} $B$b(B \hgcmd{pull} $B$b$5$l$F$$$J$$>l9g$@$1$G$9!#(B 308.599 + 308.600 +$BITE,@Z$J%A%'%s%8%;%C%H$rB>$N%j%]%8%H%j$X(B 308.601 +\hgcmd{push} $B$7$F$7$^$C$?(B\emph{$B8e$G$b(B}$B!"(B 308.602 +\hgcmd{rollback} $B%3%^%s%I$K$h$j!"(B 308.603 +$B%m!<%+%k$J%j%]%8%H%j$G$=$N%A%'%s%8%;%C%H$rGK4~$9$k$3$H$O$G$-$^$9$,!"(B 308.604 +$B$=$l$O$*$=$i$/K\Mh$d$j$?$+$C$?$3$H$G$OL5$$H&$G$9!#(B 308.605 +$B1s3V%j%]%8%H%jCf$K$OITE,@Z$J%A%'%s%8%;%C%H$,B8:_$7B3$1$^$9$N$G!"(B 308.606 +$B<!$KJQ99$N<h$j9~$_$r9T$C$?:]$K$O!"(B 308.607 +$B$=$NJQ99$,:F$S%m!<%+%k%j%]%8%H%j$K8=$l$k$+$b$7$l$^$;$s!#(B 308.608 + 308.609 +$B$3$N$h$&$J>u67$,H/@8$7$?>l9g!"(B 308.610 +$B$I$N%j%]%8%H%j$,ITE,@Z$J%A%'%s%8%;%C%H$rJ];}$7$F$$$k$+$rGD0.$7$F$$$k$J$i!"(B 308.611 +$B$=$l$i(B\emph{$BA4$F$N(B}$B%j%]%8%H%j$+$i$NITE,@Z$J%A%'%s%8%;%C%H$N=|5n$r!"(B 308.612 +\emph{$B;n$_$k(B}$B$3$H$,2DG=$G$9!#(B 308.613 +$BL^O@!"$3$l$O?=$7J,$NL5$$2rK!$G$O$"$j$^$;$s!#(B 308.614 +$B$?$C$?0l$D$G$bKu>C$7B;$M$?%j%]%8%H%j$,$"$l$P!"(B 308.615 +``$BLn$KJ|$?$l$?(B''$B$^$^$N%A%'%s%8%;%C%H$O99$KEAGE$7$F$7$^$&$G$7$g$&!#(B 308.616 + 308.617 +$B=|5n$7$?$$%A%'%s%8%;%C%H$N(B\emph{$B8e$K(B}$B!"(B 308.618 +$B4v$D$+$N%A%'%s%8%;%C%H$r%3%_%C%H$7$F$7$^$C$?>l9g!"(B 308.619 +$B<h$jF@$kA*Br;h$O99$K8B$i$l$F$7$^$$$^$9!#(B 308.620 +Mercurial $B$O!"(B 308.621 +$B%A%'%s%8%;%C%H$K<j$r$D$1$J$$$^$^$G!"(B 308.622 +$BMzNr$K(B``$B7j$r3+$1$k(B''$B5!G=$ODs6!$7$F$$$^$;$s!#(B 308.623 + 308.624 +XXX This needs filling out. 308.625 +\texttt{examples} $B%G%#%l%/%H%jG[2<$N(B 308.626 +\texttt{hg-replay} $B%9%/%j%W%H$O5!G=$7$^$9$,!"(B 308.627 +$B%A%'%s%8%;%C%H$N%^!<%8$r9T$$$^$;$s!#(B 308.628 +$B=EBg$J<jH4$-$G$9!#(B 308.629 + 308.630 +\subsection{Protect yourself from ``escaped'' changes} 308.631 + 308.632 +$B%m!<%+%k%j%]%8%H%j$K%3%_%C%H$7$?4v$D$+$N%A%'%s%8%;%C%H$,!"(B 308.633 +\hgcmd{push} $B$J$$$7(B \hgcmd{pull} 308.634 +$BEy$K$h$C$F$=$l$i$,B>$N%j%]%8%H%j$X$HH?1G$5$l$?$+$i$H$$$C$F!"(B 308.635 +$B$=$N$3$H<+BN$OI,$:$7$bBg<:GT$H$$$&$o$1$G$O$"$j$^$;$s!#(B 308.636 +$B$"$k<o$NIT@5$J%A%'%s%8%;%C%H$KBP$7$F!"(B 308.637 +$B$"$i$+$8$a<+8JKI1R$9$k$3$H$b2DG=$G$9!#(B 308.638 +$B3+H/%A!<%`$,JQ99$rCf1{$N%j%]%8%H%j$+$i(B \hgcmd{pull} $B$9$k$h$&$JBN@)$N>l9g!"(B 308.639 +$B;v8NKI1R$OHs>o$K4JC1$G$9!#(B 308.640 + 308.641 +$BCf1{$N%j%]%8%H%j$N4v$D$+$N%U%C%/$r!"(B 308.642 +$BDI2C$5$l$k%A%'%s%8%;%C%H$N8!>Z$r9T$&$h$&$K@_Dj$9$k(B 308.643 +$B!J(B\ref{chap:hook}~$B>O$r;2>H$7$F$/$@$5$$!K$3$H$G!"(B 308.644 +$B$"$k<o$NIT@5$J%A%'%s%8%;%C%H$,!"(B 308.645 +$BCf1{%j%]%8%H%j$KA4$/H?1G$5$l$J$$$h$&$K<+F02=$9$k$3$H$,$G$-$^$9!#(B 308.646 +$B@_Dj$,E,@Z$G$"$l$PCf1{$N%j%]%8%H%j$KH?1G$G$-$J$/$J$k$?$a!"(B 308.647 +$B$3$N$h$&$J%A%'%s%8%;%C%H$O<+A3$H(B``$B;`$K@d$((B''$B$^$9!#(B 308.648 +$B$J$*NI$$$3$H$K!"$3$N<jK!$OL@<(E*$J2pF~$rI,MW$H$7$^$;$s!#(B 308.649 + 308.650 +$BNc$($P!"Ev3:%A%'%s%8%;%C%H$,<B:]$K%3%s%Q%$%k2DG=$+$I$&$+$r8!>Z$9$k(B 308.651 +incoming $B%U%C%/$O!"(B 308.652 +$B$&$C$+$j(B``$B%S%k%I$G$-$J$/$7$F$7$^$&(B''$B$3$H$rKI;_$G$-$^$9!#(B 308.653 + 308.654 +\section{Finding the source of a bug} 308.655 +\label{sec:undo:bisect} 308.656 + 308.657 +$B%P%0$r$b$?$i$7$?%A%'%s%8%;%C%H$r(B back out $B$G$-$k$N$OHs>o$K7k9=$J$N$G$9$,!"(B 308.658 +$B$I$N%A%'%s%8%;%C%H$r(B back out $B$9$Y$-$+$rCN$C$F$$$kI,MW$,$"$j$^$9!#(B 308.659 +Mercurial $B$K$O!"(B 308.660 +$B%A%'%s%8%;%C%HFCDj$N<+F02=$HHs>o$K8zN(E*$J<B;\$rJd=u$9$k!"(B 308.661 +\hgext{bisect} $B$H8F$P$l$k=EMW$J3HD%$,$"$j$^$9!#(B 308.662 + 308.663 +$B%A%'%s%8%;%C%H$K$h$kJQ99$O?6$kIq$$$KJQ2=$r$b$?$i$9$N$G!"(B 308.664 +$B$=$NJQ2=$r4JC1$J#2CM%F%9%H$K$h$j$=$l$rFCDj$9$k$3$H$,$G$-$k!"(B 308.665 +$B$H$$$&$N$,(B \hgext{bisect} $B3HD%$N86M}$G$9!#(B 308.666 +$B$I$N%3!<%IJR$,JQ2=$r$b$?$i$7$F$$$k$N$+$O$o$+$i$J$/$F$b!"(B 308.667 +$B%P%0$NM-L5$r;n83$9$kJ}K!$O$o$+$k$G$7$g$&!#(B 308.668 +\hgext{bisect} $B3HD%$O!"(B 308.669 +$B%P%0$N860x$H$J$C$?%3!<%I$r$b$?$i$7$?%A%'%s%8%;%C%H$rC5$9$N$K!"(B 308.670 +$B$"$J$?$N%F%9%H%W%m%0%i%`$rD>@\;HMQ$7$^$9!#(B 308.671 + 308.672 +\hgext{bisect} $B3HD%$NE,MQJ}K!$rM}2r$7$d$9$$$h$&$K!"(B 308.673 +$B4v$D$+$N%7%J%j%*$rNc<($7$^$9!#(B 308.674 + 308.675 +\begin{itemize} 308.676 +\item $B?t=54VA0$K$O8+$i$l$J$+$C$?%P%0$,!":G?7$NHG$GH/8+$5$l$^$7$?$,!"(B 308.677 + $B2?;~$=$l$,:.F~$5$l$?$N$+$,$o$+$j$^$;$s!#(B 308.678 + $B$3$N>l9g!"(Bbinary test $B$G%P%0$NM-L5$rD4$Y$k$3$H$,$G$-$^$9(B 308.679 + \footnote{$BLuCm(B: $B!V%P%0$NM-L5!W$H$$$CM$rH=Dj$9$k%F%9%H$rMQ$$$k$3$H$G!"(B 308.680 + $B%P%0$N:.F~$7$?%A%'%s%8%;%C%H$rC5$7$^$9(B}$B!#(B 308.681 + 308.682 +\item $BBg5^$.$G%P%0$r=$@5$7!"(B 308.683 + $B3+H/%A!<%`$N%P%0%G!<%?%Y!<%9$N>uBV$r!V%/%m!<%:!W$K$G$-$k$h$&$K$J$j$^$7$?!#(B 308.684 + $B!V%/%m!<%:!W>uBV$K$9$k:]$K!"(B 308.685 + $B%P%0%G!<%?%Y!<%9$,%A%'%s%8%;%C%H(BID$B$r5a$a$F$-$^$7$?$,!"(B 308.686 + $B$I$N%A%'%s%8%;%C%H$G%P%0$r=$@5$7$?$N$+3P$($F$$$^$;$s$G$7$?!#(B 308.687 + $B$3$3$G:F$S(B binary test $B$G%P%0$NM-L5$rD4$Y$k$3$H$,$G$-$^$9!#(B 308.688 + 308.689 +\item $B%=%U%H%&%'%"$,@5$7$/F0:n$7$F$$$^$9$,!"(B 308.690 + $B0JA07WB,$7$?;~$h$j$b(B 15\% $BCY$/$J$C$F$^$7$?!#(B 308.691 + $B$I$N%A%'%s%8%;%C%H$,@-G=Dc2<$NMW0x$H$J$C$F$$$k$N$+$rCN$j$?$$$G$9!#(B 308.692 + $B$3$N>l9g!"(Bbinary test $B$O%=%U%H%&%'%"$N@-G=$r7WB,$7!"(B 308.693 + ``$BAa$$(B''$B$N$+(B``$BCY$$(B''$B$N$+$rH=Dj$7$^$9!#(B 308.694 + 308.695 +\item $B$3$3:G6a!"(B 308.696 + $B=P2Y$7$?%W%m%8%'%/%H$N9=@.MWAG$N%5%$%:$,GzH/E*$KBg$-$/$J$C$F$$$F!"(B 308.697 + $B%W%m%8%'%/%H$N%S%k%I<j=g$N2?$i$+$,JQ99$5$l$?$N$G$O$J$$$+$H?dB,$7$F$$$^$9(B 308.698 + \footnote{$BLuCm(B: $B%S%k%I7k2L$N!V9=@.MWAG%5%$%:$NBg>.!W(B 308.699 + $B$H$$$CM$rH=Dj$9$k%F%9%H$rMQ$$$k$3$H$G!"(B 308.700 + $BJQ99$,:.F~$5$l$?%A%'%s%8%;%C%H$rC5$7$^$9(B}$B!#(B 308.701 + 308.702 +\end{itemize} 308.703 + 308.704 +$B$3$l$i$NNc$+$i!"(B 308.705 +\hgext{bisect} $B3HD%$,%P%0$N85$rC5$9$@$1$N$b$N$G$J$$$3$H$OL@$i$+$G$7$g$&!#(B 308.706 +$B$=$NFC@-$K4X$9$k#2CM%F%9%H$r=q$1$k$J$i!"(B 308.707 +$B%j%]%8%H%j$K$*$1$k(B 308.708 +$B!J%=!<%9%D%j!<Cf$N%U%!%$%k$KBP$9$kC1=c$JJ8;zNs8!:w$G$OC5$7=P$;$J$$!K(B 308.709 +$BG$0U$N(B``$BFC@-$N=P8=(B''$B$rC5$7=P$9$3$H$,$G$-$^$9!#(B 308.710 + 308.711 +$BMxMQ<T$H(B Mercurial $B$N$=$l$>$l$,!"(B 308.712 +$B8!:w=hM}$K$*$$$F$I$NItJ,$K@UG$$rIi$&$N$+$r$O$C$-$j$H$5$;$k$?$a$K!"(B 308.713 +$B$3$3$G$b$&>/$7MQ8l$N@bL@$r$7$^$7$g$&!#(B 308.714 +\emph{$B%F%9%H(B}(test)$B$H$O!"(B 308.715 +\hgext{bisect} $B3HD%$,%A%'%s%8%;%C%H$rA*Br$9$k:]$K!"(B 308.716 +\emph{$BMxMQ<T(B}$B$,<B9T$9$k$b$N$G$9!#(B 308.717 +\emph{$BD4::(B}(probe)$B$H$O!"(B 308.718 +$B$"$k%j%S%8%g%s$NNIH]$rH=Dj$9$k$?$a$K(B \hgext{bisect} $B$,<B9T$9$k$b$N$G$9!#(B 308.719 +$B:G8e$K!"(B 308.720 +``bisect'' $B$H$$$&8@MU$r!"(B 308.721 +``\hgext{bisect} $B3HD%$rMQ$$$?8!:w(B''$B$NBeMQ$H$7$F!"(B 308.722 +$BL>;l$*$h$SF0;l$H$7$F;HMQ$7$^$9!#(B 308.723 + 308.724 +$B8!:w=hM}$r<+F02=$9$k4JC1$JJ}K!$N0l$D$,!"(B 308.725 +$BA4$F$N%A%'%s%8%;%C%H$rD4::$9$k8/$jJ}$G$9!#(B 308.726 +$B$7$+$7$J$,$i!"$3$N8/$jJ}$K$OKX$I%9%1!<%i%S%j%F%#$,$"$j$^$;$s!#(B 308.727 +$B#1$D$N%A%'%s%8%;%C%H$N%F%9%H$K#1#0J,I,MW$G!"(B 308.728 +$B%j%]%8%H%j$K#1K|$N%A%'%s%8%;%C%H$,$"$C$?$H$9$k$H!"(B 308.729 +$BE0DlE*$KD4::$9$k8/$jJ}$G$O!"(B 308.730 +$B%P%0$r$b$?$i$7$?%A%'%s%8%;%C%H$r8+$D$1$k$N$K!"(B 308.731 +$BJ?6Q$G#3#5(B~\emph{$BF|(B}$BI,MW$G$9!#(B 308.732 +$B8!:wBP>]$r:G?7$N#5#0#0%A%'%s%8%;%C%H$K8BDj$G$-$k$H$7$F$b!"(B 308.733 +$B%P%0$r$b$?$i$7$?%A%'%s%8%;%C%H$r8+$D$1$k$N$K$O!"(B 308.734 +$B$=$l$G$b$J$*#4#0;~4VI,MW$G$9!#(B 308.735 + 308.736 +\emph{bisect} $B3HD%$O!"(B 308.737 +$B3NG'$9$k%A%'%s%8%;%C%H?t$KBP$7$F(B\emph{$BBP?t(B}$B$N%*!<%@!<$G8!:w(B 308.738 +$B!J$3$N<o$N8!:w$O(B``$BFsJ,C5:w(B''$B$H8F$P$l$^$9!K$G$-$k$h$&$K!"(B 308.739 +$B%W%m%8%'%/%HMzNr$N(B``$B7A(B''$B$K4X$9$k>pJs$rMxMQ$7$^$9!#(B 308.740 +$B$3$NJ}K!$K$h$j!"(B 308.741 +$B2>$K%F%9%H$"$?$j$N=jMW;~4V$,#1#0J,3]$+$k$H$7$F$b!"(B 308.742 +$B#1K|%A%'%s%8%;%C%H$KBP$9$k8!:w$O#2;~4V0JFb$G=*$o$j$^$9!#(B 308.743 +$B8!:wBP>]$r:G?7$N#5#0#0%A%'%s%8%;%C%H$K8BDj$G$-$k$J$i$P!"(B 308.744 +$B#1;~4V0JFb$K8!:w$G$-$k$G$7$g$&!#(B 308.745 + 308.746 +\hgext{bisect} $B3HD%$O!"(B 308.747 +Mercurial $B$G4IM}$5$l$F$$$k%W%m%8%'%/%H$NMzNr$N;}$D(B 308.748 +``$B;^J,$+$l(B''$B$NFC<A$r$o$+$C$F$$$^$9$N$G!"(B 308.749 +$B%j%]%8%H%j$K$*$1$k;^J,$+$l!&%^!<%8!&J#?t%X%C%I$N07$$$bLdBj$"$j$^$;$s!#(B 308.750 +$BC10l$ND4::$GMzNr$N;^J,$+$lA4BN$r4"$j<h$k(B\footnote{$BLuCm(B: 308.751 +$B!V;^J,$+$l@hA4BN$r8!:wBP>]$+$i=|30$9$k!W$N0U(B}$B$3$H$,$G$-$k$?$a!"(B 308.752 +\hgext{bisect} $B3HD%$O8zN(E*$K8!:w$9$k$3$H$,$G$-$k$N$G$9!#(B 308.753 + 308.754 +\subsection{Using the \hgext{bisect} extension} 308.755 + 308.756 +$B$3$3$G$O(B \hgext{bisect} $B3HD%$N<B9TNc$r<($7$^$9!#(B 308.757 +Mercurial $B<+BN$N4JJX@-$r0];}$9$k$?$a$K!"(B 308.758 +\hgext{bisect} $B$O3HD%5!G=$H$7$FDs6!$5$l$^$9!#(B 308.759 +$B$=$N$?$a!"L@<(E*$KM-8z$K$7$J$1$l$P!"$=$N5!G=$ODs6!$5$l$^$;$s!#(B 308.760 +\hgext{bisect} $B3HD%$rM-8z$K$9$k$K$O!"(B 308.761 +$B!JB8:_$7$J$$>l9g$K$O!K(B \hgrc\ $B$K0J2<$N%;%/%7%g%s%X%C%@$rDI2C$7!'(B 308.762 + 308.763 +\begin{codesample2} 308.764 + [extensions] 308.765 +\end{codesample2} 308.766 + 308.767 +$BB3$$$F!"(B\hgext{bisect} $B3HD%$rM-8z2=$9$k$?$a$N9T$r$3$N%;%/%7%g%s$KDI2C$7$^$9(B 308.768 +\footnote{1.0 $BHG0J9_$N(B Mercurial $B$G$O!"(B 308.769 +\hgext{bisect} $B5!G=$O4pK\5!G=$K<h$j9~$^$l$F$$$^$9$N$G!"(B 308.770 +$B!V3HD%5!G=$NM-8z2=!W$OITMW$G$9(B}$B!#(B 308.771 + 308.772 +\begin{codesample2} 308.773 + hbisect = 308.774 +\end{codesample2} 308.775 + 308.776 +\begin{note} 308.777 + \hgext{bisect} $B3HD%$NL>A0$N@hF,$K(B``\texttt{h}''$B$,IU$/$N$O4V0c$C$F$$$^$;$s!#(B 308.778 + $B$3$NJ8;z$,IU$/$N$O!"(BMercurial $B$,(B Python $B$G<BAu$5$l$F$$$F!"(B 308.779 + Python $B$NI8=`%i%$%V%i%j$N(B \texttt{bisect} $B$r;HMQ$7$F$$$k$?$a$G$9!#(B 308.780 + $B8m$C$F(B ``\texttt{hbisect}''$B$+$i(B``\texttt{h}''$B$r>JN,$7$?>l9g!"(B 308.781 + \hgrc $B%U%!%$%k$N5-=R$N%9%Z%k$r=$@5$9$k$^$G$O!"(B 308.782 + Mercurial $B$O(B Python $BI8=`$N(B \texttt{bisect} $B%Q%C%1!<%8$r8+$D$1=P$7!"(B 308.783 + $B$=$l$r(B Mercurial $B3HD%$H$7$FMxMQ$7$h$&$H$7$F%/%i%C%7%e$7B3$1$k$3$H$G$7$g$&!#(B 308.784 +\end{note} 308.785 + 308.786 +\hgext{bisect} $B3HD%$r3VN%$7$FMxMQ$9$k$?$a$K!"(B 308.787 +$B%j%]%8%H%j$r:n@.$7$^$7$g$&!#(B 308.788 + 308.789 +\interaction{bisect.init} 308.790 + 308.791 +$B%k!<%W$K$h$C$F4v$D$+$N:3:Y$JJQ99$r9T$$!"(B 308.792 +$B$=$NCf$NFCDj$NJQ99$,(B``$B%P%0(B''$B$r;}$D$h$&$K$9$k!"(B 308.793 +$B$H$$$&C1=c$JJ}K!$G!"(B 308.794 +$B%P%0$r;}$C$?%W%m%8%'%/%H$N%7%_%e%l!<%7%g%s$r9T$$$^$9!#(B 308.795 +$B$3$N%k!<%W$O(B 50 $B$N%A%'%s%8%;%C%H$r@8@.$7!"(B 308.796 +$B$=$l$>$l$,#1$D$N%U%!%$%k$r%j%]%8%H%j$KDI2C$7$^$9!#(B 308.797 +$B$3$3$G$O!"(B 308.798 +$B%U%!%$%k$,(B``i have a gub''$B$H$$$&%F%-%9%H$r4^$s$G$$$k$3$H$r$b$C$F!"(B 308.799 +``$B%P%0(B''$B$H$_$J$7$^$9!#(B 308.800 + 308.801 +\interaction{bisect.commits} 308.802 + 308.803 +$B$=$l$G$O!"(B\hgext{bisect} $B3HD%$N;HMQJ}K!$rM}2r$7$^$7$g$&!#(B 308.804 +\hgext{bisect} $B3HD%$K4X$7$F$b!"(B 308.805 +$BDL>o$N(B Mercurial $B$NAH$_9~$_(B help $B5!G=$,;HMQ$G$-$^$9!#(B 308.806 + 308.807 +\interaction{bisect.help} 308.808 + 308.809 +\hgext{bisect} $B3HD%$OCJ3,$rF'$s$G5!G=$7$^$9!#(B 308.810 +$B3FCJ3,$O0J2<$N$h$&$K?J$_$^$9!#(B 308.811 + 308.812 +\begin{enumerate} 308.813 +\item $B#2CM%F%9%H$r<B9T$7$^$9!#(B 308.814 + \begin{itemize} 308.815 + \item $B%F%9%H$,@.8y$7$?>l9g!"(B 308.816 + \hgcmdargs{bisect}{good} $B%3%^%s%I$K$h$j(B 308.817 + \hgext{bisect} $B3HD%$K$=$N$3$H$rEA$($^$9!#(B 308.818 + \item $B%F%9%H$,<:GT$7$?>l9g!"(B 308.819 + \hgcmdargs{bisect}{bad} $B%3%^%s%I$K$h$j(B 308.820 + \hgext{bisect} $B3HD%$K$=$N$3$H$rEA$($^$9!#(B 308.821 + \end{itemize} 308.822 +\item \hgext{bisect} $B3HD%$OEA$($i$l$?>pJs$r85$K!"(B 308.823 + $B<!$K%F%9%H$9$Y$-%A%'%s%8%;%C%H$r7hDj$7$^$9!#(B 308.824 + 308.825 +\item \hgext{bisect} $B3HD%$O!"(B 308.826 + $B:n6HNN0h%G%#%l%/%H%j$r$=$N%A%'%s%8%;%C%H$G99?7$7$^$9$N$G!"(B 308.827 + $B0J>e$N<j=g$r7+$jJV$7$^$9!#(B 308.828 + 308.829 +\end{enumerate} 308.830 + 308.831 +$B#2CM%F%9%H$N7k2L$,(B``$B@.8y(B''$B$+$i(B``$B<:GT(B''$B$KJQ2=$7$?E@$r<($9!"(B 308.832 +$B0l0U$J%A%'%s%8%;%C%H$r(B \hgext{bisect} $B3HD%$,FCDj$G$-$?;~E@$G!"(B 308.833 +$B$3$N<j=g$O=*N;$7$^$9!#(B 308.834 + 308.835 +$B8!:w$N3+;O$KEv$?$C$F$O!"(B 308.836 +\hgcmdargs{bisect}{init} $B%3%^%s%I$N<B9T$,I,MW$G$9!#(B 308.837 + 308.838 +\interaction{bisect.search.init} 308.839 + 308.840 +$B:#2s$N<B9TNc$G;HMQ$9$k#2CM%F%9%H$O4JC1$J$b$N$G!"(B 308.841 +$B%j%]%8%H%jCf$N2?$l$+$N%U%!%$%k$,(B 308.842 +``i have a gub'' $BJ8;zNs$r4^$s$G$$$k$+H]$+$rH=Dj$7$^$9!#(B 308.843 +$B4^$s$G$$$k>l9g!"$=$N%A%'%s%8%;%C%H$O(B 308.844 +``$B%P%0$NMW0x$H$J$k(B''$B%A%'%s%8%;%C%H$G$9!#(B 308.845 +$B47=,>e!"(B 308.846 +$B8!:wBP>]$H$J$kFC@-$r;}$C$F$$$k%A%'%s%8%;%C%H$r(B ``bad''$B!"(B 308.847 +$B;}$C$F$$$J$$%A%'%s%8%;%C%H$r(B ``good'' $B$H8F$S$^$9!#(B 308.848 +$BB?$/$N>l9g!"(B 308.849 +$B:n6HNN0h%G%#%l%/%H%j$,F14|$7$F$$$k%j%S%8%g%s!JDL>o$O(B tip$B!K(B 308.850 +$B$O%P%0$r;}$D%A%'%s%8%;%C%H$K$h$jLdBj$rJz$($F$$$k$b$N$G$9$+$i!"(B 308.851 +$B$3$l$r(B``bad''$B$H$_$J$7$^$9!#(B 308.852 + 308.853 +\interaction{bisect.search.bad-init} 308.854 + 308.855 +$B<!$N:n6H$O!"(B 308.856 +$B%P%0$,(B\emph{$BL5$$(B}$B%A%'%s%8%;%C%H$r;XDj$9$k$3$H$G$9!#(B 308.857 +\hgext{bisect} $B3HD%$O(B 308.858 +$B:G=i$N(B ``good'' $B$H(B ``bad'' $B$N%A%'%s%8%;%C%H4V$N8!::>u67$r(B 308.859 +``$B3g8L(B''$B$G3g$C$FI=<($9$k$G$7$g$&!#(B 308.860 +$B:#2s$N;vNc$G$O!"(B 308.861 +$B%j%S%8%g%s(B 10 $B$K$O%P%0$,$"$j$^$;$s(B 308.862 +$B!J:G=i$N(B ``good'' $B%A%'%s%8%;%C%H$NA*Br$K4X$7$F$O!"(B 308.863 +$B8e$[$IJdB-$,$"$j$^$9!K!#(B 308.864 + 308.865 +\interaction{bisect.search.good-init} 308.866 + 308.867 +$B%3%^%s%I=PNO$K$O0J2<$N0UL#$,$"$j$^$9!#(B 308.868 + 308.869 +\begin{itemize} 308.870 +\item $B%P%0$r$b$?$i$7$?%A%'%s%8%;%C%H$NFCDj$^$G$K!"(B 308.871 + $B$I$l$@$1$N%A%'%s%8%;%C%H$KBP$7$F9MN8$,I,MW$G$"$k$+!"(B 308.872 + $B$^$?!"$I$l$@$1$N%F%9%H$rMW5a$9$k$+$rI=<($7$^$9!#(B 308.873 + 308.874 +\item \hgext{bisect} 308.875 + $B3HD%$O<!$K%F%9%H$9$Y$-%A%'%s%8%;%C%H$X$H:n6HNN0h%G%#%l%/%H%j$r99?7$7!"(B 308.876 + $B$I$N%A%'%s%8%;%C%H$,%F%9%HBP>]$G$"$k$N$+$rI=<($7$^$9!#(B 308.877 + 308.878 +\end{itemize} 308.879 + 308.880 +$BAaB.:n6HNN0h%G%#%l%/%H%j$G%F%9%H$r$7$F$_$^$7$g$&!#(B 308.881 +\command{grep} $B$r;HMQ$7$F!"(B 308.882 +$B:n6HNN0h%G%#%l%/%H%j$N(B``bad''$B%U%!%$%k$NM-L5$rD4$Y!"(B 308.883 +$B%U%!%$%k$,L5$1$l$P$=$N%j%S%8%g%s$O(B``good''$B$G$9!#(B 308.884 + 308.885 +\interaction{bisect.search.step1} 308.886 + 308.887 +$B$3$N%F%9%H$O40A4$K<+F02=$G$-$=$&$G$9$N$G!"(B 308.888 +$B%7%'%k4X?t$K$7$F$7$^$$$^$7$g$&!#(B 308.889 + 308.890 +\interaction{bisect.search.mytest} 308.891 + 308.892 +$B$3$l$G!"(B 308.893 +$B%F%9%H<j=gA4BN$rC10l$N(B 308.894 +\texttt{mytest} $B%3%^%s%I$G<B9T$G$-$^$9!#(B 308.895 + 308.896 +\interaction{bisect.search.step2} 308.897 + 308.898 +$B%F%9%H<j=g$,5-O?$5$l$?%3%^%s%I$r$"$H?t2s5/F0$9$k$3$H$G!"(B 308.899 +$BEv=i$NL\E*$,C#@.$5$l$^$9!#(B 308.900 + 308.901 +\interaction{bisect.search.rest} 308.902 + 308.903 +40 $BDx$N%A%'%s%8%;%C%HA4BN$N8!:w$K$b4X$o$i$:!"(B 308.904 +\hgext{bisect} 308.905 +$B3HD%$O$o$:$+#52s$N%F%9%H$G(B``$B%P%0(B''$B$r$b$?$i$7$?%A%'%s%8%;%C%H$rFCDj$G$-$^$7$?!#(B 308.906 +$BD4::BP>]%A%'%s%8%;%C%H?t$KBP$7$F!"(B 308.907 +\hgext{bisect} $B3HD%$OBP?t$N%*!<%@!<$G%F%9%HBP>]$rA*Dj$9$k$N$G!"(B 308.908 +$B%A%'%s%8%;%C%H$rDI2C$7$?$@$1%F%9%H2s?t$,A}2C$9$k(B 308.909 +``$BNO?T$/(B''$B$N<jK!$h$j$bM-Mx$G$9!#(B 308.910 + 308.911 +\subsection{Cleaning up after your search} 308.912 + 308.913 +$B%j%]%8%H%j$K$*$1$k(B \hgext{bisect} $B3HD%$N;HMQ$,=*$o$C$?$J$i!"(B 308.914 +$B8!:w$K;HMQ$7$F$$$?>pJs$r(B 308.915 +\hgcmdargs{bisect}{reset} $B%3%^%s%I$K$h$jGK4~$9$k$3$H$,$G$-$^$9!#(B 308.916 +\hgext{bisect} $B3HD%$O$=$l$[$IB?$/$NNN0h$r>CHq$9$k$o$1$G$O$"$j$^$;$s$N$G!"(B 308.917 +$B$3$N:n6H$rK:$l$F$bLdBj$K$O$J$j$^$;$s!#(B 308.918 +$B$7$+$7!"(B\hgcmdargs{bisect}{reset} $B$r<B9T$9$k$^$G$O!"(B 308.919 +\hgext{bisect} $B$O$=$N%j%]%8%H%j$GJL$N8!:w$r3+;O$5$;$F$/$l$^$;$s!#(B 308.920 + 308.921 +\interaction{bisect.search.reset} 308.922 + 308.923 +\section{Tips for finding bugs effectively} 308.924 + 308.925 +\subsection{Give consistent input} 308.926 + 308.927 +\hgext{bisect} $B3HD%$K$O!"(B 308.928 +$B<B;\$7$?A4$F$N%F%9%H$N7k2L$,@5$7$/;XDj$5$l$J$1$l$P$J$j$^$;$s!#(B 308.929 +$BK\Ev$O%F%9%H$,@.8y$7$F$$$?$K$b4X$o$i$:!"(B 308.930 +$B%F%9%H$N<:GT$r(B \hgext{bisect} $B3HD%$KEA$($?>l9g!"(B 308.931 +$BL7=b$7$?7k2L$r=P$9(B\emph{$B$+$b(B}$B$7$l$^$;$s!#(B 308.932 +$B%F%9%H7k2L$KBP$7$FL7=b$,8!CN$5$l$?>l9g!"(B 308.933 +\hgext{bisect} $B$O!"(B 308.934 +$BFCDj$N%A%'%s%8%;%C%H$,(B``good''$B$G$b(B``bad''$B$G$b$"$k!"(B 308.935 +$B$H8@$C$F$-$^$9!#(B 308.936 +$B$7$+$7!"$3$N8!CN$O40`z$K9T$o$l$k$o$1$G$O$J$$$N$G!"(B 308.937 +$B4V0c$C$?%A%'%s%8%;%C%H$r%P%0$NMW0x$H$7$FJs9p$9$k$G$7$g$&!#(B 308.938 + 308.939 +\subsection{Automate as much as possible} 308.940 + 308.941 +$BI.<T$,(B \hgext{bisect} $B3HD%$r;H$$;O$a$?:"$O!"(B 308.942 +$B8!:w$N$?$a$N%F%9%H$r%3%^%s%I%i%$%s$G<jF0$G<B9T$7$F$$$^$7$?$,!"(B 308.943 +$B>/$J$/$H$b;d$K$O!"$3$N<jK!$OFk@w$_$^$;$s!#(B 308.944 +$B2?EY$+(B \hgext{bisect} $B$r;HMQ$7$?8e$G!"(B 308.945 +$B:G=*E*$K@5$7$$7k2L$rF@$kA0$K!"(B 308.946 +$B$$$D$b<j0c$$$N$?$a$K2?EY$b8!:w$r$d$jD>$7$F$$$k$3$H$K5$IU$-$^$7$?!#(B 308.947 + 308.948 +\hgext{bisect} $B3HD%$r<jF0$G6nF0$7$F$$$?:]$K$O!"(B 308.949 +$B>.$5$J%j%]%8%H%j$K$*$1$kC1=c$J8!:w$G$"$C$F$bLdBj$,H/@8$7$F$$$^$7$?!#(B 308.950 +$B%F%9%H$NFbMF$,J#;($G$"$C$?$j!"(B 308.951 +\hgext{bisect} $B$,MW5a$9$k%F%9%H<B9T2s?t$,A}$($l$P!"(B 308.952 +$B$=$l$@$1%F%9%H<B9T$K$*$1$kA`:n%_%9$N2DG=@-$O9b$^$j$^$9!#(B 308.953 +$B%F%9%H$r<+F02=$9$k$h$&$K$J$C$F0JMh!"(B 308.954 +$BHs>o$KNI9%$J7k2L$rF@$i$l$F$$$^$9!#(B 308.955 + 308.956 +$B%F%9%H<+F02=$N$?$a$N80$O#2$D$"$j$^$9!#(B 308.957 + 308.958 +\begin{itemize} 308.959 +\item $B>o$KF1$8!V>I>u!W$r%F%9%H$9$k$3$H$H!"(B 308.960 +\item $B>o$K0l4S$7$?F~NO$r(B \hgcmd{bisect} $B%3%^%s%I$KM?$($k$3$H(B 308.961 +\end{itemize} 308.962 + 308.963 +$BA0=R$N<B9TNc$G$O!"(B 308.964 +\command{grep} $B%3%^%s%I$K$h$j!V>I>u!W$rD4$Y$F$$$F!"(B 308.965 +\texttt{if} $B%9%F!<%H%a%s%H$,!V8!::!W$N7k2L$r<u$1$F(B 308.966 +\hgcmd{bisect} $B%3%^%s%I$KF1$8F~NO$rM?$($k$3$H$rJ]>Z$7$F$$$^$7$?!#(B 308.967 +\texttt{mytest} $B4X?t$,!"(B 308.968 +$B$3$l$i$r:F8=$7$d$9$$7A<0$KE}9g$7$?$3$H$G!"(B 308.969 +$BA4$F$N%F%9%H$,6Q0l$G@09g@-$N<h$l$?$b$N$K$J$C$F$$$^$9!#(B 308.970 + 308.971 +\subsection{Check your results} 308.972 + 308.973 +\hgext{bisect} $B$K$h$k8!:w$N=PNO7k2L$OM?$($?>pJsDxEY$K$7$+@5$7$/$J$$$N$G!"(B 308.974 +\hgext{bisect} $B$K$h$j(B ``good'' $B$HJs9p$5$l$?%A%'%s%8%;%C%H$r!"(B 308.975 +$B@dBPE*$K@5$7$$$b$N$H$_$J$5$J$$$G$/$@$5$$!#(B 308.976 +$BJs9pFbMF$r%/%m%9%A%'%C%/$9$k4JC1$JJ}K!$O!"(B 308.977 +$B0J2<$N$h$&$J%A%'%s%8%;%C%H$N$=$l$>$l$KBP$7$F!"(B 308.978 +$B<jF0$G<+?H$N%F%9%H$r<B9T$7$F$_$k$3$H$G$9!#(B 308.979 + 308.980 +\begin{itemize} 308.981 +\item $B:G=i$N(B ``bad'' $B%j%S%8%g%s$G$"$k$HJs9p$5$l$?$b$N(B 308.982 + $B!J0J2<!"!V>c32%A%'%s%8%;%C%H!W$H8F>N!K!#(B 308.983 + $B$"$J$?$N%F%9%H$O$3$l$K4X$7$F(B ``bad'' $B$HJs9p$7$J$1$l$P$J$j$^$;$s!#(B 308.984 + 308.985 +\item $B>e5-%A%'%s%8%;%C%H$N?F%A%'%s%8%;%C%H(B 308.986 + $B!J%^!<%8$5$l$?>l9g$ON>J}$N?F!K!#(B 308.987 + $B$"$J$?$N%F%9%H$O$3$l!J$3$l$i!K$K4X$7$F(B ``good'' $B$HJs9p$7$J$1$l$P$J$j$^$;$s!#(B 308.988 + 308.989 +\item $B>c32%A%'%s%8%;%C%H$N;R%A%'%s%8%;%C%H!#(B 308.990 + $B$"$J$?$N%F%9%H$O$3$l$K4X$7$F(B ``bad'' $B$HJs9p$7$J$1$l$P$J$j$^$;$s!#(B 308.991 + 308.992 +\end{itemize} 308.993 + 308.994 +\subsection{Beware interference between bugs} 308.995 + 308.996 +$B$"$k%P%0$rC5$9:]$K!"(B 308.997 +$BB>$N%P%0$NB8:_$K$h$j:.Mp$5$;$i$l$k2DG=@-$b$"$j$^$9!#(B 308.998 +$BNc$($P!"(B 308.999 +$B%j%S%8%g%s(B 100 $B$G%=%U%H%&%'%"$,%/%i%C%7%e$7!"(B 308.1000 +$B%j%S%8%g%s(B 50 $B$G$O@5$7$/F0:n$7$F$$$?$H$7$^$9!#(B 308.1001 +$B$"$J$?$NCN$i$J$$4V$K!"(B 308.1002 +$B%=%U%H%&%'%"$r%/%i%C%7%e$5$;$kJL$N%P%0$r!"(B 308.1003 +$BB>$N?M$,%j%S%8%g%s(B 60 $B$GF~$l$F$7$^$$!"(B 308.1004 +$B$=$l$r%j%S%8%g%s(B 80 $B$G=$@5$7$?>l9g!"(B 308.1005 +$B$J$s$i$+$NJ}K!$G8!:w7k2L$r:.Mp$5$;$k$+$b$7$l$^$;$s!#(B 308.1006 + 308.1007 +$BB>$N%P%0$NB8:_$K$h$C$F!"(B 308.1008 +$BC5$7$F$$$k%P%0$,40A4$K(B``$BJ$$$1#$5$l$k(B''$B$+$b$7$l$:!"(B 308.1009 +$BC5$7$F$$$k%P%0$,$=$NB8:_$r<($95!2q$rF@$kA0$KB>$N%P%0$,H/@8$7$F$$$k!"(B 308.1010 +$B$H8@$($^$9!#(B 308.1011 +$BB>$N%P%0$r2sHr$7$?%F%9%H$,(B 308.1012 +$B!JNc$($P!"$=$N%P%0$,%W%m%8%'%/%H$N%S%k%I$rAK32$9$k$J$I$NM}M3$G!K(B 308.1013 +$B$G$-$J$$$?$a$K!"(B 308.1014 +$BFCDj$N%A%'%s%8%;%C%H$K$*$1$k8!:wBP>]$N%P%0$NM-L5$rL@8@$G$-$J$$>l9g!"(B 308.1015 +\hgext{bisect} $B3HD%$N=u$1$rD>@\<u$1$k$3$H$O$G$-$^$;$s!#(B 308.1016 +$B$=$NBX$o$j!"(B 308.1017 +$BB>$N%P%0$,B8:_$9$k%A%'%s%8%;%C%H$r<jF0$G<h$j=|$/$3$H$G!"(B 308.1018 +``$B<~JU(B''$B$G$NJL$J8!:w$r9T$$$^$7$g$&!#(B 308.1019 + 308.1020 +$B%P%0$NB8:_$K4X$9$k%F%9%H$,==J,L@3N$G$J$$>l9g$K$O!"(B 308.1021 +$BJL$JLdBj$,H/@8$7F@$^$9!#(B 308.1022 +``$B%W%m%0%i%`$N%/%i%C%7%e(B''$B$G%P%0$NM-L5$r3NG'$7$F$$$k>l9g!"(B 308.1023 +$B%=%U%H%&%'%"$r%/%i%C%7%e$5$;$kA4A34X78$J$$%P%0$K$h$j!"(B 308.1024 +$B8!:wBP>]$G$"$k%P%0$,J$$$1#$5$l$F$7$^$$!"(B 308.1025 +$BN>J}$H$bF1$8$b$N$H$_$J$5$l$k$?$a$K!"(B 308.1026 +\hgext{bisect} $B$,OG$o$5$l$F$7$^$$$^$9!#(B 308.1027 + 308.1028 +\subsection{Bracket your search lazily} 308.1029 + 308.1030 +$B8!:w$K$*$1$k=*C<$N0u$H$J$k(B 308.1031 +``good'' $B$*$h$S(B ``bad'' $B$J%A%'%s%8%;%C%H$N:G=i$NA*Br$O!"(B 308.1032 +$BDL>o$O4JC1$J$3$H$G$9$,!"(B 308.1033 +$B$=$&$G$"$C$F$bB?>/$O5DO@$NM>CO$,$"$j$^$9!#(B 308.1034 +\hgext{bisect} $B$NN)>l$+$i8+$?>l9g!"(B 308.1035 +``$B:G?7(B''$B$N%A%'%s%8%;%C%H$ODLNc$G$O(B``bad''$B$G!"(B 308.1036 +$B:G8E$N%A%'%s%8%;%C%H$O(B``good''$B$G$9!#(B 308.1037 + 308.1038 +\hgext{bisect} $B$N;HMQ$KEv$?$C$F(B 308.1039 +``good''$B$K$U$5$o$7$$%A%'%s%8%;%C%H$,$I$l$+$r;W$$=P$9$N$,Fq$7$$>l9g$K$O!"(B 308.1040 +$B$G$?$i$a$K%F%9%H$9$k$N$b0-$/$O$J$$$G$7$g$&!#(B 308.1041 +$B$I$&$"$C$F$b%P%0$NC{8u$,8+=P$;$J$$(B 308.1042 +$B!JNc$($P!"%P%0$NH/@8$K4XO"$9$k5!G=$,$^$@Ds6!$5$l$F$$$J$$!K$b$N$d!"(B 308.1043 +$BB>$NLdBj$,!JA0=R$7$?$h$&$K!K%P%0$rJ$$$1#$7$F$7$^$&$h$&$J$b$N$r!"(B 308.1044 +$B%F%9%H8uJd$N%A%'%s%8%;%C%H$+$i=|30$9$k$N$rK:$l$J$$$h$&$K$7$^$7$g$&!#(B 308.1045 + 308.1046 +$B?t@i$N%A%'%s%8%;%C%H!"(B 308.1047 +$B$J$$$7?t%v7n$NMzNr$N(B``$B=i4|(B''$B$N$b$N$,:G=*7k2L$@$C$?$H$7$F$b!"(B 308.1048 +$BBP?t%*!<%@!<$N?6$kIq$$$N$*1"$G!"(B 308.1049 +\hgext{bisect} $B$,<B;\$7$J$1$l$P$J$i$J$$Am2s?t$,?t2sA}$($k$@$1$G$9!#(B 308.1050 + 308.1051 +%%% Local Variables: 308.1052 +%%% mode: latex 308.1053 +%%% TeX-master: "00book" 308.1054 +%%% End:
309.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 309.2 +++ b/ja/variant.el Fri Aug 14 12:10:47 2009 -0700 309.3 @@ -0,0 +1,54 @@ 309.4 +(setq wellknown 309.5 + '(("write" "$B<BAu(B") 309.6 + ("writing" "$B<BAu(B") 309.7 + 309.8 + ("tarball" "tarball") 309.9 + 309.10 + ("patch queue" "$B%Q%C%A%-%e!<(B(?)") 309.11 + ("patch" "$B%Q%C%A(B") 309.12 + ("patches" "$B%Q%C%A(B") 309.13 + 309.14 + ("extension" "$B%$%/%9%F%s%7%g%s(B") 309.15 + ("daemon" "$B%G!<%b%s(B") 309.16 + 309.17 + ("configuration item" "$B@_Dj9`L\(B") 309.18 + ("by default" "$B4pDlF0:n(B") ;; !$B4{Dj(B 309.19 + 309.20 + ("revision control" "$B9=@.4IM}(B") 309.21 + ("revision" "$B%j%S%8%g%s(B") 309.22 + ("revisions" "$B%j%S%8%g%s(B") 309.23 + ("working directory" "$B:n6HNN0h%G%#%l%/%H%j(B") 309.24 + ("refresh" "refresh") 309.25 + ("refreshes" "refresh") 309.26 + ("refreshing" "refresh") 309.27 + ("stack" "$B@Q$_=E$M(B" "$B%9%?%C%/(B") 309.28 + ("popped" "$B<h$j=|$+$l$?(B") 309.29 + ("branch" "$B%V%i%s%A(B") 309.30 + 309.31 + ("hunk" "hunk") 309.32 + ("context" "$B%3%s%F%-%9%H(B") 309.33 + ("offset" "$B%*%U%;%C%H(B") 309.34 + 309.35 + ("fuzz" "$B$"$$$^$$(B") 309.36 + ("rejection" "$B5Q2<(B") 309.37 + ("reject" "$B5Q2<(B") 309.38 + 309.39 + ("rebase" "$B%j%Y!<%9(B") 309.40 + 309.41 + ("commit" "$B%3%_%C%H(B") 309.42 + ("merge" "$B%^!<%8(B") 309.43 + ("head" "head? $B%X%C%I(B?" ) 309.44 + 309.45 + ("backport" "$B%P%C%/%]!<%H(B") 309.46 + ("distribution" "$B%G%#%9%H%j%S%e!<%7%g%s(B") 309.47 + ("platform" "$B%W%i%C%H%[!<%`(B") 309.48 + )) 309.49 + 309.50 +(setq japanese-variant 309.51 + '(("$B$G$-$k(B" "$B=PMh(B") 309.52 + ("$B$$$k(B" "$B5o$k(B") 309.53 + ("$B$$$/$D(B" "$B4v$D(B") 309.54 + ("$B?7$7$$(B" "$B?75,(B") 309.55 + ("$B$[$H$s$I(B" "$BKX$I(B") 309.56 + ("$B$"$$$^$$(B" "$B[#Kf(B") 309.57 + )) 309.58 \ No newline at end of file
310.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 310.2 +++ b/ja/wdir-after-commit.svg Fri Aug 14 12:10:47 2009 -0700 310.3 @@ -0,0 +1,394 @@ 310.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 310.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 310.6 +<svg 310.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 310.8 + xmlns:cc="http://web.resource.org/cc/" 310.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 310.10 + xmlns:svg="http://www.w3.org/2000/svg" 310.11 + xmlns="http://www.w3.org/2000/svg" 310.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 310.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 310.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 310.15 + width="744.09448819" 310.16 + height="1052.3622047" 310.17 + id="svg5971" 310.18 + sodipodi:version="0.32" 310.19 + inkscape:version="0.44.1" 310.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 310.21 + sodipodi:docname="wdir-after-commit.svg"> 310.22 + <defs 310.23 + id="defs5973"> 310.24 + <linearGradient 310.25 + inkscape:collect="always" 310.26 + xlink:href="#linearGradient6049" 310.27 + id="linearGradient6445" 310.28 + gradientUnits="userSpaceOnUse" 310.29 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 310.30 + x1="333.91171" 310.31 + y1="488.79077" 310.32 + x2="508.94543" 310.33 + y2="263.79077" /> 310.34 + <marker 310.35 + inkscape:stockid="Arrow1Mstart" 310.36 + orient="auto" 310.37 + refY="0.0" 310.38 + refX="0.0" 310.39 + id="Arrow1Mstart" 310.40 + style="overflow:visible"> 310.41 + <path 310.42 + id="path4855" 310.43 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 310.44 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 310.45 + transform="scale(0.4) translate(10,0)" /> 310.46 + </marker> 310.47 + <linearGradient 310.48 + id="linearGradient6049"> 310.49 + <stop 310.50 + style="stop-color:#686868;stop-opacity:1;" 310.51 + offset="0" 310.52 + id="stop6051" /> 310.53 + <stop 310.54 + style="stop-color:#f0f0f0;stop-opacity:1;" 310.55 + offset="1" 310.56 + id="stop6053" /> 310.57 + </linearGradient> 310.58 + <marker 310.59 + inkscape:stockid="Arrow1Mend" 310.60 + orient="auto" 310.61 + refY="0.0" 310.62 + refX="0.0" 310.63 + id="Arrow1Mend" 310.64 + style="overflow:visible;"> 310.65 + <path 310.66 + id="path4852" 310.67 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 310.68 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 310.69 + transform="scale(0.4) rotate(180) translate(10,0)" /> 310.70 + </marker> 310.71 + <linearGradient 310.72 + inkscape:collect="always" 310.73 + xlink:href="#linearGradient6049" 310.74 + id="linearGradient6083" 310.75 + gradientUnits="userSpaceOnUse" 310.76 + gradientTransform="translate(-240.0462,-8.633237e-6)" 310.77 + x1="333.91171" 310.78 + y1="488.79077" 310.79 + x2="508.94543" 310.80 + y2="263.79077" /> 310.81 + <linearGradient 310.82 + inkscape:collect="always" 310.83 + xlink:href="#linearGradient6049" 310.84 + id="linearGradient6142" 310.85 + gradientUnits="userSpaceOnUse" 310.86 + gradientTransform="translate(-42.00893,-30.49544)" 310.87 + x1="333.91171" 310.88 + y1="488.79077" 310.89 + x2="508.94543" 310.90 + y2="263.79077" /> 310.91 + <linearGradient 310.92 + inkscape:collect="always" 310.93 + xlink:href="#linearGradient6049" 310.94 + id="linearGradient6193" 310.95 + gradientUnits="userSpaceOnUse" 310.96 + gradientTransform="translate(-240.0462,-8.633237e-6)" 310.97 + x1="333.91171" 310.98 + y1="488.79077" 310.99 + x2="508.94543" 310.100 + y2="263.79077" /> 310.101 + <linearGradient 310.102 + inkscape:collect="always" 310.103 + xlink:href="#linearGradient6049" 310.104 + id="linearGradient6216" 310.105 + gradientUnits="userSpaceOnUse" 310.106 + gradientTransform="translate(-6.0462,-0.664361)" 310.107 + x1="333.91171" 310.108 + y1="488.79077" 310.109 + x2="508.94543" 310.110 + y2="263.79077" /> 310.111 + <linearGradient 310.112 + inkscape:collect="always" 310.113 + xlink:href="#linearGradient6049" 310.114 + id="linearGradient6232" 310.115 + gradientUnits="userSpaceOnUse" 310.116 + gradientTransform="matrix(1.000474,0,0,0.790947,222.8399,50.85693)" 310.117 + x1="333.91171" 310.118 + y1="488.79077" 310.119 + x2="508.94543" 310.120 + y2="263.79077" /> 310.121 + <linearGradient 310.122 + inkscape:collect="always" 310.123 + xlink:href="#linearGradient6049" 310.124 + id="linearGradient6772" 310.125 + gradientUnits="userSpaceOnUse" 310.126 + gradientTransform="matrix(1.000474,0,0,0.790947,222.8399,50.85693)" 310.127 + x1="333.91171" 310.128 + y1="488.79077" 310.129 + x2="508.94543" 310.130 + y2="263.79077" /> 310.131 + </defs> 310.132 + <sodipodi:namedview 310.133 + id="base" 310.134 + pagecolor="#ffffff" 310.135 + bordercolor="#666666" 310.136 + borderopacity="1.0" 310.137 + gridtolerance="10000" 310.138 + guidetolerance="10" 310.139 + objecttolerance="10" 310.140 + inkscape:pageopacity="0.0" 310.141 + inkscape:pageshadow="2" 310.142 + inkscape:zoom="0.90509668" 310.143 + inkscape:cx="390.0539" 310.144 + inkscape:cy="690.49342" 310.145 + inkscape:document-units="px" 310.146 + inkscape:current-layer="layer1" 310.147 + showguides="true" 310.148 + inkscape:guide-bbox="true" 310.149 + inkscape:window-width="906" 310.150 + inkscape:window-height="620" 310.151 + inkscape:window-x="0" 310.152 + inkscape:window-y="25"> 310.153 + <sodipodi:guide 310.154 + orientation="vertical" 310.155 + position="-1.4285714" 310.156 + id="guide6022" /> 310.157 + </sodipodi:namedview> 310.158 + <metadata 310.159 + id="metadata5976"> 310.160 + <rdf:RDF> 310.161 + <cc:Work 310.162 + rdf:about=""> 310.163 + <dc:format>image/svg+xml</dc:format> 310.164 + <dc:type 310.165 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 310.166 + </cc:Work> 310.167 + </rdf:RDF> 310.168 + </metadata> 310.169 + <g 310.170 + inkscape:label="Layer 1" 310.171 + inkscape:groupmode="layer" 310.172 + id="layer1"> 310.173 + <rect 310.174 + y="245.98355" 310.175 + x="328.23956" 310.176 + height="258.57144" 310.177 + width="174.28572" 310.178 + id="rect6047" 310.179 + style="fill:url(#linearGradient6216);fill-opacity:1;stroke:#686868;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 310.180 + <g 310.181 + id="g6261" 310.182 + transform="translate(234,0)"> 310.183 + <rect 310.184 + y="258.7149" 310.185 + x="114.11369" 310.186 + height="44.537449" 310.187 + width="134.53746" 310.188 + id="rect5983" 310.189 + style="fill:#b1b1b1;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 310.190 + <text 310.191 + id="text5985" 310.192 + y="284.47562" 310.193 + x="138.7962" 310.194 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.195 + xml:space="preserve"><tspan 310.196 + style="font-family:Courier" 310.197 + y="284.47562" 310.198 + x="138.7962" 310.199 + id="tspan5987" 310.200 + sodipodi:role="line">dfbbb33f3fa3</tspan></text> 310.201 + </g> 310.202 + <rect 310.203 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 310.204 + id="rect5996" 310.205 + width="134.53746" 310.206 + height="44.537449" 310.207 + x="348.11371" 310.208 + y="320.38159" /> 310.209 + <text 310.210 + xml:space="preserve" 310.211 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.212 + x="372.7962" 310.213 + y="346.1423" 310.214 + id="text5998"><tspan 310.215 + sodipodi:role="line" 310.216 + id="tspan6000" 310.217 + x="372.7962" 310.218 + y="346.1423" 310.219 + style="font-family:Courier">e7639888bb2f</tspan></text> 310.220 + <rect 310.221 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 310.222 + id="rect6004" 310.223 + width="134.53746" 310.224 + height="44.537449" 310.225 + x="348.11371" 310.226 + y="382.04825" /> 310.227 + <text 310.228 + xml:space="preserve" 310.229 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.230 + x="370.65421" 310.231 + y="407.80896" 310.232 + id="text6006"><tspan 310.233 + sodipodi:role="line" 310.234 + id="tspan6008" 310.235 + x="370.65421" 310.236 + y="407.80896" 310.237 + style="font-family:Courier">7b064d8bac5e</tspan></text> 310.238 + <path 310.239 + inkscape:connector-type="polyline" 310.240 + id="path6018" 310.241 + d="M 415.38242,303.62646 L 415.38242,320.00744" 310.242 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 310.243 + <path 310.244 + inkscape:connection-end="#rect6004" 310.245 + inkscape:connector-type="polyline" 310.246 + id="path6020" 310.247 + d="M 415.38242,365.29315 L 415.38243,381.67412" 310.248 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 310.249 + <rect 310.250 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 310.251 + id="rect6039" 310.252 + width="134.53746" 310.253 + height="44.537449" 310.254 + x="348.11359" 310.255 + y="443.71487" /> 310.256 + <text 310.257 + xml:space="preserve" 310.258 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.259 + x="372.79706" 310.260 + y="469.47556" 310.261 + id="text6041"><tspan 310.262 + sodipodi:role="line" 310.263 + id="tspan6043" 310.264 + x="372.79706" 310.265 + y="469.47556" 310.266 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 310.267 + <path 310.268 + inkscape:connection-end="#rect6039" 310.269 + inkscape:connector-type="polyline" 310.270 + id="path6045" 310.271 + d="M 415.38238,426.95981 L 415.38235,443.34087" 310.272 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 310.273 + <text 310.274 + xml:space="preserve" 310.275 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.276 + x="327.66046" 310.277 + y="231.36218" 310.278 + id="text6102"><tspan 310.279 + sodipodi:role="line" 310.280 + id="tspan6104" 310.281 + x="327.66046" 310.282 + y="231.36218">History in repository</tspan></text> 310.283 + <rect 310.284 + y="245.94225" 310.285 + x="557.28418" 310.286 + height="204.51619" 310.287 + width="174.36833" 310.288 + id="rect6140" 310.289 + style="fill:url(#linearGradient6232);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 310.290 + <g 310.291 + id="g6130" 310.292 + transform="translate(262.3254,24.38544)"> 310.293 + <rect 310.294 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 310.295 + id="rect6106" 310.296 + width="134.53746" 310.297 + height="44.537449" 310.298 + x="314.87415" 310.299 + y="257.95059" /> 310.300 + <text 310.301 + xml:space="preserve" 310.302 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.303 + x="339.55664" 310.304 + y="283.7113" 310.305 + id="text6108"><tspan 310.306 + sodipodi:role="line" 310.307 + id="tspan6110" 310.308 + x="339.55664" 310.309 + y="283.7113" 310.310 + style="font-family:Courier">dfbbb33f3fa3</tspan></text> 310.311 + </g> 310.312 + <g 310.313 + id="g6135" 310.314 + transform="translate(263.0396,49.83106)"> 310.315 + <rect 310.316 + inkscape:transform-center-y="102.85714" 310.317 + inkscape:transform-center-x="129.28571" 310.318 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 310.319 + id="rect6112" 310.320 + width="134.53746" 310.321 + height="44.537449" 310.322 + x="314.15985" 310.323 + y="326.52203" /> 310.324 + <text 310.325 + inkscape:transform-center-y="102.7311" 310.326 + inkscape:transform-center-x="128.69672" 310.327 + xml:space="preserve" 310.328 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.329 + x="338.84335" 310.330 + y="352.28271" 310.331 + id="text6114"><tspan 310.332 + sodipodi:role="line" 310.333 + id="tspan6116" 310.334 + x="338.84335" 310.335 + y="352.28271" 310.336 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 310.337 + </g> 310.338 + <text 310.339 + xml:space="preserve" 310.340 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.341 + x="576.63208" 310.342 + y="270.479" 310.343 + id="text6118"><tspan 310.344 + sodipodi:role="line" 310.345 + id="tspan6120" 310.346 + x="576.63208" 310.347 + y="270.479">First parent</tspan></text> 310.348 + <text 310.349 + xml:space="preserve" 310.350 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.351 + x="576.07544" 310.352 + y="364.49615" 310.353 + id="text6122"><tspan 310.354 + sodipodi:role="line" 310.355 + id="tspan6124" 310.356 + x="576.07544" 310.357 + y="364.49615">Second parent</tspan></text> 310.358 + <text 310.359 + xml:space="preserve" 310.360 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.361 + x="556.61743" 310.362 + y="231.36218" 310.363 + id="text6195"><tspan 310.364 + sodipodi:role="line" 310.365 + id="tspan6197" 310.366 + x="556.61743" 310.367 + y="231.36218">Parents of working directory</tspan></text> 310.368 + <path 310.369 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 310.370 + d="M 576.82542,297.63008 L 483.02528,287.95831" 310.371 + id="path6266" 310.372 + inkscape:connector-type="polyline" 310.373 + inkscape:connection-start="#g6130" 310.374 + inkscape:connection-end="#g6261" /> 310.375 + <path 310.376 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 310.377 + d="M 665.12232,418.17579 L 665.12232,418.17579" 310.378 + id="path6270" 310.379 + inkscape:connector-type="polyline" /> 310.380 + <text 310.381 + xml:space="preserve" 310.382 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 310.383 + x="316.86407" 310.384 + y="275.6496" 310.385 + id="text6573"><tspan 310.386 + sodipodi:role="line" 310.387 + id="tspan6575" 310.388 + x="316.86407" 310.389 + y="275.6496" 310.390 + style="text-align:end;text-anchor:end">New</tspan><tspan 310.391 + sodipodi:role="line" 310.392 + x="316.86407" 310.393 + y="290.6496" 310.394 + id="tspan6577" 310.395 + style="text-align:end;text-anchor:end">changeset</tspan></text> 310.396 + </g> 310.397 +</svg>
311.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 311.2 +++ b/ja/wdir-branch.svg Fri Aug 14 12:10:47 2009 -0700 311.3 @@ -0,0 +1,418 @@ 311.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 311.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 311.6 +<svg 311.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 311.8 + xmlns:cc="http://web.resource.org/cc/" 311.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 311.10 + xmlns:svg="http://www.w3.org/2000/svg" 311.11 + xmlns="http://www.w3.org/2000/svg" 311.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 311.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 311.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 311.15 + width="744.09448819" 311.16 + height="1052.3622047" 311.17 + id="svg5971" 311.18 + sodipodi:version="0.32" 311.19 + inkscape:version="0.44.1" 311.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 311.21 + sodipodi:docname="wdir-branch.svg"> 311.22 + <defs 311.23 + id="defs5973"> 311.24 + <marker 311.25 + inkscape:stockid="Arrow1Mstart" 311.26 + orient="auto" 311.27 + refY="0.0" 311.28 + refX="0.0" 311.29 + id="Arrow1Mstart" 311.30 + style="overflow:visible"> 311.31 + <path 311.32 + id="path4855" 311.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 311.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 311.35 + transform="scale(0.4) translate(10,0)" /> 311.36 + </marker> 311.37 + <linearGradient 311.38 + id="linearGradient6049"> 311.39 + <stop 311.40 + style="stop-color:#686868;stop-opacity:1;" 311.41 + offset="0" 311.42 + id="stop6051" /> 311.43 + <stop 311.44 + style="stop-color:#f0f0f0;stop-opacity:1;" 311.45 + offset="1" 311.46 + id="stop6053" /> 311.47 + </linearGradient> 311.48 + <marker 311.49 + inkscape:stockid="Arrow1Mend" 311.50 + orient="auto" 311.51 + refY="0.0" 311.52 + refX="0.0" 311.53 + id="Arrow1Mend" 311.54 + style="overflow:visible;"> 311.55 + <path 311.56 + id="path4852" 311.57 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 311.58 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 311.59 + transform="scale(0.4) rotate(180) translate(10,0)" /> 311.60 + </marker> 311.61 + <linearGradient 311.62 + inkscape:collect="always" 311.63 + xlink:href="#linearGradient6049" 311.64 + id="linearGradient6083" 311.65 + gradientUnits="userSpaceOnUse" 311.66 + gradientTransform="translate(-240.0462,-8.633237e-6)" 311.67 + x1="333.91171" 311.68 + y1="488.79077" 311.69 + x2="508.94543" 311.70 + y2="263.79077" /> 311.71 + <linearGradient 311.72 + inkscape:collect="always" 311.73 + xlink:href="#linearGradient6049" 311.74 + id="linearGradient6142" 311.75 + gradientUnits="userSpaceOnUse" 311.76 + gradientTransform="translate(-42.00893,-30.49544)" 311.77 + x1="333.91171" 311.78 + y1="488.79077" 311.79 + x2="508.94543" 311.80 + y2="263.79077" /> 311.81 + <linearGradient 311.82 + inkscape:collect="always" 311.83 + xlink:href="#linearGradient6049" 311.84 + id="linearGradient6193" 311.85 + gradientUnits="userSpaceOnUse" 311.86 + gradientTransform="translate(-240.0462,-8.633237e-6)" 311.87 + x1="333.91171" 311.88 + y1="488.79077" 311.89 + x2="508.94543" 311.90 + y2="263.79077" /> 311.91 + <linearGradient 311.92 + inkscape:collect="always" 311.93 + xlink:href="#linearGradient6049" 311.94 + id="linearGradient6216" 311.95 + gradientUnits="userSpaceOnUse" 311.96 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 311.97 + x1="333.91171" 311.98 + y1="488.79077" 311.99 + x2="508.94543" 311.100 + y2="263.79077" /> 311.101 + <linearGradient 311.102 + inkscape:collect="always" 311.103 + xlink:href="#linearGradient6049" 311.104 + id="linearGradient6232" 311.105 + gradientUnits="userSpaceOnUse" 311.106 + gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 311.107 + x1="333.91171" 311.108 + y1="488.79077" 311.109 + x2="508.94543" 311.110 + y2="263.79077" /> 311.111 + <linearGradient 311.112 + inkscape:collect="always" 311.113 + xlink:href="#linearGradient6049" 311.114 + id="linearGradient6445" 311.115 + gradientUnits="userSpaceOnUse" 311.116 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 311.117 + x1="333.91171" 311.118 + y1="488.79077" 311.119 + x2="508.94543" 311.120 + y2="263.79077" /> 311.121 + <linearGradient 311.122 + inkscape:collect="always" 311.123 + xlink:href="#linearGradient6049" 311.124 + id="linearGradient6974" 311.125 + gradientUnits="userSpaceOnUse" 311.126 + gradientTransform="matrix(1.911882,0,0,0.789965,-574.7896,51.22599)" 311.127 + x1="333.91171" 311.128 + y1="488.79077" 311.129 + x2="508.94543" 311.130 + y2="263.79077" /> 311.131 + <linearGradient 311.132 + inkscape:collect="always" 311.133 + xlink:href="#linearGradient6049" 311.134 + id="linearGradient6996" 311.135 + gradientUnits="userSpaceOnUse" 311.136 + gradientTransform="matrix(1.000473,0,0,0.790947,112.8399,50.85693)" 311.137 + x1="333.91171" 311.138 + y1="488.79077" 311.139 + x2="508.94543" 311.140 + y2="263.79077" /> 311.141 + </defs> 311.142 + <sodipodi:namedview 311.143 + id="base" 311.144 + pagecolor="#ffffff" 311.145 + bordercolor="#666666" 311.146 + borderopacity="1.0" 311.147 + gridtolerance="10000" 311.148 + guidetolerance="10" 311.149 + objecttolerance="10" 311.150 + inkscape:pageopacity="0.0" 311.151 + inkscape:pageshadow="2" 311.152 + inkscape:zoom="0.90509668" 311.153 + inkscape:cx="345.85973" 311.154 + inkscape:cy="690.49342" 311.155 + inkscape:document-units="px" 311.156 + inkscape:current-layer="layer1" 311.157 + showguides="true" 311.158 + inkscape:guide-bbox="true" 311.159 + inkscape:window-width="906" 311.160 + inkscape:window-height="620" 311.161 + inkscape:window-x="0" 311.162 + inkscape:window-y="25"> 311.163 + <sodipodi:guide 311.164 + orientation="vertical" 311.165 + position="-1.4285714" 311.166 + id="guide6022" /> 311.167 + </sodipodi:namedview> 311.168 + <metadata 311.169 + id="metadata5976"> 311.170 + <rdf:RDF> 311.171 + <cc:Work 311.172 + rdf:about=""> 311.173 + <dc:format>image/svg+xml</dc:format> 311.174 + <dc:type 311.175 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 311.176 + </cc:Work> 311.177 + </rdf:RDF> 311.178 + </metadata> 311.179 + <g 311.180 + inkscape:label="Layer 1" 311.181 + inkscape:groupmode="layer" 311.182 + id="layer1"> 311.183 + <rect 311.184 + y="246.06918" 311.185 + x="64.325172" 311.186 + height="204.26233" 311.187 + width="333.2135" 311.188 + id="rect6047" 311.189 + style="fill:url(#linearGradient6974);fill-opacity:1;stroke:#686868;stroke-width:0.91925466;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 311.190 + <g 311.191 + id="g1935"> 311.192 + <rect 311.193 + y="266.24374" 311.194 + x="84.113708" 311.195 + height="44.537449" 311.196 + width="134.53746" 311.197 + id="rect5996" 311.198 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 311.199 + <text 311.200 + id="text5998" 311.201 + y="292.00446" 311.202 + x="108.7962" 311.203 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.204 + xml:space="preserve"><tspan 311.205 + style="font-family:Courier" 311.206 + y="292.00446" 311.207 + x="108.7962" 311.208 + id="tspan6000" 311.209 + sodipodi:role="line">e7639888bb2f</tspan></text> 311.210 + </g> 311.211 + <g 311.212 + id="g6976" 311.213 + transform="translate(70,0)"> 311.214 + <rect 311.215 + y="327.9104" 311.216 + x="40.113693" 311.217 + height="44.537449" 311.218 + width="134.53746" 311.219 + id="rect6004" 311.220 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 311.221 + <text 311.222 + id="text6006" 311.223 + y="353.67111" 311.224 + x="62.654205" 311.225 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.226 + xml:space="preserve"><tspan 311.227 + style="font-family:Courier" 311.228 + y="353.67111" 311.229 + x="62.654205" 311.230 + id="tspan6008" 311.231 + sodipodi:role="line">7b064d8bac5e</tspan></text> 311.232 + </g> 311.233 + <path 311.234 + inkscape:connector-type="polyline" 311.235 + id="path6020" 311.236 + d="M 160.92915,311.15532 L 167.83571,327.53627" 311.237 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 311.238 + inkscape:connection-end="#g6976" 311.239 + inkscape:connection-start="#g1935" /> 311.240 + <rect 311.241 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 311.242 + id="rect6039" 311.243 + width="134.53746" 311.244 + height="44.537449" 311.245 + x="110.11359" 311.246 + y="389.57703" /> 311.247 + <text 311.248 + xml:space="preserve" 311.249 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.250 + x="134.79706" 311.251 + y="415.33771" 311.252 + id="text6041"><tspan 311.253 + sodipodi:role="line" 311.254 + id="tspan6043" 311.255 + x="134.79706" 311.256 + y="415.33771" 311.257 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 311.258 + <path 311.259 + inkscape:connection-end="#rect6039" 311.260 + inkscape:connector-type="polyline" 311.261 + id="path6045" 311.262 + d="M 177.38238,372.82195 L 177.38235,389.20303" 311.263 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 311.264 + <rect 311.265 + y="245.94225" 311.266 + x="447.28412" 311.267 + height="204.51619" 311.268 + width="174.36833" 311.269 + id="rect6140" 311.270 + style="fill:url(#linearGradient6996);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 311.271 + <g 311.272 + id="g6130" 311.273 + transform="translate(152.3254,24.38544)"> 311.274 + <rect 311.275 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 311.276 + id="rect6106" 311.277 + width="134.53746" 311.278 + height="44.537449" 311.279 + x="314.87415" 311.280 + y="257.95059" /> 311.281 + <text 311.282 + xml:space="preserve" 311.283 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.284 + x="339.55664" 311.285 + y="283.7113" 311.286 + id="text6108"><tspan 311.287 + sodipodi:role="line" 311.288 + id="tspan6110" 311.289 + x="339.55664" 311.290 + y="283.7113" 311.291 + style="font-family:Courier">ffb20e1701ea</tspan></text> 311.292 + </g> 311.293 + <g 311.294 + id="g6135" 311.295 + transform="translate(153.0396,49.83106)"> 311.296 + <rect 311.297 + inkscape:transform-center-y="102.85714" 311.298 + inkscape:transform-center-x="129.28571" 311.299 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 311.300 + id="rect6112" 311.301 + width="134.53746" 311.302 + height="44.537449" 311.303 + x="314.15985" 311.304 + y="326.52203" /> 311.305 + <text 311.306 + inkscape:transform-center-y="102.7311" 311.307 + inkscape:transform-center-x="128.69672" 311.308 + xml:space="preserve" 311.309 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.310 + x="338.84335" 311.311 + y="352.28271" 311.312 + id="text6114"><tspan 311.313 + sodipodi:role="line" 311.314 + id="tspan6116" 311.315 + x="338.84335" 311.316 + y="352.28271" 311.317 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 311.318 + </g> 311.319 + <text 311.320 + xml:space="preserve" 311.321 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.322 + x="466.63208" 311.323 + y="270.479" 311.324 + id="text6118"><tspan 311.325 + sodipodi:role="line" 311.326 + id="tspan6120" 311.327 + x="466.63208" 311.328 + y="270.479">First parent</tspan></text> 311.329 + <text 311.330 + xml:space="preserve" 311.331 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.332 + x="466.07544" 311.333 + y="364.49615" 311.334 + id="text6122"><tspan 311.335 + sodipodi:role="line" 311.336 + id="tspan6124" 311.337 + x="466.07544" 311.338 + y="364.49615">Second parent</tspan></text> 311.339 + <text 311.340 + xml:space="preserve" 311.341 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.342 + x="446.61743" 311.343 + y="231.36218" 311.344 + id="text6195"><tspan 311.345 + sodipodi:role="line" 311.346 + id="tspan6197" 311.347 + x="446.61743" 311.348 + y="231.36218">Parents of working directory</tspan></text> 311.349 + <path 311.350 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 311.351 + d="M 466.82542,300.21999 L 377.00207,294.39744" 311.352 + id="path6266" 311.353 + inkscape:connector-type="polyline" 311.354 + inkscape:connection-start="#g6130" 311.355 + inkscape:connection-end="#rect1925" /> 311.356 + <path 311.357 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 311.358 + d="M 665.12232,418.17579 L 665.12232,418.17579" 311.359 + id="path6270" 311.360 + inkscape:connector-type="polyline" /> 311.361 + <g 311.362 + id="g2845"> 311.363 + <rect 311.364 + y="266.24374" 311.365 + x="242.09048" 311.366 + height="44.537449" 311.367 + width="134.53746" 311.368 + id="rect1925" 311.369 + style="fill:#9f9f9f;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 311.370 + <text 311.371 + id="text1927" 311.372 + y="292.00446" 311.373 + x="266.77298" 311.374 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.375 + xml:space="preserve"><tspan 311.376 + style="font-family:Courier" 311.377 + y="292.00446" 311.378 + x="266.77298" 311.379 + id="tspan1929" 311.380 + sodipodi:role="line">ffb20e1701ea</tspan></text> 311.381 + </g> 311.382 + <path 311.383 + inkscape:connector-type="polyline" 311.384 + id="path1933" 311.385 + d="M 260.89978,311.15532 L 225.84185,327.53627" 311.386 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 311.387 + inkscape:connection-end="#g6976" /> 311.388 + <text 311.389 + xml:space="preserve" 311.390 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.391 + x="109.45568" 311.392 + y="231.4554" 311.393 + id="text2837"><tspan 311.394 + sodipodi:role="line" 311.395 + id="tspan2839" 311.396 + x="109.45568" 311.397 + y="231.4554">Pre-existing head</tspan></text> 311.398 + <text 311.399 + xml:space="preserve" 311.400 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 311.401 + x="237.54184" 311.402 + y="231.4554" 311.403 + id="text2841"><tspan 311.404 + sodipodi:role="line" 311.405 + id="tspan2843" 311.406 + x="237.54184" 311.407 + y="231.4554">Newly created head (and tip)</tspan></text> 311.408 + <path 311.409 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 311.410 + d="M 148.05048,235.87482 L 149.94915,265.86962" 311.411 + id="path2850" 311.412 + inkscape:connector-type="polyline" 311.413 + inkscape:connection-end="#g1935" /> 311.414 + <path 311.415 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 311.416 + d="M 303.83495,238.08453 L 306.87874,265.86962" 311.417 + id="path2852" 311.418 + inkscape:connector-type="polyline" 311.419 + inkscape:connection-end="#g2845" /> 311.420 + </g> 311.421 +</svg>
312.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 312.2 +++ b/ja/wdir-merge.svg Fri Aug 14 12:10:47 2009 -0700 312.3 @@ -0,0 +1,425 @@ 312.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 312.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 312.6 +<svg 312.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 312.8 + xmlns:cc="http://web.resource.org/cc/" 312.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 312.10 + xmlns:svg="http://www.w3.org/2000/svg" 312.11 + xmlns="http://www.w3.org/2000/svg" 312.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 312.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 312.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 312.15 + width="744.09448819" 312.16 + height="1052.3622047" 312.17 + id="svg5971" 312.18 + sodipodi:version="0.32" 312.19 + inkscape:version="0.44.1" 312.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 312.21 + sodipodi:docname="wdir-merge.svg"> 312.22 + <defs 312.23 + id="defs5973"> 312.24 + <marker 312.25 + inkscape:stockid="Arrow1Mstart" 312.26 + orient="auto" 312.27 + refY="0.0" 312.28 + refX="0.0" 312.29 + id="Arrow1Mstart" 312.30 + style="overflow:visible"> 312.31 + <path 312.32 + id="path4855" 312.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 312.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 312.35 + transform="scale(0.4) translate(10,0)" /> 312.36 + </marker> 312.37 + <linearGradient 312.38 + id="linearGradient6049"> 312.39 + <stop 312.40 + style="stop-color:#686868;stop-opacity:1;" 312.41 + offset="0" 312.42 + id="stop6051" /> 312.43 + <stop 312.44 + style="stop-color:#f0f0f0;stop-opacity:1;" 312.45 + offset="1" 312.46 + id="stop6053" /> 312.47 + </linearGradient> 312.48 + <marker 312.49 + inkscape:stockid="Arrow1Mend" 312.50 + orient="auto" 312.51 + refY="0.0" 312.52 + refX="0.0" 312.53 + id="Arrow1Mend" 312.54 + style="overflow:visible;"> 312.55 + <path 312.56 + id="path4852" 312.57 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 312.58 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 312.59 + transform="scale(0.4) rotate(180) translate(10,0)" /> 312.60 + </marker> 312.61 + <linearGradient 312.62 + inkscape:collect="always" 312.63 + xlink:href="#linearGradient6049" 312.64 + id="linearGradient6083" 312.65 + gradientUnits="userSpaceOnUse" 312.66 + gradientTransform="translate(-240.0462,-8.633237e-6)" 312.67 + x1="333.91171" 312.68 + y1="488.79077" 312.69 + x2="508.94543" 312.70 + y2="263.79077" /> 312.71 + <linearGradient 312.72 + inkscape:collect="always" 312.73 + xlink:href="#linearGradient6049" 312.74 + id="linearGradient6142" 312.75 + gradientUnits="userSpaceOnUse" 312.76 + gradientTransform="translate(-42.00893,-30.49544)" 312.77 + x1="333.91171" 312.78 + y1="488.79077" 312.79 + x2="508.94543" 312.80 + y2="263.79077" /> 312.81 + <linearGradient 312.82 + inkscape:collect="always" 312.83 + xlink:href="#linearGradient6049" 312.84 + id="linearGradient6193" 312.85 + gradientUnits="userSpaceOnUse" 312.86 + gradientTransform="translate(-240.0462,-8.633237e-6)" 312.87 + x1="333.91171" 312.88 + y1="488.79077" 312.89 + x2="508.94543" 312.90 + y2="263.79077" /> 312.91 + <linearGradient 312.92 + inkscape:collect="always" 312.93 + xlink:href="#linearGradient6049" 312.94 + id="linearGradient6216" 312.95 + gradientUnits="userSpaceOnUse" 312.96 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 312.97 + x1="333.91171" 312.98 + y1="488.79077" 312.99 + x2="508.94543" 312.100 + y2="263.79077" /> 312.101 + <linearGradient 312.102 + inkscape:collect="always" 312.103 + xlink:href="#linearGradient6049" 312.104 + id="linearGradient6232" 312.105 + gradientUnits="userSpaceOnUse" 312.106 + gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 312.107 + x1="333.91171" 312.108 + y1="488.79077" 312.109 + x2="508.94543" 312.110 + y2="263.79077" /> 312.111 + <linearGradient 312.112 + inkscape:collect="always" 312.113 + xlink:href="#linearGradient6049" 312.114 + id="linearGradient6445" 312.115 + gradientUnits="userSpaceOnUse" 312.116 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 312.117 + x1="333.91171" 312.118 + y1="488.79077" 312.119 + x2="508.94543" 312.120 + y2="263.79077" /> 312.121 + <linearGradient 312.122 + inkscape:collect="always" 312.123 + xlink:href="#linearGradient6049" 312.124 + id="linearGradient6974" 312.125 + gradientUnits="userSpaceOnUse" 312.126 + gradientTransform="matrix(1.911882,0,0,0.789965,-574.7896,51.22599)" 312.127 + x1="333.91171" 312.128 + y1="488.79077" 312.129 + x2="508.94543" 312.130 + y2="263.79077" /> 312.131 + <linearGradient 312.132 + inkscape:collect="always" 312.133 + xlink:href="#linearGradient6049" 312.134 + id="linearGradient6996" 312.135 + gradientUnits="userSpaceOnUse" 312.136 + gradientTransform="matrix(1.000473,0,0,0.790947,112.8399,50.85693)" 312.137 + x1="333.91171" 312.138 + y1="488.79077" 312.139 + x2="508.94543" 312.140 + y2="263.79077" /> 312.141 + </defs> 312.142 + <sodipodi:namedview 312.143 + id="base" 312.144 + pagecolor="#ffffff" 312.145 + bordercolor="#666666" 312.146 + borderopacity="1.0" 312.147 + gridtolerance="10000" 312.148 + guidetolerance="10" 312.149 + objecttolerance="10" 312.150 + inkscape:pageopacity="0.0" 312.151 + inkscape:pageshadow="2" 312.152 + inkscape:zoom="1.28" 312.153 + inkscape:cx="345.85973" 312.154 + inkscape:cy="690.49342" 312.155 + inkscape:document-units="px" 312.156 + inkscape:current-layer="layer1" 312.157 + showguides="true" 312.158 + inkscape:guide-bbox="true" 312.159 + inkscape:window-width="906" 312.160 + inkscape:window-height="620" 312.161 + inkscape:window-x="0" 312.162 + inkscape:window-y="25"> 312.163 + <sodipodi:guide 312.164 + orientation="vertical" 312.165 + position="-1.4285714" 312.166 + id="guide6022" /> 312.167 + </sodipodi:namedview> 312.168 + <metadata 312.169 + id="metadata5976"> 312.170 + <rdf:RDF> 312.171 + <cc:Work 312.172 + rdf:about=""> 312.173 + <dc:format>image/svg+xml</dc:format> 312.174 + <dc:type 312.175 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 312.176 + </cc:Work> 312.177 + </rdf:RDF> 312.178 + </metadata> 312.179 + <g 312.180 + inkscape:label="Layer 1" 312.181 + inkscape:groupmode="layer" 312.182 + id="layer1"> 312.183 + <rect 312.184 + y="246.06918" 312.185 + x="64.325172" 312.186 + height="204.26233" 312.187 + width="333.2135" 312.188 + id="rect6047" 312.189 + style="fill:url(#linearGradient6974);fill-opacity:1;stroke:#686868;stroke-width:0.91925466;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 312.190 + <g 312.191 + id="g6976" 312.192 + transform="translate(70,0)"> 312.193 + <rect 312.194 + y="327.9104" 312.195 + x="40.113693" 312.196 + height="44.537449" 312.197 + width="134.53746" 312.198 + id="rect6004" 312.199 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 312.200 + <text 312.201 + id="text6006" 312.202 + y="353.67111" 312.203 + x="62.654205" 312.204 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.205 + xml:space="preserve"><tspan 312.206 + style="font-family:Courier" 312.207 + y="353.67111" 312.208 + x="62.654205" 312.209 + id="tspan6008" 312.210 + sodipodi:role="line">7b064d8bac5e</tspan></text> 312.211 + </g> 312.212 + <path 312.213 + inkscape:connector-type="polyline" 312.214 + id="path6020" 312.215 + d="M 160.92915,311.15532 L 167.83571,327.53627" 312.216 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 312.217 + inkscape:connection-end="#g6976" 312.218 + inkscape:connection-start="#g1935" /> 312.219 + <rect 312.220 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 312.221 + id="rect6039" 312.222 + width="134.53746" 312.223 + height="44.537449" 312.224 + x="110.11359" 312.225 + y="389.57703" /> 312.226 + <text 312.227 + xml:space="preserve" 312.228 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.229 + x="134.79706" 312.230 + y="415.33771" 312.231 + id="text6041"><tspan 312.232 + sodipodi:role="line" 312.233 + id="tspan6043" 312.234 + x="134.79706" 312.235 + y="415.33771" 312.236 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 312.237 + <path 312.238 + inkscape:connection-end="#rect6039" 312.239 + inkscape:connector-type="polyline" 312.240 + id="path6045" 312.241 + d="M 177.38238,372.82195 L 177.38235,389.20303" 312.242 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 312.243 + <rect 312.244 + y="245.94225" 312.245 + x="447.28412" 312.246 + height="204.51619" 312.247 + width="174.36833" 312.248 + id="rect6140" 312.249 + style="fill:url(#linearGradient6996);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 312.250 + <g 312.251 + id="g6130" 312.252 + transform="translate(152.3254,24.38544)"> 312.253 + <rect 312.254 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 312.255 + id="rect6106" 312.256 + width="134.53746" 312.257 + height="44.537449" 312.258 + x="314.87415" 312.259 + y="257.95059" /> 312.260 + <text 312.261 + xml:space="preserve" 312.262 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.263 + x="339.55664" 312.264 + y="283.7113" 312.265 + id="text6108"><tspan 312.266 + sodipodi:role="line" 312.267 + id="tspan6110" 312.268 + x="339.55664" 312.269 + y="283.7113" 312.270 + style="font-family:Courier">ffb20e1701ea</tspan></text> 312.271 + </g> 312.272 + <g 312.273 + id="g6135" 312.274 + transform="translate(153.0396,49.83106)"> 312.275 + <rect 312.276 + inkscape:transform-center-y="102.85714" 312.277 + inkscape:transform-center-x="129.28571" 312.278 + style="fill:#d4d4d4;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 312.279 + id="rect6112" 312.280 + width="134.53746" 312.281 + height="44.537449" 312.282 + x="314.15985" 312.283 + y="326.52203" /> 312.284 + <text 312.285 + inkscape:transform-center-y="102.7311" 312.286 + inkscape:transform-center-x="128.69672" 312.287 + xml:space="preserve" 312.288 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.289 + x="338.84335" 312.290 + y="352.28271" 312.291 + id="text6114"><tspan 312.292 + sodipodi:role="line" 312.293 + id="tspan6116" 312.294 + x="338.84335" 312.295 + y="352.28271" 312.296 + style="fill:black;fill-opacity:1;font-family:Courier">e7639888bb2f</tspan></text> 312.297 + </g> 312.298 + <text 312.299 + xml:space="preserve" 312.300 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.301 + x="466.63208" 312.302 + y="270.479" 312.303 + id="text6118"><tspan 312.304 + sodipodi:role="line" 312.305 + id="tspan6120" 312.306 + x="466.63208" 312.307 + y="270.479">First parent (unchanged)</tspan></text> 312.308 + <text 312.309 + xml:space="preserve" 312.310 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.311 + x="466.07544" 312.312 + y="364.49615" 312.313 + id="text6122"><tspan 312.314 + sodipodi:role="line" 312.315 + id="tspan6124" 312.316 + x="466.07544" 312.317 + y="364.49615">Second parent</tspan></text> 312.318 + <text 312.319 + xml:space="preserve" 312.320 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.321 + x="446.61743" 312.322 + y="231.36218" 312.323 + id="text6195"><tspan 312.324 + sodipodi:role="line" 312.325 + id="tspan6197" 312.326 + x="446.61743" 312.327 + y="231.36218">Parents of working directory</tspan></text> 312.328 + <path 312.329 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 312.330 + d="M 466.82542,300.21999 L 377.00207,294.39744" 312.331 + id="path6266" 312.332 + inkscape:connector-type="polyline" 312.333 + inkscape:connection-start="#g6130" 312.334 + inkscape:connection-end="#rect1925" /> 312.335 + <path 312.336 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 312.337 + d="M 665.12232,418.17579 L 665.12232,418.17579" 312.338 + id="path6270" 312.339 + inkscape:connector-type="polyline" /> 312.340 + <g 312.341 + id="g2845"> 312.342 + <rect 312.343 + y="266.24374" 312.344 + x="242.09048" 312.345 + height="44.537449" 312.346 + width="134.53746" 312.347 + id="rect1925" 312.348 + style="fill:#9f9f9f;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 312.349 + <text 312.350 + id="text1927" 312.351 + y="292.00446" 312.352 + x="266.77298" 312.353 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.354 + xml:space="preserve"><tspan 312.355 + style="font-family:Courier" 312.356 + y="292.00446" 312.357 + x="266.77298" 312.358 + id="tspan1929" 312.359 + sodipodi:role="line">ffb20e1701ea</tspan></text> 312.360 + </g> 312.361 + <path 312.362 + inkscape:connector-type="polyline" 312.363 + id="path1933" 312.364 + d="M 260.89978,311.15532 L 225.84185,327.53627" 312.365 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline" 312.366 + inkscape:connection-end="#g6976" /> 312.367 + <text 312.368 + xml:space="preserve" 312.369 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.370 + x="109.45568" 312.371 + y="231.4554" 312.372 + id="text2837"><tspan 312.373 + sodipodi:role="line" 312.374 + id="tspan2839" 312.375 + x="109.45568" 312.376 + y="231.4554">Pre-existing head</tspan></text> 312.377 + <text 312.378 + xml:space="preserve" 312.379 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.380 + x="237.54184" 312.381 + y="231.4554" 312.382 + id="text2841"><tspan 312.383 + sodipodi:role="line" 312.384 + id="tspan2843" 312.385 + x="237.54184" 312.386 + y="231.4554">Newly created head (and tip)</tspan></text> 312.387 + <path 312.388 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 312.389 + d="M 148.05048,235.87482 L 149.94915,265.86962" 312.390 + id="path2850" 312.391 + inkscape:connector-type="polyline" 312.392 + inkscape:connection-end="#g1935" /> 312.393 + <path 312.394 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" 312.395 + d="M 303.83495,238.08453 L 306.87874,265.86962" 312.396 + id="path2852" 312.397 + inkscape:connector-type="polyline" 312.398 + inkscape:connection-end="#g2845" /> 312.399 + <path 312.400 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 312.401 + d="M 466.82545,379.17944 L 219.0253,307.95488" 312.402 + id="path3016" 312.403 + inkscape:connector-type="polyline" 312.404 + inkscape:connection-start="#g6135" 312.405 + inkscape:connection-end="#g1935" /> 312.406 + <g 312.407 + id="g1935"> 312.408 + <rect 312.409 + y="266.24374" 312.410 + x="84.113708" 312.411 + height="44.537449" 312.412 + width="134.53746" 312.413 + id="rect5996" 312.414 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 312.415 + <text 312.416 + id="text5998" 312.417 + y="292.00446" 312.418 + x="108.7962" 312.419 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 312.420 + xml:space="preserve"><tspan 312.421 + style="font-family:Courier" 312.422 + y="292.00446" 312.423 + x="108.7962" 312.424 + id="tspan6000" 312.425 + sodipodi:role="line">e7639888bb2f</tspan></text> 312.426 + </g> 312.427 + </g> 312.428 +</svg>
313.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 313.2 +++ b/ja/wdir-pre-branch.svg Fri Aug 14 12:10:47 2009 -0700 313.3 @@ -0,0 +1,364 @@ 313.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 313.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 313.6 +<svg 313.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 313.8 + xmlns:cc="http://web.resource.org/cc/" 313.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 313.10 + xmlns:svg="http://www.w3.org/2000/svg" 313.11 + xmlns="http://www.w3.org/2000/svg" 313.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 313.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 313.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 313.15 + width="744.09448819" 313.16 + height="1052.3622047" 313.17 + id="svg5971" 313.18 + sodipodi:version="0.32" 313.19 + inkscape:version="0.44.1" 313.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 313.21 + sodipodi:docname="wdir-branch.svg"> 313.22 + <defs 313.23 + id="defs5973"> 313.24 + <marker 313.25 + inkscape:stockid="Arrow1Mstart" 313.26 + orient="auto" 313.27 + refY="0.0" 313.28 + refX="0.0" 313.29 + id="Arrow1Mstart" 313.30 + style="overflow:visible"> 313.31 + <path 313.32 + id="path4855" 313.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 313.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 313.35 + transform="scale(0.4) translate(10,0)" /> 313.36 + </marker> 313.37 + <linearGradient 313.38 + id="linearGradient6049"> 313.39 + <stop 313.40 + style="stop-color:#686868;stop-opacity:1;" 313.41 + offset="0" 313.42 + id="stop6051" /> 313.43 + <stop 313.44 + style="stop-color:#f0f0f0;stop-opacity:1;" 313.45 + offset="1" 313.46 + id="stop6053" /> 313.47 + </linearGradient> 313.48 + <marker 313.49 + inkscape:stockid="Arrow1Mend" 313.50 + orient="auto" 313.51 + refY="0.0" 313.52 + refX="0.0" 313.53 + id="Arrow1Mend" 313.54 + style="overflow:visible;"> 313.55 + <path 313.56 + id="path4852" 313.57 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 313.58 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 313.59 + transform="scale(0.4) rotate(180) translate(10,0)" /> 313.60 + </marker> 313.61 + <linearGradient 313.62 + inkscape:collect="always" 313.63 + xlink:href="#linearGradient6049" 313.64 + id="linearGradient6083" 313.65 + gradientUnits="userSpaceOnUse" 313.66 + gradientTransform="translate(-240.0462,-8.633237e-6)" 313.67 + x1="333.91171" 313.68 + y1="488.79077" 313.69 + x2="508.94543" 313.70 + y2="263.79077" /> 313.71 + <linearGradient 313.72 + inkscape:collect="always" 313.73 + xlink:href="#linearGradient6049" 313.74 + id="linearGradient6142" 313.75 + gradientUnits="userSpaceOnUse" 313.76 + gradientTransform="translate(-42.00893,-30.49544)" 313.77 + x1="333.91171" 313.78 + y1="488.79077" 313.79 + x2="508.94543" 313.80 + y2="263.79077" /> 313.81 + <linearGradient 313.82 + inkscape:collect="always" 313.83 + xlink:href="#linearGradient6049" 313.84 + id="linearGradient6193" 313.85 + gradientUnits="userSpaceOnUse" 313.86 + gradientTransform="translate(-240.0462,-8.633237e-6)" 313.87 + x1="333.91171" 313.88 + y1="488.79077" 313.89 + x2="508.94543" 313.90 + y2="263.79077" /> 313.91 + <linearGradient 313.92 + inkscape:collect="always" 313.93 + xlink:href="#linearGradient6049" 313.94 + id="linearGradient6216" 313.95 + gradientUnits="userSpaceOnUse" 313.96 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 313.97 + x1="333.91171" 313.98 + y1="488.79077" 313.99 + x2="508.94543" 313.100 + y2="263.79077" /> 313.101 + <linearGradient 313.102 + inkscape:collect="always" 313.103 + xlink:href="#linearGradient6049" 313.104 + id="linearGradient6232" 313.105 + gradientUnits="userSpaceOnUse" 313.106 + gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 313.107 + x1="333.91171" 313.108 + y1="488.79077" 313.109 + x2="508.94543" 313.110 + y2="263.79077" /> 313.111 + <linearGradient 313.112 + inkscape:collect="always" 313.113 + xlink:href="#linearGradient6049" 313.114 + id="linearGradient6445" 313.115 + gradientUnits="userSpaceOnUse" 313.116 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 313.117 + x1="333.91171" 313.118 + y1="488.79077" 313.119 + x2="508.94543" 313.120 + y2="263.79077" /> 313.121 + <linearGradient 313.122 + inkscape:collect="always" 313.123 + xlink:href="#linearGradient6049" 313.124 + id="linearGradient6974" 313.125 + gradientUnits="userSpaceOnUse" 313.126 + gradientTransform="matrix(1.000474,0,0,0.790947,-314.246,50.85694)" 313.127 + x1="333.91171" 313.128 + y1="488.79077" 313.129 + x2="508.94543" 313.130 + y2="263.79077" /> 313.131 + <linearGradient 313.132 + inkscape:collect="always" 313.133 + xlink:href="#linearGradient6049" 313.134 + id="linearGradient6996" 313.135 + gradientUnits="userSpaceOnUse" 313.136 + gradientTransform="matrix(1.000473,0,0,0.790947,-85.16012,50.85693)" 313.137 + x1="333.91171" 313.138 + y1="488.79077" 313.139 + x2="508.94543" 313.140 + y2="263.79077" /> 313.141 + </defs> 313.142 + <sodipodi:namedview 313.143 + id="base" 313.144 + pagecolor="#ffffff" 313.145 + bordercolor="#666666" 313.146 + borderopacity="1.0" 313.147 + gridtolerance="10000" 313.148 + guidetolerance="10" 313.149 + objecttolerance="10" 313.150 + inkscape:pageopacity="0.0" 313.151 + inkscape:pageshadow="2" 313.152 + inkscape:zoom="0.90509668" 313.153 + inkscape:cx="390.0539" 313.154 + inkscape:cy="690.49342" 313.155 + inkscape:document-units="px" 313.156 + inkscape:current-layer="layer1" 313.157 + showguides="true" 313.158 + inkscape:guide-bbox="true" 313.159 + inkscape:window-width="906" 313.160 + inkscape:window-height="620" 313.161 + inkscape:window-x="0" 313.162 + inkscape:window-y="25"> 313.163 + <sodipodi:guide 313.164 + orientation="vertical" 313.165 + position="-1.4285714" 313.166 + id="guide6022" /> 313.167 + </sodipodi:namedview> 313.168 + <metadata 313.169 + id="metadata5976"> 313.170 + <rdf:RDF> 313.171 + <cc:Work 313.172 + rdf:about=""> 313.173 + <dc:format>image/svg+xml</dc:format> 313.174 + <dc:type 313.175 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 313.176 + </cc:Work> 313.177 + </rdf:RDF> 313.178 + </metadata> 313.179 + <g 313.180 + inkscape:label="Layer 1" 313.181 + inkscape:groupmode="layer" 313.182 + id="layer1"> 313.183 + <rect 313.184 + y="245.94225" 313.185 + x="20.198257" 313.186 + height="204.51619" 313.187 + width="174.36833" 313.188 + id="rect6047" 313.189 + style="fill:url(#linearGradient6974);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 313.190 + <rect 313.191 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 313.192 + id="rect5996" 313.193 + width="134.53746" 313.194 + height="44.537449" 313.195 + x="40.113693" 313.196 + y="266.24374" /> 313.197 + <text 313.198 + xml:space="preserve" 313.199 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 313.200 + x="64.796204" 313.201 + y="292.00446" 313.202 + id="text5998"><tspan 313.203 + sodipodi:role="line" 313.204 + id="tspan6000" 313.205 + x="64.796204" 313.206 + y="292.00446" 313.207 + style="font-family:Courier">e7639888bb2f</tspan></text> 313.208 + <g 313.209 + id="g6976"> 313.210 + <rect 313.211 + y="327.9104" 313.212 + x="40.113693" 313.213 + height="44.537449" 313.214 + width="134.53746" 313.215 + id="rect6004" 313.216 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 313.217 + <text 313.218 + id="text6006" 313.219 + y="353.67111" 313.220 + x="62.654205" 313.221 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 313.222 + xml:space="preserve"><tspan 313.223 + style="font-family:Courier" 313.224 + y="353.67111" 313.225 + x="62.654205" 313.226 + id="tspan6008" 313.227 + sodipodi:role="line">7b064d8bac5e</tspan></text> 313.228 + </g> 313.229 + <path 313.230 + inkscape:connection-end="#rect6004" 313.231 + inkscape:connector-type="polyline" 313.232 + id="path6020" 313.233 + d="M 107.38242,311.15529 L 107.38242,327.53626" 313.234 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 313.235 + <rect 313.236 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 313.237 + id="rect6039" 313.238 + width="134.53746" 313.239 + height="44.537449" 313.240 + x="40.113571" 313.241 + y="389.57703" /> 313.242 + <text 313.243 + xml:space="preserve" 313.244 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 313.245 + x="64.797073" 313.246 + y="415.33771" 313.247 + id="text6041"><tspan 313.248 + sodipodi:role="line" 313.249 + id="tspan6043" 313.250 + x="64.797073" 313.251 + y="415.33771" 313.252 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 313.253 + <path 313.254 + inkscape:connection-end="#rect6039" 313.255 + inkscape:connector-type="polyline" 313.256 + id="path6045" 313.257 + d="M 107.38238,372.82195 L 107.38235,389.20301" 313.258 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" /> 313.259 + <text 313.260 + xml:space="preserve" 313.261 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 313.262 + x="19.660461" 313.263 + y="231.36218" 313.264 + id="text6102"><tspan 313.265 + sodipodi:role="line" 313.266 + id="tspan6104" 313.267 + x="19.660461" 313.268 + y="231.36218">History in repository</tspan></text> 313.269 + <rect 313.270 + y="245.94225" 313.271 + x="249.28412" 313.272 + height="204.51619" 313.273 + width="174.36833" 313.274 + id="rect6140" 313.275 + style="fill:url(#linearGradient6996);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 313.276 + <g 313.277 + id="g6130" 313.278 + transform="translate(-45.67459,24.38544)"> 313.279 + <rect 313.280 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" 313.281 + id="rect6106" 313.282 + width="134.53746" 313.283 + height="44.537449" 313.284 + x="314.87415" 313.285 + y="257.95059" /> 313.286 + <text 313.287 + xml:space="preserve" 313.288 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 313.289 + x="339.55664" 313.290 + y="283.7113" 313.291 + id="text6108"><tspan 313.292 + sodipodi:role="line" 313.293 + id="tspan6110" 313.294 + x="339.55664" 313.295 + y="283.7113" 313.296 + style="font-family:Courier">7b064d8bac5e</tspan></text> 313.297 + </g> 313.298 + <g 313.299 + id="g6135" 313.300 + transform="translate(-44.96042,49.83106)"> 313.301 + <rect 313.302 + inkscape:transform-center-y="102.85714" 313.303 + inkscape:transform-center-x="129.28571" 313.304 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 313.305 + id="rect6112" 313.306 + width="134.53746" 313.307 + height="44.537449" 313.308 + x="314.15985" 313.309 + y="326.52203" /> 313.310 + <text 313.311 + inkscape:transform-center-y="102.7311" 313.312 + inkscape:transform-center-x="128.69672" 313.313 + xml:space="preserve" 313.314 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 313.315 + x="338.84335" 313.316 + y="352.28271" 313.317 + id="text6114"><tspan 313.318 + sodipodi:role="line" 313.319 + id="tspan6116" 313.320 + x="338.84335" 313.321 + y="352.28271" 313.322 + style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text> 313.323 + </g> 313.324 + <text 313.325 + xml:space="preserve" 313.326 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 313.327 + x="268.63208" 313.328 + y="270.479" 313.329 + id="text6118"><tspan 313.330 + sodipodi:role="line" 313.331 + id="tspan6120" 313.332 + x="268.63208" 313.333 + y="270.479">First parent</tspan></text> 313.334 + <text 313.335 + xml:space="preserve" 313.336 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 313.337 + x="268.07544" 313.338 + y="364.49615" 313.339 + id="text6122"><tspan 313.340 + sodipodi:role="line" 313.341 + id="tspan6124" 313.342 + x="268.07544" 313.343 + y="364.49615">Second parent</tspan></text> 313.344 + <text 313.345 + xml:space="preserve" 313.346 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 313.347 + x="248.61746" 313.348 + y="231.36218" 313.349 + id="text6195"><tspan 313.350 + sodipodi:role="line" 313.351 + id="tspan6197" 313.352 + x="248.61746" 313.353 + y="231.36218">Parents of working directory</tspan></text> 313.354 + <path 313.355 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 313.356 + d="M 268.82543,318.06163 L 175.02528,336.72225" 313.357 + id="path6266" 313.358 + inkscape:connector-type="polyline" 313.359 + inkscape:connection-end="#g6976" 313.360 + inkscape:connection-start="#g6130" /> 313.361 + <path 313.362 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 313.363 + d="M 665.12232,418.17579 L 665.12232,418.17579" 313.364 + id="path6270" 313.365 + inkscape:connector-type="polyline" /> 313.366 + </g> 313.367 +</svg>
314.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 314.2 +++ b/ja/wdir.svg Fri Aug 14 12:10:47 2009 -0700 314.3 @@ -0,0 +1,348 @@ 314.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 314.5 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 314.6 +<svg 314.7 + xmlns:dc="http://purl.org/dc/elements/1.1/" 314.8 + xmlns:cc="http://web.resource.org/cc/" 314.9 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 314.10 + xmlns:svg="http://www.w3.org/2000/svg" 314.11 + xmlns="http://www.w3.org/2000/svg" 314.12 + xmlns:xlink="http://www.w3.org/1999/xlink" 314.13 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 314.14 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 314.15 + width="744.09448819" 314.16 + height="1052.3622047" 314.17 + id="svg5971" 314.18 + sodipodi:version="0.32" 314.19 + inkscape:version="0.44.1" 314.20 + sodipodi:docbase="/home/bos/hg/hgbook/en" 314.21 + sodipodi:docname="wdir.svg"> 314.22 + <defs 314.23 + id="defs5973"> 314.24 + <marker 314.25 + inkscape:stockid="Arrow1Mstart" 314.26 + orient="auto" 314.27 + refY="0.0" 314.28 + refX="0.0" 314.29 + id="Arrow1Mstart" 314.30 + style="overflow:visible"> 314.31 + <path 314.32 + id="path4855" 314.33 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 314.34 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 314.35 + transform="scale(0.4) translate(10,0)" /> 314.36 + </marker> 314.37 + <linearGradient 314.38 + id="linearGradient6049"> 314.39 + <stop 314.40 + style="stop-color:#686868;stop-opacity:1;" 314.41 + offset="0" 314.42 + id="stop6051" /> 314.43 + <stop 314.44 + style="stop-color:#f0f0f0;stop-opacity:1;" 314.45 + offset="1" 314.46 + id="stop6053" /> 314.47 + </linearGradient> 314.48 + <marker 314.49 + inkscape:stockid="Arrow1Mend" 314.50 + orient="auto" 314.51 + refY="0.0" 314.52 + refX="0.0" 314.53 + id="Arrow1Mend" 314.54 + style="overflow:visible;"> 314.55 + <path 314.56 + id="path4852" 314.57 + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 314.58 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" 314.59 + transform="scale(0.4) rotate(180) translate(10,0)" /> 314.60 + </marker> 314.61 + <linearGradient 314.62 + inkscape:collect="always" 314.63 + xlink:href="#linearGradient6049" 314.64 + id="linearGradient6083" 314.65 + gradientUnits="userSpaceOnUse" 314.66 + gradientTransform="translate(-240.0462,-8.633237e-6)" 314.67 + x1="333.91171" 314.68 + y1="488.79077" 314.69 + x2="508.94543" 314.70 + y2="263.79077" /> 314.71 + <linearGradient 314.72 + inkscape:collect="always" 314.73 + xlink:href="#linearGradient6049" 314.74 + id="linearGradient6142" 314.75 + gradientUnits="userSpaceOnUse" 314.76 + gradientTransform="translate(-42.00893,-30.49544)" 314.77 + x1="333.91171" 314.78 + y1="488.79077" 314.79 + x2="508.94543" 314.80 + y2="263.79077" /> 314.81 + <linearGradient 314.82 + inkscape:collect="always" 314.83 + xlink:href="#linearGradient6049" 314.84 + id="linearGradient6193" 314.85 + gradientUnits="userSpaceOnUse" 314.86 + gradientTransform="translate(-240.0462,-8.633237e-6)" 314.87 + x1="333.91171" 314.88 + y1="488.79077" 314.89 + x2="508.94543" 314.90 + y2="263.79077" /> 314.91 + <linearGradient 314.92 + inkscape:collect="always" 314.93 + xlink:href="#linearGradient6049" 314.94 + id="linearGradient6216" 314.95 + gradientUnits="userSpaceOnUse" 314.96 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 314.97 + x1="333.91171" 314.98 + y1="488.79077" 314.99 + x2="508.94543" 314.100 + y2="263.79077" /> 314.101 + <linearGradient 314.102 + inkscape:collect="always" 314.103 + xlink:href="#linearGradient6049" 314.104 + id="linearGradient6232" 314.105 + gradientUnits="userSpaceOnUse" 314.106 + gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)" 314.107 + x1="333.91171" 314.108 + y1="488.79077" 314.109 + x2="508.94543" 314.110 + y2="263.79077" /> 314.111 + <linearGradient 314.112 + inkscape:collect="always" 314.113 + xlink:href="#linearGradient6049" 314.114 + id="linearGradient6445" 314.115 + gradientUnits="userSpaceOnUse" 314.116 + gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)" 314.117 + x1="333.91171" 314.118 + y1="488.79077" 314.119 + x2="508.94543" 314.120 + y2="263.79077" /> 314.121 + </defs> 314.122 + <sodipodi:namedview 314.123 + id="base" 314.124 + pagecolor="#ffffff" 314.125 + bordercolor="#666666" 314.126 + borderopacity="1.0" 314.127 + gridtolerance="10000" 314.128 + guidetolerance="10" 314.129 + objecttolerance="10" 314.130 + inkscape:pageopacity="0.0" 314.131 + inkscape:pageshadow="2" 314.132 + inkscape:zoom="0.90509668" 314.133 + inkscape:cx="390.0539" 314.134 + inkscape:cy="690.49342" 314.135 + inkscape:document-units="px" 314.136 + inkscape:current-layer="layer1" 314.137 + showguides="true" 314.138 + inkscape:guide-bbox="true" 314.139 + inkscape:window-width="906" 314.140 + inkscape:window-height="620" 314.141 + inkscape:window-x="0" 314.142 + inkscape:window-y="25"> 314.143 + <sodipodi:guide 314.144 + orientation="vertical" 314.145 + position="-1.4285714" 314.146 + id="guide6022" /> 314.147 + </sodipodi:namedview> 314.148 + <metadata 314.149 + id="metadata5976"> 314.150 + <rdf:RDF> 314.151 + <cc:Work 314.152 + rdf:about=""> 314.153 + <dc:format>image/svg+xml</dc:format> 314.154 + <dc:type 314.155 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 314.156 + </cc:Work> 314.157 + </rdf:RDF> 314.158 + </metadata> 314.159 + <g 314.160 + inkscape:label="Layer 1" 314.161 + inkscape:groupmode="layer" 314.162 + id="layer1"> 314.163 + <g 314.164 + id="g6431" 314.165 + transform="translate(0,-0.137863)"> 314.166 + <rect 314.167 + style="fill:url(#linearGradient6445);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 314.168 + id="rect6047" 314.169 + width="174.36833" 314.170 + height="204.51619" 314.171 + x="94.198257" 314.172 + y="246.08011" /> 314.173 + <rect 314.174 + y="266.38159" 314.175 + x="114.11369" 314.176 + height="44.537449" 314.177 + width="134.53746" 314.178 + id="rect5996" 314.179 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 314.180 + <text 314.181 + id="text5998" 314.182 + y="292.1423" 314.183 + x="138.7962" 314.184 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 314.185 + xml:space="preserve"><tspan 314.186 + style="font-family:Courier" 314.187 + y="292.1423" 314.188 + x="138.7962" 314.189 + id="tspan6000" 314.190 + sodipodi:role="line">e7639888bb2f</tspan></text> 314.191 + <rect 314.192 + y="328.04825" 314.193 + x="114.11369" 314.194 + height="44.537449" 314.195 + width="134.53746" 314.196 + id="rect6004" 314.197 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 314.198 + <text 314.199 + id="text6006" 314.200 + y="353.80896" 314.201 + x="136.65421" 314.202 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 314.203 + xml:space="preserve"><tspan 314.204 + style="font-family:Courier" 314.205 + y="353.80896" 314.206 + x="136.65421" 314.207 + id="tspan6008" 314.208 + sodipodi:role="line">7b064d8bac5e</tspan></text> 314.209 + <path 314.210 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 314.211 + d="M 181.38242,311.29315 L 181.38242,327.67412" 314.212 + id="path6020" 314.213 + inkscape:connector-type="polyline" 314.214 + inkscape:connection-end="#rect6004" /> 314.215 + <rect 314.216 + y="389.71487" 314.217 + x="114.11357" 314.218 + height="44.537449" 314.219 + width="134.53746" 314.220 + id="rect6039" 314.221 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 314.222 + <text 314.223 + id="text6041" 314.224 + y="415.47556" 314.225 + x="138.79707" 314.226 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 314.227 + xml:space="preserve"><tspan 314.228 + style="fill:#979797;fill-opacity:1;font-family:Courier" 314.229 + y="415.47556" 314.230 + x="138.79707" 314.231 + id="tspan6043" 314.232 + sodipodi:role="line">000000000000</tspan></text> 314.233 + <path 314.234 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" 314.235 + d="M 181.38238,372.95981 L 181.38235,389.34087" 314.236 + id="path6045" 314.237 + inkscape:connector-type="polyline" 314.238 + inkscape:connection-end="#rect6039" /> 314.239 + </g> 314.240 + <text 314.241 + xml:space="preserve" 314.242 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 314.243 + x="93.660484" 314.244 + y="231.36218" 314.245 + id="text6102"><tspan 314.246 + sodipodi:role="line" 314.247 + id="tspan6104" 314.248 + x="93.660484" 314.249 + y="231.36218">History in repository</tspan></text> 314.250 + <g 314.251 + id="g6416"> 314.252 + <rect 314.253 + style="fill:url(#linearGradient6232);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 314.254 + id="rect6140" 314.255 + width="174.36833" 314.256 + height="204.51619" 314.257 + x="323.28412" 314.258 + y="245.94225" /> 314.259 + <g 314.260 + transform="translate(28.32541,24.38544)" 314.261 + id="g6130"> 314.262 + <rect 314.263 + y="257.95059" 314.264 + x="314.87415" 314.265 + height="44.537449" 314.266 + width="134.53746" 314.267 + id="rect6106" 314.268 + style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" /> 314.269 + <text 314.270 + id="text6108" 314.271 + y="283.7113" 314.272 + x="339.55664" 314.273 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 314.274 + xml:space="preserve"><tspan 314.275 + style="font-family:Courier" 314.276 + y="283.7113" 314.277 + x="339.55664" 314.278 + id="tspan6110" 314.279 + sodipodi:role="line">e7639888bb2f</tspan></text> 314.280 + </g> 314.281 + <g 314.282 + transform="translate(29.03958,49.83106)" 314.283 + id="g6135"> 314.284 + <rect 314.285 + y="326.52203" 314.286 + x="314.15985" 314.287 + height="44.537449" 314.288 + width="134.53746" 314.289 + id="rect6112" 314.290 + style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 314.291 + inkscape:transform-center-x="129.28571" 314.292 + inkscape:transform-center-y="102.85714" /> 314.293 + <text 314.294 + id="text6114" 314.295 + y="352.28271" 314.296 + x="338.84335" 314.297 + style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 314.298 + xml:space="preserve" 314.299 + inkscape:transform-center-x="128.69672" 314.300 + inkscape:transform-center-y="102.7311"><tspan 314.301 + style="fill:#979797;fill-opacity:1;font-family:Courier" 314.302 + y="352.28271" 314.303 + x="338.84335" 314.304 + id="tspan6116" 314.305 + sodipodi:role="line">000000000000</tspan></text> 314.306 + </g> 314.307 + <text 314.308 + id="text6118" 314.309 + y="270.479" 314.310 + x="342.63208" 314.311 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 314.312 + xml:space="preserve"><tspan 314.313 + y="270.479" 314.314 + x="342.63208" 314.315 + id="tspan6120" 314.316 + sodipodi:role="line">First parent</tspan></text> 314.317 + <text 314.318 + id="text6122" 314.319 + y="364.49615" 314.320 + x="342.07544" 314.321 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 314.322 + xml:space="preserve"><tspan 314.323 + y="364.49615" 314.324 + x="342.07544" 314.325 + id="tspan6124" 314.326 + sodipodi:role="line">Second parent</tspan></text> 314.327 + </g> 314.328 + <text 314.329 + xml:space="preserve" 314.330 + style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" 314.331 + x="322.61746" 314.332 + y="231.36218" 314.333 + id="text6195"><tspan 314.334 + sodipodi:role="line" 314.335 + id="tspan6197" 314.336 + x="322.61746" 314.337 + y="231.36218">Parents of working directory</tspan></text> 314.338 + <path 314.339 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" 314.340 + d="M 342.82543,299.89384 L 249.02528,293.36123" 314.341 + id="path6266" 314.342 + inkscape:connector-type="polyline" 314.343 + inkscape:connection-start="#g6130" 314.344 + inkscape:connection-end="#rect5996" /> 314.345 + <path 314.346 + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 314.347 + d="M 665.12232,418.17579 L 665.12232,418.17579" 314.348 + id="path6270" 314.349 + inkscape:connector-type="polyline" /> 314.350 + </g> 314.351 +</svg>