Source

hgbook / en / ch00-preface.xml

<!-- vim: set filetype=docbkxml shiftwidth=2 autoindent expandtab tw=77 : -->

<preface id="chap:preface">
  <?dbhtml filename="preface.html"?>
  <title>Preface</title>

  <sect1>
    <title>Technical storytelling</title>

    <para id="x_72e">A few years ago, when I wanted to explain why I believed
      that distributed revision control is important, the field was
      then so new that there was almost no published literature to
      refer people to.</para>

    <para id="x_72f">Although at that time I spent some time working on the
      internals of Mercurial itself, I switched to writing this book
      because that seemed like the most effective way to help the
      software to reach a wide audience, along with the idea that
      revision control ought to be distributed in nature.  I publish
      the book online under a liberal license for the same
      reason: to get the word out.</para>

    <para id="x_730">There's a familiar rhythm to a good software book that
      closely resembles telling a story: What is this thing?  Why does
      it matter?  How will it help me?  How do I use it?  In this
      book, I try to answer those questions for distributed revision
      control in general, and for Mercurial in particular.</para>
  </sect1>
    
  <sect1>
    <title>Thank you for supporting Mercurial</title>

    <para id="x_731">By purchasing a copy of this book, you are supporting the
      continued development and freedom of Mercurial in particular,
      and of open source and free software in general. O'Reilly Media
      and I are donating my royalties on the sales of this book to the
      Software Freedom Conservancy (<ulink
	url="http://www.softwarefreedom.org/">http://www.softwarefreedom.org/</ulink>) 
      which provides clerical and legal support to Mercurial and a
      number of other prominent and worthy open source software
      projects.</para>
  </sect1>

  <sect1>
    <title>Acknowledgments</title>

    <para id="x_732">This book would not exist were it not for the efforts of
      Matt Mackall, the author and project lead of Mercurial.  He is
      ably assisted by hundreds of volunteer contributors across the
      world.</para>

    <para id="x_733">My children, Cian and Ruairi, always stood ready to help me
      to unwind with wonderful, madcap little-boy games.  I'd also
      like to thank my ex-wife, Shannon, for her support.</para>

    <para id="x_734">My colleagues and friends provided help and support in
      innumerable ways.  This list of people is necessarily very
      incomplete: Stephen Hahn, Karyn Ritter, Bonnie Corwin, James
      Vasile, Matt Norwood, Eben Moglen, Bradley Kuhn, Robert Walsh,
      Jeremy Fitzhardinge, Rachel Chalmers.</para>

    <para id="x_735">I developed this book in the open, posting drafts of
      chapters to the book web site as I completed them.  Readers then
      submitted feedback using a web application that I developed.  By
      the time I finished writing the book, more than 100 people had
      submitted comments, an amazing number considering that the
      comment system was live for only about two months towards the
      end of the writing process.</para>

    <para id="x_736">I would particularly like to recognize the following people,
      who between them contributed over a third of the total number of
      comments.  I would like to thank them for their care and effort
      in providing so much detailed feedback.</para>

    <para id="x_737">Martin Geisler, Damien Cassou, Alexey Bakhirkin, Till Plewe,
      Dan Himes, Paul Sargent, Gokberk Hamurcu, Matthijs van der
      Vleuten, Michael Chermside, John Mulligan, Jordi Fita, Jon
      Parise.</para>

    <para id="x_738">I also want to acknowledge the help of the many people who
      caught errors and provided helpful suggestions throughout the
      book.</para>

    <para id="x_739">Jeremy W. Sherman, Brian Mearns, Vincent Furia, Iwan
      Luijks, Billy Edwards, Andreas Sliwka, Paweł Sołyga, Eric
      Hanchrow, Steve Nicolai, Michał Masłowski, Kevin Fitch, Johan
      Holmberg, Hal Wine, Volker Simonis, Thomas P Jakobsen, Ted
      Stresen-Reuter, Stephen Rasku, Raphael Das Gupta, Ned
      Batchelder, Lou Keeble, Li Linxiao, Kao Cardoso Félix, Joseph
      Wecker, Jon Prescot, Jon Maken, John Yeary, Jason Harris,
      Geoffrey Zheng, Fredrik Jonson, Ed Davies, David Zumbrunnen,
      David Mercer, David Cabana, Ben Karel, Alan Franzoni, Yousry
      Abdallah, Whitney Young, Vinay Sajip, Tom Towle, Tim Ottinger,
      Thomas Schraitle, Tero Saarni, Ted Mielczarek, Svetoslav
      Agafonkin, Shaun Rowland, Rocco Rutte, Polo-Francois Poli,
      Philip Jenvey, Petr Tesałék, Peter R. Annema, Paul Bonser,
      Olivier Scherler, Olivier Fournier, Nick Parker, Nick Fabry,
      Nicholas Guarracino, Mike Driscoll, Mike Coleman, Mietek Bák,
      Michael Maloney, László Nagy, Kent Johnson, Julio Nobrega, Jord
      Fita, Jonathan March, Jonas Nockert, Jim Tittsler, Jeduan
      Cornejo Legorreta, Jan Larres, James Murphy, Henri Wiechers,
      Hagen Möbius, Gábor Farkas, Fabien Engels, Evert Rol, Evan
      Willms, Eduardo Felipe Castegnaro, Dennis Decker Jensen, Deniz
      Dogan, David Smith, Daed Lee, Christine Slotty, Charles Merriam,
      Guillaume Catto, Brian Dorsey, Bob Nystrom, Benoit Boissinot,
      Avi Rosenschein, Andrew Watts, Andrew Donkin, Alexey Rodriguez,
      Ahmed Chaudhary.</para>
  </sect1>

  <sect1>
    <title>Conventions Used in This Book</title>

    <para id="x_73a">The following typographical conventions are used in this
      book:</para>

    <variablelist>
      <varlistentry>
        <term>Italic</term>

        <listitem>
          <para id="x_73b">Indicates new terms, URLs, email addresses, filenames,
	    and file extensions.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>Constant width</literal></term>

        <listitem>
          <para id="x_73c">Used for program listings, as well as within
	    paragraphs to refer to program elements such as variable
	    or function names, databases, data types, environment
	    variables, statements, and keywords.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><userinput>Constant width bold</userinput></term>

        <listitem>
          <para id="x_73d">Shows commands or other text that should be typed
	    literally by the user.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><replaceable>Constant width italic</replaceable></term>

        <listitem>
          <para id="x_73e">Shows text that should be replaced with user-supplied
	    values or by values determined by context.</para>
        </listitem>
      </varlistentry>
    </variablelist>

    <tip>
      <para id="x_73f">This icon signifies a tip, suggestion, or general
	note.</para>
    </tip>

    <caution>
      <para id="x_740">This icon indicates a warning or caution.</para>
    </caution>
  </sect1>

  <sect1>
    <title>Using Code Examples</title>

    <para id="x_741">This book is here to help you get your job done. In general,
      you may use the code in this book in your programs and
      documentation. You do not need to contact us for permission
      unless you’re reproducing a significant portion of the code. For
      example, writing a program that uses several chunks of code from
      this book does not require permission. Selling or distributing a
      CD-ROM of examples from O’Reilly books does require permission.
      Answering a question by citing this book and quoting example
      code does not require permission. Incorporating a significant
      amount of example code from this book into your product’s
      documentation does require permission.</para>

    <para id="x_742">We appreciate, but do not require, attribution. An
      attribution usually includes the title, author, publisher, and
      ISBN. For example: “<emphasis>Book Title</emphasis> by Some
      Author. Copyright 2008 O’Reilly Media, Inc.,
      978-0-596-xxxx-x.”</para>

    <para id="x_743">If you feel your use of code examples falls outside fair use
      or the permission given above, feel free to contact us at
      <email>permissions@oreilly.com</email>.</para>
  </sect1>

  <sect1>
    <title>Safari® Books Online</title>

    <note role="safarienabled">
      <para id="x_744">When you see a Safari® Books Online icon on the cover of
	your favorite technology book, that means the book is
	available online through the O’Reilly Network Safari
	Bookshelf.</para>
    </note>

    <para id="x_745">Safari offers a solution that’s better than e-books. It’s a
      virtual library that lets you easily search thousands of top
      tech books, cut and paste code samples, download chapters, and
      find quick answers when you need the most accurate, current
      information. Try it for free at <ulink role="orm:hideurl:ital"
	url="http://my.safaribooksonline.com/?portal=oreilly">http://my.safaribooksonline.com</ulink>.</para>
  </sect1>

  <sect1>
    <title>How to Contact Us</title>

    <para id="x_746">Please address comments and questions concerning this book
      to the publisher:</para>

    <simplelist type="vert">
      <member>O’Reilly Media, Inc.</member>

      <member>1005 Gravenstein Highway North</member>

      <member>Sebastopol, CA 95472</member>

      <member>800-998-9938 (in the United States or Canada)</member>

      <member>707-829-0515 (international or local)</member>

      <member>707 829-0104 (fax)</member>
    </simplelist>

    <para id="x_747">We have a web page for this book, where we list errata,
      examples, and any additional information. You can access this
      page at:</para>

    <simplelist type="vert">
      <member><ulink url="http://www.oreilly.com/catalog/&lt;catalog
	  page&gt;"></ulink></member>
    </simplelist>

    <remark>Don’t forget to update the &lt;url&gt; attribute,
      too.</remark>

    <para id="x_748">To comment or ask technical questions about this book, send
      email to:</para>

    <simplelist type="vert">
      <member><email>bookquestions@oreilly.com</email></member>
    </simplelist>

    <para id="x_749">For more information about our books, conferences, Resource
      Centers, and the O’Reilly Network, see our web site at:</para>

    <simplelist type="vert">
      <member><ulink url="http://www.oreilly.com"></ulink></member>
    </simplelist>
  </sect1>
</preface>

<!--
local variables: 
sgml-parent-document: ("00book.xml" "book" "preface")
end:
-->
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.