-
Chapter 1 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
-
-
Chapter 2 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
-
-
Chapter 3 A Tour of Mercurial: Merging Work
-
Merging Streams of Work
-
Merging Conflicting Changes
-
Simplifying the Pull-Merge-Commit Sequence
-
Renaming, Copying, and Merging
-
-
Chapter 4 Behind the Scenes
-
Mercurial’s Historical Record
-
Safe, Efficient Storage
-
Revision History, Branching, and Merging
-
The Working Directory
-
Other Interesting Design Features
-
-
Chapter 5 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
-
-
Chapter 6 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
-
-
Chapter 7 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
-
-
Chapter 8 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
-
-
Chapter 9 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
-
-
Chapter 10 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
-
-
Chapter 11 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
-
-
Chapter 12 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
-
-
Chapter 13 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
-
-
Chapter 14 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
-
-
Appendix 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
-
-
Appendix Installing Mercurial from Source
-
On a Unix-Like System
-
On Windows
-
-
Appendix Open Publication License
-
Requirements on Both Unmodified and Modified Versions
-
Copyright
-
Scope of License
-
Requirements on Modified Works
-
Good-Practice Recommendations
-
License Options
-
-
Colophon
- Title:
- Mercurial: The Definitive Guide
- By:
- Bryan O'Sullivan
- Publisher:
- O'Reilly Media
- Formats:
-
- Ebook
- Safari Books Online
- Print Release:
- June 2009
- Ebook Release:
- June 2009
- Pages:
- 288
- Print ISBN:
- 978-0-596-80067-3
- | ISBN 10:
- 0-596-80067-3
- Ebook ISBN:
- 978-0-596-80130-4
- | ISBN 10:
- 0-596-80130-0
The animal on the cover of Mercurial: The Definitive Guide is a House Martin (Delichon urbicum), which is part of the swallow family. Originally cliff and cave dwellers, these noisy birds now prefer human structures and can be found nesting in bridges and houses throughout Europe, north Africa, and the more temperate regions of Asia. The name House Martin is derived from the bird's tendency to build its nests under the eaves of buildings. They build closed-cup nests, attached to both the vertical surface and the overhang of the structure, and reinforce them with mud, creating unusually strong dwellings. Given the House Martin's wide range of habitation, if you are trying to avoid the eternal pit of peril and are presented with the immortal question, "Is that an African swallow or a European swallow?", you should answer, "Both." The cover image is from Cassell's Natural History. The cover font is Adobe ITC Garamond. The text font is Linotype Birka; the heading font is Adobe Myriad Condensed; and the code font is LucasFont's TheSansMonoCondensed.
