scripts: rfr: Fix merge commit bug

The file +/- computation in the function that generates the email
message text expects there to be files present in the git/gerrit
commit object. But for merge commits there are no files present
in the merge commit itself. A max() function ended up getting an
empty list as an argument and then caused a crash.

Fix this by checking to make sure there's actually files present
in this list before passing it on to max(). If there are no files
then just continue.

Change-Id: Icd74234676ff3be6edb7fe65913970fd7a0aaff1
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2226035
Reviewed-by: Thomas Fleury <tfleury@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Alex Waterman
2019-10-25 11:58:49 -07:00
parent 8cc073eebb
commit 33b31bea1a

View File

@@ -302,18 +302,28 @@ Thanks!
for c in commits_info:
# note: x['deletions'] is negative (or zero)
files = c['currentPatchSet']['files']
width = max([
len(x['file']) for x in files if x['file'] != u'/COMMIT_MSG'])
file_template = "{name: <{width}} | {sum:<3} (+{adds: <3} -{dels: <3})"
files_changed_desc = [file_template.format(
file_widths = [
len(x['file']) for x in files if x['file'] != u'/COMMIT_MSG']
# For merge commits there are no files in the commit itself. So this
# causes the below max() operation to choke. Given that there are no
# files it makes little sense for us to try and fill in any file
# details!
if file_widths:
width = max(file_widths)
file_template = ("{name: <{width}} | " +
"{sum:<3} (+{adds: <3} -{dels: <3})")
files_changed_desc = [file_template.format(
name=x['file'],
width=width,
sum=x['insertions'] - x['deletions'],
adds=x['insertions'],
dels=-x['deletions'])
for x in files
if x['file'] != u'/COMMIT_MSG'
]
for x in files if x['file'] != u'/COMMIT_MSG'
]
else:
files_changed_desc = ''
cmt_verbose += cmt_template.format(url=c['url'],
author=c['owner']['name'],
cmtmsg=indent_lines(