Mercurial_ The Definitive Guide - Bryan O'Sullivan [2]
The Prehistory of Mercurial Queues
A Patchwork Quilt
From Patchwork Quilt to Mercurial Queues
The Huge Advantage of MQ
Understanding Patches
Getting Started with Mercurial Queues
Creating a New Patch
Refreshing a Patch
Stacking and Tracking Patches
Manipulating the Patch Stack
Pushing and Popping Many Patches
Safety Checks, and Overriding Them
Working on Several Patches at Once
More About Patches
The Strip Count
Strategies for Applying a Patch
Some Quirks of Patch Representation
Beware the Fuzz
Handling Rejection
More on Patch Management
Deleting Unwanted Patches
Converting to and from Permanent Revisions
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
MQ Support for Patch Repositories
A Few Things to Watch Out For
Third-Party Tools for Working with Patches
Good Ways to Work with Patches
MQ Cookbook
Managing Trivial Patches
Combining Entire Patches
Merging Part of One Patch into Another
Differences Between Quilt and MQ
13. Advanced Uses of Mercurial Queues
The Problem of Many Targets
Tempting Approaches That Don’t Work Well
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
The Art of Writing Backport Patches
Useful Tips for Developing with MQ
Organizing Patches in Directories
Viewing the History of a Patch
14. Adding Functionality with Extensions
Improve Performance with the inotify Extension
Flexible Diff Support with the extdiff Extension
Defining Command Aliases
Cherry-Picking Changes with the transplant Extension
Sending Changes via Email with the patchbomb Extension
Changing the Behavior of Patchbombs
A. Migrating to Mercurial
Importing History from Another System
Converting Multiple Branches
Mapping Usernames
Tidying Up the Tree
Improving Subversion Conversion Performance
Migrating from Subversion
Philosophical Differences
Quick Reference
Useful Tips for Newcomers
B. Mercurial Queues Reference
MQ Command Reference
qapplied—Print Applied Patches
qcommit—Commit Changes in the Queue Repository
qdelete—Delete a Patch from the Series File
qdiff—Print a Diff of the Topmost Applied Patch
qfold—Move Applied Patches into Repository History
qfold—Merge (fold) Several Patches into One
qheader—Display the Header/Description of a Patch
qimport—Import a Third-Party Patch into the Queue
qinit—Prepare a Repository to Work with MQ
qnew—Create a New Patch
qnext—Print the Name of the Next Patch
qpop—Pop Patches Off the Stack
qprev—Print the Name of the Previous Patch
qpush—Push Patches onto the Stack
qrefresh—Update the Topmost Applied Patch
qrename—Rename a Patch
qseries—Print the Entire Patch Series
qtop—Print the Name of the Current Patch
qunapplied—Print Patches Not yet Applied
hg strip—Remove a Revision and Descendants
MQ File Reference
The Series File
The Status File
C. Installing Mercurial from Source
On a Unix-Like System
On Windows
D. Open Publication License
Requirements on Both Unmodified and Modified Versions
Copyright
Scope of License
Requirements on Modified Works
Good-Practice Recommendations
License Options
Index
Mercurial: The Definitive Guide
Bryan O'Sullivan
Editor
Mike Loukides
Copyright © 2009 Bryan O'Sullivan
O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or corporate@oreilly.com.
Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. The image of a House Martin and related trade dress are trademarks of O’Reilly Media, Inc.
Many of the designations used by manufacturers