Difference between revisions of "Managing Local Changes with Mercurial Queues"
From gem5
(→Mercurial Queues) |
|||
Line 14: | Line 14: | ||
== Mercurial Queues == | == Mercurial Queues == | ||
+ | |||
+ | The mercurial queue extension is a power tool that allows you to: | ||
+ | |||
+ | * Manage small changes easily as a set of well-defined patches. | ||
+ | * Edit previous patches without having a new commit. | ||
+ | * Keep your local changes cleanly separated from upstream changes. |
Revision as of 12:53, 16 February 2013
Repository Management Problem
gem5 users typically opt to freeze their repository at a particular changeset when starting a new research project. This approach has several downsides:
- It discourages users from contributing back any useful changes they may develop.
- If a useful change is added upstream, it's a long, tedious process to update.
If a user chooses to keep their local repository up-to-date with the source tree they typically use named branches and merge any upstream changes into their branches. This approach also has its downsides:
- If any local change needs to be updated, it requires a separate commit.
- If you have several small, unrelated changes and separate branches must be maintained.
- Upstream changes must be merged into the local branches.
A powerful tool that overcomes these problems is the mercurial queue extension.
Mercurial Queues
The mercurial queue extension is a power tool that allows you to:
- Manage small changes easily as a set of well-defined patches.
- Edit previous patches without having a new commit.
- Keep your local changes cleanly separated from upstream changes.