diff options
author | Sean Anderson <seanga2@gmail.com> | 2020-05-04 16:28:33 -0400 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2020-05-29 20:55:45 -0600 |
commit | b0436b94047caf4c2ec67b599581198317f395b1 (patch) | |
tree | c753c160e4f073f3cc9e446f646da695ba1fc731 | |
parent | 14aa35ad551b3d35a5c7ba8871eb67bd05f1f9b0 (diff) | |
download | u-boot-b0436b94047caf4c2ec67b599581198317f395b1.tar.gz u-boot-b0436b94047caf4c2ec67b599581198317f395b1.tar.xz u-boot-b0436b94047caf4c2ec67b599581198317f395b1.zip |
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>
-rw-r--r-- | tools/patman/README | 22 | ||||
-rw-r--r-- | tools/patman/series.py | 43 |
2 files changed, 53 insertions, 12 deletions
diff --git a/tools/patman/README b/tools/patman/README index f40defb5ba..092122f3db 100644 --- a/tools/patman/README +++ b/tools/patman/README @@ -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 ============== diff --git a/tools/patman/series.py b/tools/patman/series.py index e5e28cebdf..be6f061122 100644 --- a/tools/patman/series.py +++ b/tools/patman/series.py @@ -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): |