Mercurial: The Definitive Guide
Compiled from $rev_id$
Edition 1
Copyright © 2006, 2007, 2008, 2009 Bryan O'Sullivan
- Preface
- 1. How did we get here?
- 1.1. Why revision control? Why Mercurial?
- 1.2. About the examples in this book
- 1.3. Trends in the field
- 1.4. A few of the advantages of distributed revision control
- 1.5. Why choose Mercurial?
- 1.6. Mercurial compared with other tools
- 1.7. Switching from another tool to Mercurial
- 1.8. 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
- 6.1. Mercurial's web interface
- 6.2. Collaboration models
- 6.2.1. Factors to keep in mind
- 6.2.2. Informal anarchy
- 6.2.3. A single central repository
- 6.2.4. A hosted central repository
- 6.2.5. Working with multiple branches
- 6.2.6. Feature branches
- 6.2.7. The release train
- 6.2.8. The Linux kernel model
- 6.2.9. Pull-only versus shared-push collaboration
- 6.2.10. Where collaboration meets branch management
- 6.3. The technical side of sharing
- 6.4. Informal sharing with
hg serve - 6.5. Using the Secure Shell (ssh) protocol
- 6.6. Serving over HTTP using CGI
- 6.7. System-wide configuration
- 7. File names and pattern matching
- 8. Managing releases and branchy development
- 8.1. Giving a persistent name to a revision
- 8.2. The flow of changes—big picture vs. little
- 8.3. Managing big-picture branches in repositories
- 8.4. Don't repeat yourself: merging across branches
- 8.5. Naming branches within one repository
- 8.6. Dealing with multiple named branches in a repository
- 8.7. Branch names and merging
- 8.8. Branch naming is generally useful
- 9. Finding and fixing mistakes
- 10. Handling repository events with hooks
- 10.1. An overview of hooks in Mercurial
- 10.2. Hooks and security
- 10.3. A short tutorial on using hooks
- 10.4. Writing your own hooks
- 10.5. Some hook examples
- 10.6. Bundled hooks
- 10.7. Information for writers of hooks
- 10.8. Hook reference
- 10.8.1.
changegroup—after remote changesets added - 10.8.2.
commit—after a new changeset is created - 10.8.3.
incoming—after one remote changeset is added - 10.8.4.
outgoing—after changesets are propagated - 10.8.5.
prechangegroup—before starting to add remote changesets - 10.8.6.
precommit—before starting to commit a changeset - 10.8.7.
preoutgoing—before starting to propagate changesets - 10.8.8.
pretag—before tagging a changeset - 10.8.9.
pretxnchangegroup—before completing addition of remote changesets - 10.8.10.
pretxncommit—before completing commit of new changeset - 10.8.11.
preupdate—before updating or merging working directory - 10.8.12.
tag—after tagging a changeset - 10.8.13.
update—after updating or merging working directory
- 10.8.1.
- 11. Customizing the output of Mercurial
- 12. Managing change with Mercurial Queues
- 12.1. The patch management problem
- 12.2. The prehistory of Mercurial Queues
- 12.3. The huge advantage of MQ
- 12.4. Understanding patches
- 12.5. Getting started with Mercurial Queues
- 12.6. More about patches
- 12.7. More on patch management
- 12.8. Getting the best performance out of MQ
- 12.9. Updating your patches when the underlying code changes
- 12.10. Identifying patches
- 12.11. Useful things to know about
- 12.12. Managing patches in a repository
- 12.13. Third party tools for working with patches
- 12.14. Good ways to work with patches
- 12.15. MQ cookbook
- 12.16. Differences between quilt and MQ
- 13. Advanced uses of Mercurial Queues
- 13.1. The problem of many targets
- 13.2. Conditionally applying patches with guards
- 13.3. Controlling the guards on a patch
- 13.4. Selecting the guards to use
- 13.5. MQ's rules for applying patches
- 13.6. Trimming the work environment
- 13.7. Dividing up the
seriesfile - 13.8. Maintaining the patch series
- 13.9. Useful tips for developing with MQ
- 14. Adding functionality with extensions
- A. Migrating to Mercurial
- B. Mercurial Queues reference
- B.1. MQ command reference
- B.1.1.
qapplied—print applied patches - B.1.2.
qcommit—commit changes in the queue repository - B.1.3.
qdelete—delete a patch from theseriesfile - B.1.4.
qdiff—print a diff of the topmost applied patch - B.1.5.
qfold—move applied patches into repository history - B.1.6.
qfold—merge (“fold”) several patches into one - B.1.7.
qheader—display the header/description of a patch - B.1.8.
qimport—import a third-party patch into the queue - B.1.9.
qinit—prepare a repository to work with MQ - B.1.10.
qnew—create a new patch - B.1.11.
qnext—print the name of the next patch - B.1.12.
qpop—pop patches off the stack - B.1.13.
qprev—print the name of the previous patch - B.1.14.
qpush—push patches onto the stack - B.1.15.
qrefresh—update the topmost applied patch - B.1.16.
qrename—rename a patch - B.1.17.
qseries—print the entire patch series - B.1.18.
qtop—print the name of the current patch - B.1.19.
qunapplied—print patches not yet applied - B.1.20.
hg strip—remove a revision and descendants
- B.1.1.
- B.2. MQ file reference
- C. Installing Mercurial from source
- D. Open Publication License
- n
- Next Page
- p
- Previos Page
- h
- Book Home
- u
- Go Up One Level
- ?
- Press ? for Help
- esc
- Hide Help
Press '?' for keyboard shortcuts