提交 b0436b94 编写于 作者: S Sean Anderson 提交者: Simon Glass

patman: Suppress empty changelog entries

Patman outputs a line for every edition of the series in every patch,
regardless of whether any changes were made. This can result in many
redundant lines in patch changelogs, especially when a patch did not exist
before a certain revision. For example, the existing behaviour could result
in a changelog of

Changes in v7: None
Changes in v6: None
Changes in v5:
- Make a change

Changes in v4: None

Changes in v3:
- New

Changes in v2: None

With this patch applied and with --no-empty-changes, the same patch would
look like

(no changes since v5)

Changes in v5:
- Make a change

Changes in v3:
- New

This is entirely aesthetic, but I think it reduces clutter, especially for
patches added later on in a series.
Signed-off-by: NSean Anderson <seanga2@gmail.com>
Reviewed-by: NSimon Glass <sjg@chromium.org>
上级 14aa35ad
......@@ -480,6 +480,28 @@ generate patches without any binary contents. You are supposed to include
a link to a git repository in your "Commit-notes", "Series-notes" or
"Cover-letter" for maintainers to fetch the original commit.
8. Patches will have no changelog entries for revisions where they did not
change. For clarity, if there are no changes for this patch in the most
recent revision of the series, a note will be added. For example, a patch
with the following tags in the commit
Series-version: 5
Series-changes: 2
- Some change
Series-changes: 4
- Another change
would have a changelog of
(no changes since v4)
Changes in v4:
- Another change
Changes in v2:
- Some change
Other thoughts
==============
......
......@@ -144,38 +144,57 @@ class Series(dict):
Changes in v4:
- Jog the dial back closer to the widget
Changes in v3: None
Changes in v2:
- Fix the widget
- Jog the dial
etc.
If there are no new changes in a patch, a note will be added
(no changes since v2)
Changes in v2:
- Fix the widget
- Jog the dial
"""
versions = sorted(self.changes, reverse=True)
newest_version = 1
if 'version' in self:
newest_version = max(newest_version, int(self.version))
if versions:
newest_version = max(newest_version, versions[0])
final = []
process_it = self.get('process_log', '').split(',')
process_it = [item.strip() for item in process_it]
need_blank = False
for change in sorted(self.changes, reverse=True):
for version in versions:
out = []
for this_commit, text in self.changes[change]:
for this_commit, text in self.changes[version]:
if commit and this_commit != commit:
continue
if 'uniq' not in process_it or text not in out:
out.append(text)
line = 'Changes in v%d:' % change
have_changes = len(out) > 0
if 'sort' in process_it:
out = sorted(out)
have_changes = len(out) > 0
line = 'Changes in v%d:' % version
if have_changes:
out.insert(0, line)
else:
out = [line + ' None']
if need_blank:
out.insert(0, '')
if version < newest_version and len(final) == 0:
out.insert(0, '')
out.insert(0, '(no changes since v%d)' % version)
newest_version = 0
# Only add a new line if we output something
if need_blank:
out.insert(0, '')
need_blank = False
final += out
need_blank = have_changes
if self.changes:
need_blank = need_blank or have_changes
if len(final) > 0:
final.append('')
elif newest_version != 1:
final = ['(no changes since v1)', '']
return final
def DoChecks(self):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册