Allow ChangeLog entries for ignored location.

Message ID 061367b9-46b8-a1fa-d7e4-e025a3a0e251@suse.cz
State New
Headers show
Series
  • Allow ChangeLog entries for ignored location.
Related show

Commit Message

Martin Liška May 26, 2020, 7:03 a.m.
We should be able to generate ChangeLog entries for
commits like b3d566f570f4416299240b51654b70c74f6cba6a.
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.
---
  contrib/gcc-changelog/git_commit.py    | 16 +++++++----
  contrib/gcc-changelog/test_email.py    |  5 ++++
  contrib/gcc-changelog/test_patches.txt | 40 ++++++++++++++++++++++++++
  3 files changed, 55 insertions(+), 6 deletions(-)

-- 
2.26.2

Patch

diff --git a/contrib/gcc-changelog/git_commit.py b/contrib/gcc-changelog/git_commit.py
index 2cfdbc83d09..edd8834b898 100755
--- a/contrib/gcc-changelog/git_commit.py
+++ b/contrib/gcc-changelog/git_commit.py
@@ -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
diff --git a/contrib/gcc-changelog/test_email.py b/contrib/gcc-changelog/test_email.py
index aa516c6e6d1..bf028a3d40a 100755
--- a/contrib/gcc-changelog/test_email.py
+++ b/contrib/gcc-changelog/test_email.py
@@ -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.')
diff --git a/contrib/gcc-changelog/test_patches.txt b/contrib/gcc-changelog/test_patches.txt
index 58fd81c85c9..84d4b81d818 100644
--- a/contrib/gcc-changelog/test_patches.txt
+++ b/contrib/gcc-changelog/test_patches.txt
@@ -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
+