Certified Mercurial Version Control Table of Contents

Table of Content


A Brief History of Revision Control

  •  Why Revision Control? Why Mercurial?
  •  This Book Is a Work in Progress
  •  About the Examples in This Book
  •  Trends in the Field
  •  A Few Advantages of Distributed Revision Control

Why Choose Mercurial?

  •  Mercurial Compared with Other Tools
  •  Switching from another Tool to Mercurial
  •  A Short History of Revision Control

A Tour of Mercurial: The Basics

  •  Installing Mercurial on Your System
  •  Getting Started
  •  Working with a Repository
  •  A Tour through History
  •  All about Command Options
  •  Making and Reviewing Changes
  •  Recording Changes in a New Changeset
  •  Sharing Changes
  •  Starting a New Project

A Tour of Mercurial: Merging Work

  •  Merging Streams of Work
  •  Merging Conflicting Changes
  •  Simplifying the Pull-Merge-Commit Sequence
  •  Renaming, Copying, and Merging

Behind the Scenes

  •  Mercurial’s Historical Record
  •  Safe, Efficient Storage
  •  Revision History, Branching, and Merging
  •  The Working Directory
  •  Other Interesting Design Features

Mercurial in Daily Use

  •  Telling Mercurial Which Files to Track
  •  How to Stop Tracking a File
  •  Copying Files
  •  Renaming Files
  •  Recovering from Mistakes
  •  Dealing with Tricky Merges
  •  More Useful Diffs
  •  Which Files to Manage, and Which to Avoid
  •  Backups and Mirroring

Collaborating with Other People

  •  Mercurial’s Web Interface
  •  Collaboration Models
  •  The Technical Side of Sharing
  •  Informal Sharing with hg serve
  •  Using the Secure Shell Protocol
  •  Serving Over HTTP Using CGI
  •  System-Wide Configuration

Filenames and Pattern Matching

  •  Simple File Naming
  •  Running Commands without Any Filenames
  •  Telling You What’s Going On
  •  Using Patterns to Identify Files
  •  Filtering Files
  •  Permanently Ignoring Unwanted Files and Directories
  •  Case Sensitivity

Managing Releases and Branchy Development

  •  Giving a Persistent Name to a Revision
  •  The Flow of Changes: Big Picture versus Little Picture
  •  Managing Big-Picture Branches in Repositories
  •  Don’t Repeat Yourself: Merging Across Branches
  •  Naming Branches within One Repository
  •  Dealing with Multiple Named Branches in a Repository
  •  Branch Names and Merging
  •  Branch Naming Is Generally Useful

Finding and Fixing Mistakes

  •  Erasing Local History
  •  Reverting the Mistaken Change
  •  Dealing with Committed Changes
  •  Changes That Should Never Have Been
  •  Finding the Source of a Bug
  •  Tips for Finding Bugs Effectively

Handling Repository Events with Hooks

  •  An Overview of Hooks in Mercurial
  •  Hooks and Security
  •  A Short Tutorial on Using Hooks
  •  Writing Your Own Hooks
  •  Some Hook Examples
  •  Bundled Hooks
  •  Information for Writers of Hooks
  •  Hook Reference

Customizing the Output of Mercurial

  •  Using Precanned Output Styles
  •  Commands That Support Styles and Templates
  •  The Basics of Templating
  •  Common Template Keywords
  •  Escape Sequences
  •  Filtering Keywords to Change Their Results
  •  From Templates to Styles
  •  Style Files by Example

Managing Changes with Mercurial Queues

  •  The Patch Management Problem
  •  The Prehistory of Mercurial Queues
  •  The Huge Advantage of MQ
  •  Understanding Patches
  •  Getting Started with Mercurial Queues
  •  More about Patches
  •  More on Patch Management
  •  Getting the Best Performance Out of MQ
  •  Updating Your Patches When the Underlying Code Changes
  •  Identifying Patches
  •  Useful Things to Know About
  •  Managing Patches in a Repository
  •  Third-Party Tools for Working with Patches
  •  Good Ways to Work with Patches
  •  MQ Cookbook
  •  Differences between Quilt and MQ

Advanced Uses of Mercurial Queues

  •  The Problem of Many Targets
  •  Conditionally Applying Patches with Guards
  •  Controlling the Guards on a Patch
  •  Selecting the Guards to Use
  •  MQ’s Rules for Applying Patches
  •  Trimming the Work Environment
  •  Dividing Up the Series File
  •  Maintaining the Patch Series
  •  Useful Tips for Developing with MQ

Adding Functionality with Extensions

  •  Improve Performance with the inotify Extension
  •  Flexible Diff Support with the extdiff Extension
  •  Cherry-Picking Changes with the transplant Extension
  •  Sending Changes via Email with the patchbomb Extension

Migrating to Mercurial

  •  Importing History from another System
  •  Migrating from Subversion
  •  Useful Tips for Newcomers
  •  Appendix Mercurial Queues Reference
  •  MQ Command Reference
  •  MQ File Reference

Installing Mercurial from Source

  •  On a Unix-Like System
  •  On Windows

Apply for Certification



 For Support