foozy@708: \chapter*{Preface} foozy@708: \addcontentsline{toc}{chapter}{Preface} foozy@708: \label{chap:preface} foozy@708: foozy@708: 分散構成管理は、比較的新しい領域であり、 foozy@708: 未開の地を切り開こうとする人々の意欲によって、 foozy@708: 発展著しいものがあります。 foozy@708: foozy@708: 私が分散構成管理に関して筆を執っているのは、 foozy@708: この分野が手引き書を書く価値のある重要なテーマであるという確信からです。 foozy@708: 執筆の題材として Mercurial を選択したのは、 foozy@708: 分散構成管理の概要を学習するのに適した容易さと、 foozy@708: 他の多くの構成管理ツールでは適用の難しい実践の場からの要望への適用性の、 foozy@708: 2つを併せ持っているためです。 foozy@708: foozy@708: \section{This book is a work in progress} foozy@708: foozy@708: 本書は、 foozy@708: 読者の役に立つことを願って、 foozy@708: 執筆途中から公開しています。 foozy@708: その一方で、 foozy@708: 読者が本書を利用することが、 foozy@708: 一種の査読として機能することも期待しています。 foozy@708: foozy@708: \section{About the examples in this book} foozy@708: \label{sec:automated-example-running} foozy@708: foozy@708: 本書では、 foozy@708: コードのサンプルに関して、 foozy@708: 通例とは異なる手法を採用しています。 foozy@708: 全てのサンプルは``生きた''--- foozy@708: シェルスクリプトにより実際に foozy@708: Mercurial コマンドを実行した結果を使用した foozy@708: ---サンプルです。 foozy@708: 本書は常にソースファイルから「ビルド」され、 foozy@708: 全てのサンプルスクリプトの自動実行と、 foozy@708: その結果と期待する結果との比較が行われます。 foozy@708: foozy@708: この手法の利点は、 foozy@708: 本書が冒頭で言及している foozy@708: Mercurial の版における振る舞いを\emph{厳密に}記述していることになるため、 foozy@708: サンプルが常に正確である点にあります。 foozy@708: 執筆対象となる Mercurial の版を変更し、 foozy@708: その結果コマンドの出力が変化した場合、 foozy@708: 本書のビルドは失敗します。 foozy@708: foozy@708: この手法のわずかな欠点は、 foozy@708: サンプルにおいて目にする日時情報が、 foozy@708: 同じコマンドを人手で入力した際とは異なる方法で、 foozy@708: ``押し潰され''がちな点です。 foozy@708: 複数のコマンドを毎秒入力し続けるのは人手では無理ですが、 foozy@708: 例示されている実行結果の日時情報によれば、 foozy@708: 本書のビルドに使用される自動化スクリプトは、 foozy@708: 1秒間に実に多くのコマンドを実行しています。 foozy@708: foozy@708: このため、 foozy@708: 本書のサンプルにおける連続した複数回のコミットは、 foozy@708: まるで同一時刻に起きたことのように見えます。 foozy@708: この現象は foozy@708: \ref{sec:undo:bisect}~節における foozy@708: \hgext{bisect} の例に見ることができます。 foozy@708: foozy@708: 以上のことから、 foozy@708: 本書のサンプルを見る際には、 foozy@708: コマンドの出力における日時情報に、 foozy@708: 必要以上の注意を払わないようにしてください。 foozy@708: その代わり、 foozy@708: サンプルにおいて目にする挙動や、その再現性に関しては、 foozy@708: \emph{確信}を持っていただいて構いません。 foozy@708: foozy@708: \section{Colophon---this book is Free} foozy@708: foozy@708: 本書は foozy@708: Open Publication License 下における利用を許可し、 foozy@708: もっぱら Free Software ツールを使用して生成されます。 foozy@708: 組版には \LaTeX{}、 foozy@708: 図版には \href{http://www.inkscape.org/}{Inkscape} を使用しています。 foozy@708: foozy@708: 本書の全ソースコードは、 foozy@708: \url{http://hg.serpentine.com/mercurial/book} foozy@708: にある Mercurial リポジトリで公開されています。 foozy@708: foozy@708: %%% Local Variables: foozy@708: %%% mode: latex foozy@708: %%% TeX-master: "00book" foozy@708: %%% End: