Gift Guide


( 2 )


This instructive book takes you step by step through ways to track, merge, and manage both open source and commercial software projects with Mercurial, using Windows, Mac OS X, Linux, Solaris, and other systems. Mercurial is the easiest system to learn when it comes to distributed revision control. And it's a very flexible tool that's ideal whether you're a lone programmer working on a small project, or part of a huge team dealing with thousands of files.

Mercurial permits a ...

See more details below
Other sellers (Paperback)
  • All (22) from $9.64   
  • New (9) from $19.05   
  • Used (13) from $9.64   
Mercurial: The Definitive Guide: The Definitive Guide

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac
  • NOOK for Web

Want a NOOK? Explore Now

NOOK Book (eBook)
$19.99 price
(Save 44%)$35.99 List Price


This instructive book takes you step by step through ways to track, merge, and manage both open source and commercial software projects with Mercurial, using Windows, Mac OS X, Linux, Solaris, and other systems. Mercurial is the easiest system to learn when it comes to distributed revision control. And it's a very flexible tool that's ideal whether you're a lone programmer working on a small project, or part of a huge team dealing with thousands of files.

Mercurial permits a countless variety of development and collaboration methods, and this book offers several concrete suggestions to get you started. This guide will help you:

  • Learn the basics of working with a repository, changesets, and revisions
  • Merge changes from separate repositories
  • Set up Mercurial to work with files on a daily basis, including which ones to track
  • Get examples and tools for setting up various workflow models
  • Manage a project that's making progress on multiple fronts at once
  • Find and fix mistakes by isolating problem sources
  • Use hooks to perform actions automatically in response to repository events
  • Customize the output of Mercurial

Mercurial: The Definitive Guide maintains a strong focus on simplicity to help you learn Mercurial quickly and thoroughly.

Read More Show Less

Product Details

  • ISBN-13: 9780596800673
  • Publisher: O'Reilly Media, Incorporated
  • Publication date: 7/1/2009
  • Series: Animal Guide Series
  • Edition number: 1
  • Pages: 284
  • Sales rank: 888,156
  • Product dimensions: 6.90 (w) x 9.10 (h) x 0.50 (d)

Meet the Author

Bryan O'Sullivan is an Irish writer and developer who works with distributed systems, open source software, and programming languages. He wrote the award-winning O'Reilly title Real World Haskell. He has made significant contributions to the popular Mercurial revision control system, and to a number of other open source projects. He lives in San Francisco with his family. Whenever he can, he runs off to climb rocks.

Read More Show Less

Table of Contents

Technical Storytelling;
Thank You for Supporting Mercurial;
Conventions Used in This Book;
Using Code Examples;
Safari® Books Online;
How to Contact Us;
This Book Is Free;
Chapter 1: A Brief History of Revision Control;
1.1 Why Revision Control? Why Mercurial?;
1.2 This Book Is a Work in Progress;
1.3 About the Examples in This Book;
1.4 Trends in the Field;
1.5 A Few Advantages of Distributed Revision Control;
1.6 Why Choose Mercurial?;
1.7 Mercurial Compared with Other Tools;
1.8 Switching from Another Tool to Mercurial;
1.9 A Short History of Revision Control;
Chapter 2: A Tour of Mercurial: The Basics;
2.1 Installing Mercurial on Your System;
2.2 Getting Started;
2.3 Working with a Repository;
2.4 A Tour Through History;
2.5 All About Command Options;
2.6 Making and Reviewing Changes;
2.7 Recording Changes in a New Changeset;
2.8 Sharing Changes;
2.9 Starting a New Project;
Chapter 3: A Tour of Mercurial: Merging Work;
3.1 Merging Streams of Work;
3.2 Merging Conflicting Changes;
3.3 Simplifying the Pull-Merge-Commit Sequence;
3.4 Renaming, Copying, and Merging;
Chapter 4: Behind the Scenes;
4.1 Mercurial’s Historical Record;
4.2 Safe, Efficient Storage;
4.3 Revision History, Branching, and Merging;
4.4 The Working Directory;
4.5 Other Interesting Design Features;
Chapter 5: Mercurial in Daily Use;
5.1 Telling Mercurial Which Files to Track;
5.2 How to Stop Tracking a File;
5.3 Copying Files;
5.4 Renaming Files;
5.5 Recovering from Mistakes;
5.6 Dealing with Tricky Merges;
5.7 More Useful Diffs;
5.8 Which Files to Manage, and Which to Avoid;
5.9 Backups and Mirroring;
Chapter 6: Collaborating with Other People;
6.1 Mercurial’s Web Interface;
6.2 Collaboration Models;
6.3 The Technical Side of Sharing;
6.4 Informal Sharing with hg serve;
6.5 Using the Secure Shell Protocol;
6.6 Serving Over HTTP Using CGI;
6.7 System-Wide Configuration;
Chapter 7: Filenames and Pattern Matching;
7.1 Simple File Naming;
7.2 Running Commands Without Any Filenames;
7.3 Telling You What’s Going On;
7.4 Using Patterns to Identify Files;
7.5 Filtering Files;
7.6 Permanently Ignoring Unwanted Files and Directories;
7.7 Case Sensitivity;
Chapter 8: Managing Releases and Branchy Development;
8.1 Giving a Persistent Name to a Revision;
8.2 The Flow of Changes: Big Picture Versus Little Picture;
8.3 Managing Big-Picture Branches in Repositories;
8.4 Don’t Repeat Yourself: Merging Across Branches;
8.5 Naming Branches Within One Repository;
8.6 Dealing with Multiple Named Branches in a Repository;
8.7 Branch Names and Merging;
8.8 Branch Naming Is Generally Useful;
Chapter 9: Finding and Fixing Mistakes;
9.1 Erasing Local History;
9.2 Reverting the Mistaken Change;
9.3 Dealing with Committed Changes;
9.4 Changes That Should Never Have Been;
9.5 Finding the Source of a Bug;
9.6 Tips for Finding Bugs Effectively;
Chapter 10: Handling Repository Events with Hooks;
10.1 An Overview of Hooks in Mercurial;
10.2 Hooks and Security;
10.3 A Short Tutorial on Using Hooks;
10.4 Writing Your Own Hooks;
10.5 Some Hook Examples;
10.6 Bundled Hooks;
10.7 Information for Writers of Hooks;
10.8 Hook Reference;
Chapter 11: Customizing the Output of Mercurial;
11.1 Using Precanned Output Styles;
11.2 Commands That Support Styles and Templates;
11.3 The Basics of Templating;
11.4 Common Template Keywords;
11.5 Escape Sequences;
11.6 Filtering Keywords to Change Their Results;
11.7 From Templates to Styles;
11.8 Style Files by Example;
Chapter 12: Managing Changes with Mercurial Queues;
12.1 The Patch Management Problem;
12.2 The Prehistory of Mercurial Queues;
12.3 The Huge Advantage of MQ;
12.4 Understanding Patches;
12.5 Getting Started with Mercurial Queues;
12.6 More About Patches;
12.7 More on Patch Management;
12.8 Getting the Best Performance Out of MQ;
12.9 Updating Your Patches When the Underlying Code Changes;
12.10 Identifying Patches;
12.11 Useful Things to Know About;
12.12 Managing Patches in a Repository;
12.13 Third-Party Tools for Working with Patches;
12.14 Good Ways to Work with Patches;
12.15 MQ Cookbook;
12.16 Differences Between Quilt and MQ;
Chapter 13: Advanced Uses of Mercurial Queues;
13.1 The Problem of Many Targets;
13.2 Conditionally Applying Patches with Guards;
13.3 Controlling the Guards on a Patch;
13.4 Selecting the Guards to Use;
13.5 MQ’s Rules for Applying Patches;
13.6 Trimming the Work Environment;
13.7 Dividing Up the Series File;
13.8 Maintaining the Patch Series;
13.9 Useful Tips for Developing with MQ;
Chapter 14: Adding Functionality with Extensions;
14.1 Improve Performance with the inotify Extension;
14.2 Flexible Diff Support with the extdiff Extension;
14.3 Cherry-Picking Changes with the transplant Extension;
14.4 Sending Changes via Email with the patchbomb Extension;
Migrating to Mercurial;
Importing History from Another System;
Migrating from Subversion;
Useful Tips for Newcomers;
Mercurial Queues Reference;
MQ Command Reference;
MQ File Reference;
Installing Mercurial from Source;
On a Unix-Like System;
On Windows;
Open Publication License;
Requirements on Both Unmodified and Modified Versions;
Scope of License;
Requirements on Modified Works;
Good-Practice Recommendations;
License Options;

Read More Show Less

Customer Reviews

Average Rating 3.5
( 2 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Anonymous

    Posted June 9, 2014



    Was this review helpful? Yes  No   Report this review
  • Posted October 4, 2009

    more from this reviewer

    Good Book and Good Reference

    Mercurial is a really nice, portable, easy to use [which is saying a lot!] source code control system. This is the only paper book available for it.

    Fortunately, the book very well written, well organized, and nicely developed. The examples actually work and are simple enough, small enough, and complete enough to be useful to type in and work with while reading the book. They make reading the book more of an interactive exercise.

    About Mercurial itself: it is the easiest source code control - aka version control, content control, etc - system I've ever used. I started using source code control back with a DOS clone of SCCS, found RCS and switched to that because it was really simple to use [although difficult to organize]. Have also tried CVS and SVN, but kept going
    back to RCS because of the administrative burden the bigger and better versions impose.

    Mercurial makes source code control easy again. Creating and maintaining repositories is inexpensive and easy. Rather than having central repository to maintain and configure, you just type 'hg init; hg add . ; hg ci -m initial-checkin' and you have a brand new repository for whatever project is living in your current directory.
    To try out something without mangling the basic code, 'cd newdirectory; hg clone repository-directory' and you are now in a clone of the original repository and can hack away. If you like the experiment, you
    'hg ci -m like-it; hg push' and it goes back to the main source; if you don't, just delete your trial repository. Rinse and repeat often.

    It actually makes source code controlled development easy.

    So far I haven't found anything in Mercurial I don't like.

    Back to the book: the author also maintains the book on line in an editable and comment-able form. See the Mercurial web site at for details about this book and more specialized articles:

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)