hgbook

changeset 708:d6ca1334a19d

Japanese translation on a24b370a16ee
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Fri Jul 31 19:49:16 2009 +0900 (2009-07-31)
parents a24b370a16ee
children f9f71850ae1a
files .hgignore ja/00book.tex ja/00book_html.tex ja/00book_pdf.tex ja/99book.bib ja/99defs.tex ja/CONFIRMED.ja.txt ja/Makefile ja/Makefile.linux ja/Makefile.win32 ja/README.ja.txt ja/atbegdvi.tex ja/atbegshi.tex ja/bookhtml.cfg ja/branch.tex ja/collab.tex ja/concepts.tex ja/custom.sty ja/daily.tex ja/examples/backout ja/examples/backout.init.out ja/examples/backout.manual.backout.out ja/examples/backout.manual.cat.out ja/examples/backout.manual.clone.out ja/examples/backout.manual.heads.out ja/examples/backout.manual.log.out ja/examples/backout.manual.merge.out ja/examples/backout.manual.parents.out ja/examples/backout.non-tip.backout.out ja/examples/backout.non-tip.cat.out ja/examples/backout.non-tip.clone.out ja/examples/backout.simple.log.out ja/examples/backout.simple.out ja/examples/bisect ja/examples/bisect.commits.out ja/examples/bisect.help.out ja/examples/bisect.init.out ja/examples/bisect.search.bad-init.out ja/examples/bisect.search.good-init.out ja/examples/bisect.search.init.out ja/examples/bisect.search.mytest.out ja/examples/bisect.search.reset.out ja/examples/bisect.search.rest.out ja/examples/bisect.search.step1.out ja/examples/bisect.search.step2.out ja/examples/branch-named ja/examples/branch-named.branch.out ja/examples/branch-named.branches.out ja/examples/branch-named.commit.out ja/examples/branch-named.create.out ja/examples/branch-named.foo-commit.out ja/examples/branch-named.merge.out ja/examples/branch-named.parents.out ja/examples/branch-named.rebranch.out ja/examples/branch-named.status.out ja/examples/branch-named.update-bar.out ja/examples/branch-named.update-foo.out ja/examples/branch-named.update-nothing.out ja/examples/branch-named.update-switchy.out ja/examples/branch-named.update.out ja/examples/branch-repo ja/examples/branch-repo.bugfix.out ja/examples/branch-repo.clone.out ja/examples/branch-repo.merge.out ja/examples/branch-repo.new.out ja/examples/branch-repo.pull.out ja/examples/branch-repo.tag.out ja/examples/branching ja/examples/branching.clone.out ja/examples/branching.init.out ja/examples/branching.main.out ja/examples/branching.merge.out ja/examples/branching.stable.out ja/examples/branching.tag.out ja/examples/branching.update.out ja/examples/cmdref ja/examples/cmdref.diff-p.out ja/examples/daily.copy ja/examples/daily.copy.after.out ja/examples/daily.copy.cat.out ja/examples/daily.copy.clone.out ja/examples/daily.copy.copy.out ja/examples/daily.copy.dir-dest.out ja/examples/daily.copy.dir-src-dest.out ja/examples/daily.copy.dir-src.out ja/examples/daily.copy.init.out ja/examples/daily.copy.merge.out ja/examples/daily.copy.other.out ja/examples/daily.copy.simple.out ja/examples/daily.copy.status-copy.out ja/examples/daily.copy.status.out ja/examples/daily.files ja/examples/daily.files.add-dir.out ja/examples/daily.files.add.out ja/examples/daily.files.addremove.out ja/examples/daily.files.commit-addremove.out ja/examples/daily.files.hidden.out ja/examples/daily.files.missing.out ja/examples/daily.files.recover-missing.out ja/examples/daily.files.remove-after.out ja/examples/daily.files.remove.out ja/examples/daily.rename ja/examples/daily.rename.rename.out ja/examples/daily.rename.status-copy.out ja/examples/daily.rename.status.out ja/examples/daily.revert ja/examples/daily.revert.add.out ja/examples/daily.revert.copy.out ja/examples/daily.revert.missing.out ja/examples/daily.revert.modify.out ja/examples/daily.revert.remove.out ja/examples/daily.revert.rename-orig.out ja/examples/daily.revert.rename.out ja/examples/daily.revert.status.out ja/examples/daily.revert.unmodify.out ja/examples/data/check_whitespace.py ja/examples/data/remove-redundant-null-checks.patch ja/examples/extdiff ja/examples/extdiff.diff.out ja/examples/extdiff.extdiff-ctx.out ja/examples/extdiff.extdiff.out ja/examples/filenames ja/examples/filenames.dirs.out ja/examples/filenames.files.out ja/examples/filenames.filter.exclude.out ja/examples/filenames.filter.include.out ja/examples/filenames.glob.group.out ja/examples/filenames.glob.question.out ja/examples/filenames.glob.range.out ja/examples/filenames.glob.star-starstar.out ja/examples/filenames.glob.star.out ja/examples/filenames.glob.starstar.out ja/examples/filenames.wdir-relname.out ja/examples/filenames.wdir-subdir.out ja/examples/hook.msglen ja/examples/hook.msglen.go.out ja/examples/hook.msglen.run.out ja/examples/hook.simple ja/examples/hook.simple.ext.out ja/examples/hook.simple.init.out ja/examples/hook.simple.pretxncommit.out ja/examples/hook.ws ja/examples/hook.ws.better.out ja/examples/hook.ws.simple.out ja/examples/issue29 ja/examples/issue29.go.out ja/examples/mq.dodiff ja/examples/mq.dodiff.diff.out ja/examples/mq.guards ja/examples/mq.guards.init.out ja/examples/mq.guards.qguard.neg.out ja/examples/mq.guards.qguard.out ja/examples/mq.guards.qguard.pos.out ja/examples/mq.guards.qselect.cat.out ja/examples/mq.guards.qselect.error.out ja/examples/mq.guards.qselect.foo.out ja/examples/mq.guards.qselect.foobar.out ja/examples/mq.guards.qselect.qpush.out ja/examples/mq.guards.qselect.quux.out ja/examples/mq.guards.series.out ja/examples/mq.id ja/examples/mq.id.out.out ja/examples/mq.id.output.out ja/examples/mq.qinit-help ja/examples/mq.qinit-help.help.out ja/examples/mq.tarball ja/examples/mq.tarball.download.out ja/examples/mq.tarball.newsource.out ja/examples/mq.tarball.qinit.out ja/examples/mq.tarball.repush.out ja/examples/mq.tools ja/examples/mq.tools.lsdiff.out ja/examples/mq.tools.tools.out ja/examples/mq.tutorial ja/examples/mq.tutorial.add.out ja/examples/mq.tutorial.qinit.out ja/examples/mq.tutorial.qnew.out ja/examples/mq.tutorial.qnew2.out ja/examples/mq.tutorial.qpop.out ja/examples/mq.tutorial.qpush-a.out ja/examples/mq.tutorial.qrefresh.out ja/examples/mq.tutorial.qrefresh2.out ja/examples/mq.tutorial.qseries.out ja/examples/rename.divergent ja/examples/rename.divergent.clone.out ja/examples/rename.divergent.merge.out ja/examples/rename.divergent.rename.anne.out ja/examples/rename.divergent.rename.bob.out ja/examples/rollback ja/examples/rollback.add.out ja/examples/rollback.commit.out ja/examples/rollback.rollback.out ja/examples/rollback.status.out ja/examples/rollback.tip.out ja/examples/rollback.twice.out ja/examples/run-example ja/examples/svn-long.txt ja/examples/svn-short.txt ja/examples/svn.style ja/examples/svn.template ja/examples/tag ja/examples/tag.init.out ja/examples/tag.log.out ja/examples/tag.log.v1.0.out ja/examples/tag.remove.out ja/examples/tag.replace.out ja/examples/tag.tag.out ja/examples/tag.tags.out ja/examples/tag.tip.out ja/examples/template.simple ja/examples/template.simple.changelog.out ja/examples/template.simple.combine.out ja/examples/template.simple.compact.out ja/examples/template.simple.datekeyword.out ja/examples/template.simple.keywords.out ja/examples/template.simple.manyfilters.out ja/examples/template.simple.normal.out ja/examples/template.simple.rev.out ja/examples/template.simple.simplest.out ja/examples/template.simple.simplesub.out ja/examples/template.svnstyle ja/examples/template.svnstyle.id.out ja/examples/template.svnstyle.result.out ja/examples/template.svnstyle.short.out ja/examples/template.svnstyle.simplest.out ja/examples/template.svnstyle.style.out ja/examples/template.svnstyle.syntax.error.out ja/examples/template.svnstyle.syntax.input.out ja/examples/template.svnstyle.template.out ja/examples/tour ja/examples/tour-merge-conflict ja/examples/tour-merge-conflict.commit.out ja/examples/tour-merge-conflict.cousin.out ja/examples/tour-merge-conflict.merge.out ja/examples/tour-merge-conflict.pull.out ja/examples/tour-merge-conflict.son.out ja/examples/tour-merge-conflict.wife.out ja/examples/tour.clone-pull.out ja/examples/tour.clone-push.out ja/examples/tour.clone.out ja/examples/tour.commit.out ja/examples/tour.diff.out ja/examples/tour.help.out ja/examples/tour.incoming.out ja/examples/tour.log-r.out ja/examples/tour.log-v.out ja/examples/tour.log-vp.out ja/examples/tour.log.out ja/examples/tour.log.range.out ja/examples/tour.ls-a.out ja/examples/tour.ls.out ja/examples/tour.merge.cat.out ja/examples/tour.merge.clone.out ja/examples/tour.merge.commit.out ja/examples/tour.merge.heads.out ja/examples/tour.merge.merge.out ja/examples/tour.merge.parents.out ja/examples/tour.merge.pull.out ja/examples/tour.merge.tip.out ja/examples/tour.merge.update.out ja/examples/tour.older.out ja/examples/tour.outgoing.net.out ja/examples/tour.outgoing.out ja/examples/tour.parents.out ja/examples/tour.pull.out ja/examples/tour.push.net.out ja/examples/tour.push.nothing.out ja/examples/tour.push.out ja/examples/tour.reclone.out ja/examples/tour.sed.out ja/examples/tour.status.out ja/examples/tour.tip.out ja/examples/tour.update.out ja/examples/tour.version.out ja/feature-branches.dot ja/filelog.svg ja/filenames.tex ja/fixhtml.py ja/hgbook.css ja/hgext.tex ja/hook.tex ja/htlatex.sh ja/intro.tex ja/license.tex ja/metadata.svg ja/mq-collab.tex ja/mq-stack.svg ja/mq.tex ja/preface.tex ja/revlog.svg ja/snapshot.svg ja/srcinstall.tex ja/svg2eps.sh ja/svg2eps_w32.sh ja/svg2png.sh ja/svg2png_w32.sh ja/template.tex ja/tour-basic.tex ja/tour-history.svg ja/tour-merge-conflict.svg ja/tour-merge-merge.svg ja/tour-merge-pull.svg ja/tour-merge-sep-repos.svg ja/tour-merge.tex ja/undo-manual-merge.dot ja/undo-manual.dot ja/undo-non-tip.dot ja/undo-simple.dot ja/undo.tex ja/variant.el ja/wdir-after-commit.svg ja/wdir-branch.svg ja/wdir-merge.svg ja/wdir-pre-branch.svg ja/wdir.svg
line diff
     1.1 --- a/.hgignore	Sun Jun 17 11:21:32 2007 -0700
     1.2 +++ b/.hgignore	Fri Jul 31 19:49:16 2009 +0900
     1.3 @@ -24,6 +24,7 @@
     1.4  *.orig
     1.5  */pdf/*.out
     1.6  *.pdf
     1.7 +*.bb
     1.8  *.png
     1.9  *.ps
    1.10  *.run
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/ja/00book.tex	Fri Jul 31 19:49:16 2009 +0900
     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 Jul 31 19:49:16 2009 +0900
     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 Jul 31 19:49:16 2009 +0900
     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 Jul 31 19:49:16 2009 +0900
     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 Jul 31 19:49:16 2009 +0900
     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 Jul 31 19:49:16 2009 +0900
     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 Jul 31 19:49:16 2009 +0900
     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 Jul 31 19:49:16 2009 +0900
     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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
    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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 +
   216.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   216.2 +++ b/ja/examples/template.simple.normal.out	Fri Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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$&#2$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 Jul 31 19:49:16 2009 +0900
   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'(&#x003[CE];)')
  277.26 +unicode_re = re.compile(r'&#x00([0-7][0-9A-F]);')
  277.27 +fancyvrb_re = re.compile(r'id="fancyvrb\d+"', re.I)
  277.28 +ligature_re = re.compile(r'&#xFB0([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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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$$$&#2$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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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$$$&#2CM$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$$$&#2CM$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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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 Jul 31 19:49:16 2009 +0900
   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>