diff --git a/hgext/releasenotes.py b/hgext/releasenotes.py --- a/hgext/releasenotes.py +++ b/hgext/releasenotes.py @@ -242,6 +242,10 @@ read('.hgreleasenotes') return p['sections'] +def _getadmonitionlist(ui, sections): + for section in sections._sections: + ui.write(_(str(section[0]) + ": " + section[1] + "\n")) + def parsenotesfromrevisions(repo, directives, revs): notes = parsedreleasenotes() @@ -432,9 +436,11 @@ return '\n'.join(lines) @command('releasenotes', - [('r', 'rev', '', _('revisions to process for release notes'), _('REV'))], - _('[-r REV] FILE')) -def releasenotes(ui, repo, file_, rev=None): + [('r', 'rev', '', _('revisions to process for release notes'), _('REV')), + ('l', 'list', False, _('list the available admonitions with their title'), + None)], + _('hg releasenotes [-r REV] FILE')) +def releasenotes(ui, repo, file_=None, **opts): """parse release notes from commit messages into an output file Given an output file and set of revisions, this command will parse commit @@ -511,6 +517,10 @@ release note after it has been added to the release notes file. """ sections = releasenotessections(ui, repo) + if opts.get('list'): + return _getadmonitionlist(ui, sections) + + rev = opts.get('rev') revs = scmutil.revrange(repo, [rev or 'not public()']) incoming = parsenotesfromrevisions(repo, sections.names(), revs) diff --git a/tests/test-releasenotes-formatting.t b/tests/test-releasenotes-formatting.t --- a/tests/test-releasenotes-formatting.t +++ b/tests/test-releasenotes-formatting.t @@ -378,3 +378,15 @@ * Adds a new feature. + $ cd .. + +Usage of --list flag + + $ hg init relnotes-list + $ cd relnotes-list + $ hg releasenotes -l + feature: New Features + bc: Backwards Compatibility Changes + fix: Bug Fixes + perf: Performance Improvements + api: API Changes