Alternative to MQ?

John W jwdevel at gmail.com
Wed Jun 25 16:34:14 UTC 2014


I recently read a blog post [1] indicating that mq is an unloved
feature, and is slated for eventual deprecation.

This makes me sad, but more importantly, I'm trying to find how I
could do certain things without mq.

Perhaps someone has some advice for the below 2 items?

Item #1:

I make use of the fact that the mq patch repository itself can be
versioned. I have a project which is split into two repostries:
  1. the "base" repository, which tracks a public OSS project with no
real changes.
  2. the mq repository, which tracks my set of patches on top of the
base project. Each patch adds a self-contained feature to the base
project.

In other words, I am version-controlling patches rather than the
actual base code. Tweaks are made to the patches over time, and
checked in to the mq repo.

Mercurial Queues make it very easy to push/pop/tweak these patches,
while keeping them completely separate.

I realize I could track a bunch of standalone ".patch" files, but that
is certainly less convenient to juggle.

How would I do something like this without the mq extension?

Item #2:

In the above-mentioned project, I make significant use of guards and
qselect. Since each patch represents a standalone feature, I can turn
various features on or off with 'qselect', reapply patches, and get a
build with different parts enabled or disabled.

Not sure how I would do that without mq. Is there anything like
qguard/qselect? I'm not even sure what that would look like...


Thanks for any advice!

I realize mq is often used as a hack where rebase or another command
is more appropriate, but I feel like it adds some genuinely useful
functionality, too, which isn't found in other tools.

-John

[1] http://gregoryszorc.com/blog/2014/06/23/please-stop-using-mq/



More information about the Mercurial mailing list