Mercurial > dotfiles
comparison lib/hg/changelog/changelog.py @ 250:792cbc7bae1d
Add hg-changelog extension.
| author | Ludovic Chabant <ludovic@chabant.com> |
|---|---|
| date | Wed, 24 Dec 2014 17:14:24 -0800 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 249:efff5f3e72bb | 250:792cbc7bae1d |
|---|---|
| 1 """changelog | |
| 2 | |
| 3 Generates a user-centric changelog from commit messages | |
| 4 """ | |
| 5 import re | |
| 6 import markdown | |
| 7 from mercurial import command, util, cmdutil, scmutil, graphmod | |
| 8 from mercurial.i18n import _ | |
| 9 | |
| 10 cmdtable = {} | |
| 11 command = cmdutil.command(cmdtable) | |
| 12 | |
| 13 @command('changelog', | |
| 14 [ | |
| 15 ('l', 'limit', '', _('limit number of changes included in the changelog'), _('NUM')), | |
| 16 ('r', 'rev', [], _('include the specified revision or range'), _('REV')), | |
| 17 ], | |
| 18 _('hg changelog [OPTION]... [FILE]')) | |
| 19 def changelog(ui, repo, *pats, **opts): | |
| 20 """generate a changelog from the revision history | |
| 21 """ | |
| 22 rev = opts.get('rev') | |
| 23 if not rev: | |
| 24 rev = ['all()'] | |
| 25 revs = sorted(scmutil.revrange(repo, rev), reverse=1) | |
| 26 limit = cmdutil.loglimit(opts) | |
| 27 if limit is not None: | |
| 28 revs = revs[:limit] | |
| 29 | |
| 30 dateformat = ui.config('changelog', 'dateformat', '%B %d, %Y') | |
| 31 | |
| 32 entries = [i for i in ui.configitems('changelog') if i[0].startswith('entry')] | |
| 33 ui.write(entries) | |
| 34 ui.write("\n") | |
| 35 | |
| 36 ui.write("Generating changelog from:\n") | |
| 37 revdag = graphmod.dagwalker(repo, revs) | |
| 38 for rev, t, ctx, parents in revdag: | |
| 39 ui.write('%s: %s %s %s\n' % (util.datestr(ctx.date(), dateformat), rev, t, ctx.description())) | |
| 40 | |
| 41 ui.write("\n") | |
| 42 ui.write("foo = %s\n" % ui.config('changelog', 'foo')) | |
| 43 ui.write("blah = %s\n" % ui.config('changelog', 'blah')) | |
| 44 |
