Allow ChangeLog entries for ignored location.

We should be able to generate ChangeLog entries for
commits like b3d566f570.
I'm going to install the patch.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Parse changelog entries for
	ignored locations.
	* gcc-changelog/test_email.py: Add new test for it.
	* gcc-changelog/test_patches.txt: Likewise.
This commit is contained in:
Martin Liska 2020-05-26 09:01:41 +02:00
parent b3d566f570
commit 4945b4c2c8
No known key found for this signature in database
GPG Key ID: 4DC182DC0FA73785
3 changed files with 55 additions and 6 deletions

View File

@ -233,8 +233,9 @@ class GitCommit:
project_files = [f for f in self.modified_files
if self.is_changelog_filename(f[0])
or f[0] in misc_files
or self.in_ignored_location(f[0])]
or f[0] in misc_files]
ignored_files = [f for f in self.modified_files
if self.in_ignored_location(f[0])]
if len(project_files) == len(self.modified_files):
# All modified files are only MISC files
return
@ -244,7 +245,9 @@ class GitCommit:
'separately from normal commits'))
return
self.parse_lines()
all_are_ignored = (len(project_files) + len(ignored_files)
== len(self.modified_files))
self.parse_lines(all_are_ignored)
if self.changes:
self.parse_changelog()
self.deduce_changelog_locations()
@ -292,7 +295,7 @@ class GitCommit:
modified_files.append((parts[2], 'A'))
return modified_files
def parse_lines(self):
def parse_lines(self, all_are_ignored):
body = self.lines
for i, b in enumerate(body):
@ -303,8 +306,9 @@ class GitCommit:
or dr_regex.match(b) or author_line_regex.match(b)):
self.changes = body[i:]
return
self.errors.append(Error('cannot find a ChangeLog location in '
'message'))
if not all_are_ignored:
self.errors.append(Error('cannot find a ChangeLog location in '
'message'))
def parse_changelog(self):
last_entry = None

View File

@ -280,3 +280,8 @@ class TestGccChangelog(unittest.TestCase):
def test_changes_only_in_ignored_location(self):
email = self.from_patch_glob('0001-go-in-ignored-location.patch')
assert not email.errors
def test_changelog_for_ignored_location(self):
email = self.from_patch_glob('0001-Update-merge.sh-to-reflect.patch')
assert (email.changelog_entries[0].lines[0]
== '\t* LOCAL_PATCHES: Use git hash instead of SVN id.')

View File

@ -2611,3 +2611,43 @@ index 00000000000..2609cc49ae7
--
2.27.0.rc0.183.gde8f92d652-goog
=== 0001-Update-merge.sh-to-reflect.patch ===
From b3d566f570f4416299240b51654b70c74f6cba6a Mon Sep 17 00:00:00 2001
From: Martin Liska <mliska@suse.cz>
Date: Mon, 25 May 2020 20:55:29 +0200
Subject: [PATCH] Update merge.sh to reflect usage of git.
After switching to GIT, we should use it in libsanitizer
merge script. I'll do merge from master as soon as
PR95311 gets fixed.
I'm going to install the patch.
libsanitizer/ChangeLog:
* LOCAL_PATCHES: Use git hash instead of SVN id.
* merge.sh: Use git instead of VCS. Update paths
relative to upstream git repository.
---
libsanitizer/LOCAL_PATCHES | 2 +-
libsanitizer/merge.sh | 10 ++++------
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/libsanitizer/LOCAL_PATCHES b/libsanitizer/LOCAL_PATCHES
index 292b7a6e489..7732de3d436 100644
--- a/libsanitizer/LOCAL_PATCHES
+++ b/libsanitizer/LOCAL_PATCHES
@@ -1 +1,2 @@
+
diff --git a/libsanitizer/merge.sh b/libsanitizer/merge.sh
index dfa7bf3d196..3f4f1629a22 100755
--- a/libsanitizer/merge.sh
+++ b/libsanitizer/merge.sh
@@ -1 +1,2 @@
+
--
2.26.2