bos@559: bos@26: bos@559: bos@587: bos@559: Preface bos@26: bos@583: bos@705: Technical storytelling bos@705: bos@705: A few years ago, when I wanted to explain why I believed bos@705: that distributed revision control is important, the field was bos@705: then so new that there was almost no published literature to bos@705: refer people to. bos@705: bos@705: Although at that time I spent some time working on the bos@705: internals of Mercurial itself, I switched to writing this book bos@705: because that seemed like the most effective way to help the bos@705: software to reach a wide audience, along with the idea that bos@705: revision control ought to be distributed in nature. I publish bos@705: the book online under a liberal license for the same bos@705: reason: to get the word out. bos@705: bos@705: There's a familiar rhythm to a good software book that bos@705: closely resembles telling a story: What is this thing? Why does bos@705: it matter? How will it help me? How do I use it? In this bos@705: book, I try to answer those questions for distributed revision bos@705: control in general, and for Mercurial in particular. bos@705: bos@705: bos@705: bos@705: Thank you for supporting Mercurial bos@705: bos@705: By purchasing a copy of this book, you are supporting the bos@705: continued development and freedom of Mercurial in particular, bos@705: and of open source and free software in general. O'Reilly Media bos@705: and I are donating my royalties on the sales of this book to the bos@705: Software Freedom Conservancy (http://www.softwarefreedom.org/) bos@705: which provides clerical and legal support to Mercurial and a bos@705: number of other prominent and worthy open source software bos@705: projects. bos@705: bos@705: bos@705: bos@705: Acknowledgments bos@705: bos@705: This book would not exist were it not for the efforts of bos@705: Matt Mackall, the author and project lead of Mercurial. He is bos@705: ably assisted by hundreds of volunteer contributors across the bos@705: world. bos@705: bos@705: My children, Cian and Ruairi, always stood ready to help me bos@705: to unwind with wonderful, madcap little-boy games. I'd also bos@705: like to thank my ex-wife, Shannon, for her support. bos@705: bos@705: My colleagues and friends provided help and support in bos@705: innumerable ways. This list of people is necessarily very bos@705: incomplete: Stephen Hahn, Karyn Ritter, Bonnie Corwin, James bos@705: Vasile, Matt Norwood, Eben Moglen, Bradley Kuhn, Robert Walsh, bos@705: Jeremy Fitzhardinge, Rachel Chalmers. bos@705: bos@705: I developed this book in the open, posting drafts of bos@705: chapters to the book web site as I completed them. Readers then bos@705: submitted feedback using a web application that I developed. By bos@705: the time I finished writing the book, more than 100 people had bos@705: submitted comments, an amazing number considering that the bos@705: comment system was live for only about two months towards the bos@705: end of the writing process. bos@705: bos@705: I would particularly like to recognize the following people, bos@705: who between them contributed over a third of the total number of bos@705: comments. I would like to thank them for their care and effort bos@705: in providing so much detailed feedback. bos@705: bos@705: Martin Geisler, Damien Cassou, Alexey Bakhirkin, Till Plewe, bos@705: Dan Himes, Paul Sargent, Gokberk Hamurcu, Matthijs van der bos@705: Vleuten, Michael Chermside, John Mulligan, Jordi Fita, Jon bos@705: Parise. bos@705: bos@705: I also want to acknowledge the help of the many people who bos@705: caught errors and provided helpful suggestions throughout the bos@705: book. bos@705: bos@705: Jeremy W. Sherman, Brian Mearns, Vincent Furia, Iwan bos@705: Luijks, Billy Edwards, Andreas Sliwka, Paweł Sołyga, Eric bos@705: Hanchrow, Steve Nicolai, Michał Masłowski, Kevin Fitch, Johan bos@705: Holmberg, Hal Wine, Volker Simonis, Thomas P Jakobsen, Ted bos@705: Stresen-Reuter, Stephen Rasku, Raphael Das Gupta, Ned bos@705: Batchelder, Lou Keeble, Li Linxiao, Kao Cardoso Félix, Joseph bos@705: Wecker, Jon Prescot, Jon Maken, John Yeary, Jason Harris, bos@705: Geoffrey Zheng, Fredrik Jonson, Ed Davies, David Zumbrunnen, bos@705: David Mercer, David Cabana, Ben Karel, Alan Franzoni, Yousry bos@705: Abdallah, Whitney Young, Vinay Sajip, Tom Towle, Tim Ottinger, bos@705: Thomas Schraitle, Tero Saarni, Ted Mielczarek, Svetoslav bos@705: Agafonkin, Shaun Rowland, Rocco Rutte, Polo-Francois Poli, bos@705: Philip Jenvey, Petr Tesałék, Peter R. Annema, Paul Bonser, bos@705: Olivier Scherler, Olivier Fournier, Nick Parker, Nick Fabry, bos@705: Nicholas Guarracino, Mike Driscoll, Mike Coleman, Mietek Bák, bos@705: Michael Maloney, László Nagy, Kent Johnson, Julio Nobrega, Jord bos@705: Fita, Jonathan March, Jonas Nockert, Jim Tittsler, Jeduan bos@705: Cornejo Legorreta, Jan Larres, James Murphy, Henri Wiechers, bos@705: Hagen Möbius, Gábor Farkas, Fabien Engels, Evert Rol, Evan bos@705: Willms, Eduardo Felipe Castegnaro, Dennis Decker Jensen, Deniz bos@705: Dogan, David Smith, Daed Lee, Christine Slotty, Charles Merriam, bos@705: Guillaume Catto, Brian Dorsey, Bob Nystrom, Benoit Boissinot, bos@705: Avi Rosenschein, Andrew Watts, Andrew Donkin, Alexey Rodriguez, bos@705: Ahmed Chaudhary. bos@705: bos@705: bos@705: bos@704: Conventions Used in This Book bos@583: bos@705: The following typographical conventions are used in this bos@704: book: bos@583: bos@704: bos@704: bos@704: Italic bos@583: bos@704: bos@705: Indicates new terms, URLs, email addresses, filenames, bos@704: and file extensions. bos@704: bos@704: bos@583: bos@704: bos@704: Constant width bos@583: bos@704: bos@705: Used for program listings, as well as within bos@704: paragraphs to refer to program elements such as variable bos@704: or function names, databases, data types, environment bos@704: variables, statements, and keywords. bos@704: bos@704: bos@583: bos@704: bos@704: Constant width bold bos@583: bos@704: bos@705: Shows commands or other text that should be typed bos@704: literally by the user. bos@704: bos@704: bos@583: bos@704: bos@704: Constant width italic bos@583: bos@704: bos@705: Shows text that should be replaced with user-supplied bos@704: values or by values determined by context. bos@704: bos@704: bos@704: bos@583: bos@704: bos@705: This icon signifies a tip, suggestion, or general bos@704: note. bos@704: bos@583: bos@704: bos@705: This icon indicates a warning or caution. bos@704: bos@583: bos@26: bos@559: bos@704: Using Code Examples bos@26: bos@705: This book is here to help you get your job done. In general, bos@704: you may use the code in this book in your programs and bos@704: documentation. You do not need to contact us for permission bos@704: unless you’re reproducing a significant portion of the code. For bos@704: example, writing a program that uses several chunks of code from bos@704: this book does not require permission. Selling or distributing a bos@704: CD-ROM of examples from O’Reilly books does require permission. bos@704: Answering a question by citing this book and quoting example bos@704: code does not require permission. Incorporating a significant bos@704: amount of example code from this book into your product’s bos@704: documentation does require permission. bos@200: bos@705: We appreciate, but do not require, attribution. An bos@704: attribution usually includes the title, author, publisher, and bos@704: ISBN. For example: “Book Title by Some bos@704: Author. Copyright 2008 O’Reilly Media, Inc., bos@704: 978-0-596-xxxx-x.” bos@200: bos@705: If you feel your use of code examples falls outside fair use bos@704: or the permission given above, feel free to contact us at bos@704: permissions@oreilly.com. bos@559: bos@583: bos@583: bos@704: Safari® Books Online bos@583: bos@704: bos@705: When you see a Safari® Books Online icon on the cover of bos@704: your favorite technology book, that means the book is bos@704: available online through the O’Reilly Network Safari bos@704: Bookshelf. bos@704: bos@583: bos@705: Safari offers a solution that’s better than e-books. It’s a bos@704: virtual library that lets you easily search thousands of top bos@704: tech books, cut and paste code samples, download chapters, and bos@704: find quick answers when you need the most accurate, current bos@704: information. Try it for free at http://my.safaribooksonline.com. bos@583: bos@583: bos@583: bos@704: How to Contact Us bos@583: bos@705: Please address comments and questions concerning this book bos@704: to the publisher: bos@583: bos@704: bos@704: O’Reilly Media, Inc. bos@583: bos@704: 1005 Gravenstein Highway North bos@583: bos@704: Sebastopol, CA 95472 bos@583: bos@704: 800-998-9938 (in the United States or Canada) bos@583: bos@704: 707-829-0515 (international or local) bos@583: bos@704: 707 829-0104 (fax) bos@704: bos@583: bos@705: We have a web page for this book, where we list errata, bos@704: examples, and any additional information. You can access this bos@704: page at: bos@583: bos@704: bos@704: bos@704: bos@583: bos@704: Don’t forget to update the <url> attribute, bos@704: too. bos@583: bos@705: To comment or ask technical questions about this book, send bos@704: email to: bos@26: bos@704: bos@704: bookquestions@oreilly.com bos@704: bos@26: bos@705: For more information about our books, conferences, Resource bos@704: Centers, and the O’Reilly Network, see our web site at: bos@559: bos@704: bos@704: bos@704: bos@559: bos@559: bos@704: bos@559: