Note:
This page is primarily intended for developers of Mercurial.
mq Deprecation plan
This is a DRAFT for discussion, and does not represent any firm decisions on future behavior.
1. mq features we don't yet have a replacement for
- qguards
- names for patches (we have bookmark, don't we?)
- patch revision history
- Note: (probably) handled by evolution
- uncommit (probably with --interactive for record-like uncommit)
2. workflows we don't yet have a replacement for
- Maintaining a "floating" patch that can be applied and unapplied at whim. Use case is patches like "add debug logging." People want a well-known name they can reference. This could probably be done with unshelve that doesn't delete the bundle.
export/import/graft between repository workflow isn't as simple as cp
Easy discovery of "local" commits/patches. hg qseries easier than hg log with a custom revset (revsets aren't approachable to newbies)
Read comments at http://gregoryszorc.com/blog/2014/06/23/please-stop-using-mq/ and http://gregoryszorc.com/blog/2014/07/24/repository-centric-development/
See Mozilla feedback at https://people.mozilla.org/~gszorc/hgfeedback.pdf (includes some mq).
3. Nice to have
- shorthand for children() operator (makes some operations easier, like qpush)
4. Summary of mapping for commands
qapplied |
log -r 'draft() and ::.' |
qclone |
not necessary |
qdelete |
histedit with 'drop' |
qdiff |
hg diff -r .^ |
qfinish |
not necessary and/or 'hg phase --public' |
qfold |
histedit with 'fold' |
qgoto |
hg update |
qguard |
* no equivalent * |
qheader |
hg log -r . -T '{desc}\n' |
qimport |
hg import --partial |
qnew |
hg commit (does not handle empty commit) |
qnext |
hg log -r 'children(.)' |
qpop |
hg co .^ |
qprev |
hg log -r .^ |
qpush |
hg co -r 'children(.)' |
qqueue |
branches or bookmarks |
qrefresh |
hg amend (but we lack uncommit) |
qrename |
jungling with bookmark operation |
qselect |
* no equivalent * |
qseries |
hg log -r 'draft()' |
qtop |
hg id -B |
qunapplied |
hg log -r 'draft() - ::.' |