This should do the trick (mercurial 1.7 required):
hg log -r "ancestors(<rev>) and tag()"
where <rev> is the hash code or local version number. However, marking each patch and feature seems redundant.
Instead of tagging, you can simply follow the convention in which you put "bugfix: xyz" or "feature: abc" in commit messages. Then you can extract all the fixes and functions as follows:
hg log -r "ancestors(<rev>) and (keyword(bugfix) or keyword(feature))"
Keep tags for important milestones or other changes of particular importance.
source share