Mercurial_ The Definitive Guide - Bryan O'Sullivan [1]
Sharing Multiple Repositories with One CGI Script
Downloading Source Archives
Web Configuration Options
System-Wide Configuration
Making Mercurial More Trusting
7. Filenames and Pattern Matching
Simple File Naming
Running Commands Without Any Filenames
Telling You What’s Going On
Using Patterns to Identify Files
Shell-Style Glob Patterns
Regular Expression Matching with Re Patterns
Filtering Files
Permanently Ignoring Unwanted Files and Directories
Case Sensitivity
Safe, Portable Repository Storage
Detecting Case Conflicts
Fixing a Case Conflict
8. Managing Releases and Branchy Development
Giving a Persistent Name to a Revision
Handling Tag Conflicts During a Merge
Tags and Cloning
When Permanent Tags Are Too Much
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
9. Finding and Fixing Mistakes
Erasing Local History
The Accidental Commit
Rolling Back a Transaction
The Erroneous Pull
Rolling Back Is Useless Once You’ve Pushed
You Can Only Roll Back Once
Reverting the Mistaken Change
File Management Errors
Dealing with Committed Changes
Backing Out a Changeset
Backing Out the Tip Changeset
Backing Out a Non-Tip Change
Gaining More Control of the Backout Process
Why hg backout Works As It Does
Changes That Should Never Have Been
Backing Out a Merge
Protect Yourself from Escaped Changes
What to Do About Sensitive Changes That Escape
Finding the Source of a Bug
Using the hg bisect Command
Cleaning Up After Your Search
Tips for Finding Bugs Effectively
Give Consistent Input
Automate As Much As Possible
Check Your Results
Beware Interference Between Bugs
Bracket Your Search Lazily
10. Handling Repository Events with Hooks
An Overview of Hooks in Mercurial
Hooks and Security
Hooks Are Run with Your Privileges
Hooks Do Not Propagate
Hooks Can Be Overridden
Ensuring That Critical Hooks Are Run
A Short Tutorial on Using Hooks
Performing Multiple Actions Per Event
Controlling Whether an Activity Can Proceed
Writing Your Own Hooks
Choosing How Your Hook Should Run
Hook Parameters
Hook Return Values and Activity Control
Writing an External Hook
Telling Mercurial to Use an In-Process Hook
Writing an In-Process Hook
Some Hook Examples
Writing Meaningful Commit Messages
Checking for Trailing Whitespace
Bundled Hooks
acl—Access Control for Parts of a Repository
bugzilla—Integration with Bugzilla
notify—Send Email Notifications
Information for Writers of Hooks
In-Process Hook Execution
External Hook Execution
Finding Out Where Changesets Come From
Hook Reference
changegroup—After Remote Changesets Added
commit—After a New Changeset Is Created
incoming—After One Remote Changeset Is Added
outgoing—After Changesets Are Propagated
prechangegroup—Before Starting to Add Remote Changesets
precommit—Before Starting to Commit a Changeset
preoutgoing—Before Starting to Propagate Changesets
pretag—Before Tagging a Changeset
pretxnchangegroup—Before Completing Addition of Remote Changesets
pretxncommit—Before Completing Commit of New Changeset
preupdate—Before Updating or Merging Working Directory
tag—After Tagging a Changeset
update—After Updating or Merging Working Directory
11. Customizing the Output of Mercurial
Using Precanned Output Styles
Setting a Default Style
Commands That Support Styles and Templates
The Basics of Templating
Common Template Keywords
Escape Sequences
Filtering Keywords to Change Their Results
Combining Filters
From Templates to Styles
The Simplest of Style Files
Style File Syntax
Style Files by Example
Identifying Mistakes in Style Files
Uniquely Identifying a Repository
Listing Files on Multiple Lines
Mimicking Subversion’s Output
12. Managing Changes with Mercurial Queues
The Patch Management