changelog: add hint for a file mismatch

contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Suggest close file for
	'unchanged file mentioned in a ChangeLog' error.
	* gcc-changelog/test_email.py: Test it.
This commit is contained in:
Martin Liska 2020-11-30 17:19:41 +01:00
parent e40fece7c9
commit 57cbb7acdb
2 changed files with 7 additions and 1 deletions

View File

@ -16,6 +16,7 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>. */
import difflib
import os
import re
@ -576,6 +577,9 @@ class GitCommit:
changed_files = set(cand)
for file in sorted(mentioned_files - changed_files):
msg = 'unchanged file mentioned in a ChangeLog'
candidates = difflib.get_close_matches(file, changed_files, 1)
if candidates:
msg += f' (did you mean "{candidates[0]}"?)'
self.errors.append(Error(msg, file))
for file in sorted(changed_files - mentioned_files):
if not self.in_ignored_location(file):

View File

@ -113,7 +113,9 @@ class TestGccChangelog(unittest.TestCase):
email = self.from_patch_glob('0096')
assert email.errors
err = email.errors[0]
assert err.message == 'unchanged file mentioned in a ChangeLog'
assert err.message == 'unchanged file mentioned in a ChangeLog (did ' \
'you mean "gcc/testsuite/gcc.target/aarch64/' \
'advsimd-intrinsics/vdot-3-1.c"?)'
assert err.line == 'gcc/testsuite/gcc.target/aarch64/' \
'advsimd-intrinsics/vdot-compile-3-1.c'