The technical term for combining multiple patches into one is "folding". If you want to truly fold a series of commits into one (changing history), then the HistEdit extension provides a way as do Mercurial Queues.
If you're just interested in generating a patch, then you have a few options. You can use hg export
(but this will not fold the patches together, but rather dumps a series of patches to console) or you can use hg diff
to generate a diff. More precisely,
hg diff -r start:end > summary.patch
will generate a single diff for all the changes in the range start
to end
. You can replace end
with tip
to get all changes starting with start
. This should even work if there are merge changesets in between. (hg export
produces odd output if there are merge changesets in there.)