Book description
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.
Publisher resources
Table of contents
-
Mercurial: The Definitive Guide
- SPECIAL OFFER: Upgrade this ebook with OâReilly
- Preface
-
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
- 2. A Tour of Mercurial: The Basics
- 3. A Tour of Mercurial: Merging Work
- 4. Behind the Scenes
- 5. Mercurial in Daily Use
-
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
- 7. Filenames and Pattern Matching
-
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
- 9. Finding and Fixing Mistakes
-
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
- 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
-
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
- 13. Advanced Uses of Mercurial Queues
- 14. Adding Functionality with Extensions
- A. Migrating to Mercurial
-
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
-
MQ Command Reference
- C. Installing Mercurial from Source
- D. Open Publication License
- Index
- About the Author
- Colophon
- SPECIAL OFFER: Upgrade this ebook with OâReilly
Product information
- Title: Mercurial: The Definitive Guide
- Author(s):
- Release date: June 2009
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9780596555474
You might also like
book
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
book
Software Engineering at Google
Today, software engineers need to know not only how to program effectively but also how to …
book
Head First Design Patterns, 2nd Edition
You know you don’t want to reinvent the wheel, so you look to design patterns—the lessons …
book
Fluent Python, 2nd Edition
Python’s simplicity lets you become productive quickly, but often this means you aren’t using everything it …