mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 00:32:04 +02:00
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: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Simon Glass
parent
14aa35ad55
commit
b0436b9404
@@ -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):
|
||||
|
Reference in New Issue
Block a user