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