mklog: support renaming of files

contrib/ChangeLog:

	* mklog.py: Support renaming of files.
	One needs unidiff 0.6.0+.
	* test_mklog.py: Test it.
This commit is contained in:
Martin Liska 2020-05-27 20:03:50 +02:00
parent 4a948703db
commit eb78da45ab
No known key found for this signature in database
GPG Key ID: 4DC182DC0FA73785
2 changed files with 34 additions and 0 deletions

View File

@ -173,6 +173,14 @@ def generate_changelog(data, no_functions=False, fill_pr_titles=False):
out += '\t* %s: %s.\n' % (relative_path, msg)
elif file.is_removed_file:
out += '\t* %s: Removed.\n' % (relative_path)
elif hasattr(file, 'is_rename') and file.is_rename:
out += '\t* %s: Moved to...\n' % (relative_path)
new_path = file.target_file[2:]
# A file can be theoretically moved to a location that
# belongs to a different ChangeLog. Let user fix it.
if new_path.startswith(changelog):
new_path = new_path[len(changelog):].lstrip('/')
out += '\t* %s: ...here.\n' % (new_path)
else:
if not no_functions:
for hunk in file:

View File

@ -30,6 +30,11 @@ import unittest
from mklog import generate_changelog
import unidiff
unidiff_supports_renaming = hasattr(unidiff.PatchedFile(), 'is_rename')
PATCH1 = '''\
diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h
index 567c23380fe..e6209ede9d6 100644
@ -379,6 +384,21 @@ gcc/testsuite/ChangeLog:
'''
PATCH8 = '''\
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf2.c
similarity index 100%
rename from gcc/ipa-icf.c
rename to gcc/ipa-icf2.c
'''
EXPECTED8 = '''\
gcc/ChangeLog:
* ipa-icf.c: Moved to...
* ipa-icf2.c: ...here.
'''
class TestMklog(unittest.TestCase):
def test_macro_definition(self):
changelog = generate_changelog(PATCH1)
@ -411,3 +431,9 @@ class TestMklog(unittest.TestCase):
def test_dr_detection_in_test_case(self):
changelog = generate_changelog(PATCH7)
assert changelog == EXPECTED7
@unittest.skipIf(not unidiff_supports_renaming,
'Newer version of unidiff is needed (0.6.0+)')
def test_renaming(self):
changelog = generate_changelog(PATCH8)
assert changelog == EXPECTED8