repoman: no ChangeLog for Manifest-only commit
authorZac Medico <zmedico@gentoo.org>
Sat, 11 Feb 2012 05:42:57 +0000 (21:42 -0800)
committerZac Medico <zmedico@gentoo.org>
Sat, 11 Feb 2012 05:42:57 +0000 (21:42 -0800)
Use --echangelog=force to force ChangeLog generation in this case.
See bug #398009.

bin/repoman

index 32111bddd1a81bb95a49c8391650d8193efa1b91..f3946eae5cb2b6bb843ef270493a55d9b9de40e7 100755 (executable)
@@ -2463,6 +2463,15 @@ else:
                        clnew = [elem[cdrlen:] for elem in mynew if elem.startswith(checkdir_relative)]
                        clremoved = [elem[cdrlen:] for elem in myremoved if elem.startswith(checkdir_relative)]
                        clchanged = [elem[cdrlen:] for elem in mychanged if elem.startswith(checkdir_relative)]
+
+                       # Skip ChangeLog generation if only the Manifest was modified,
+                       # as discussed in bug #398009.
+                       nontrivial_cl_files = set()
+                       nontrivial_cl_files.update(clnew, clremoved, clchanged)
+                       nontrivial_cl_files.difference_update(['Manifest'])
+                       if not nontrivial_cl_files and options.echangelog != 'force':
+                               continue
+
                        new_changelog = utilities.UpdateChangeLog(checkdir_relative,
                                committer_name, changelog_msg,
                                os.path.join(repodir, 'skel.ChangeLog'),