Package: git-buildpackage
Version: 0.9.30
Severity: wishlist
Tags: patch

This allows one for example to add commands (e.g. `Gbp-Dch: ignore`) to
past commits, without having to rewrite the git history. This is
implemented in the attached patches.

-- System Information:
Debian Release: bookworm/sid
  APT prefers testing-debug
  APT policy: (900, 'testing-debug'), (900, 'testing'), (500, 
'unstable-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 6.0.0-4-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=pt_BR.UTF-8, LC_CTYPE=pt_BR.UTF-8 (charmap=UTF-8), 
LANGUAGE=pt_BR:pt:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages git-buildpackage depends on:
pn  devscripts             <none>
ii  git                    1:2.35.1-1
ii  man-db                 2.11.1-1
ii  python3                3.10.6-1
ii  python3-dateutil       2.8.2-1
ii  python3-pkg-resources  65.5.0-1
ii  python3-yaml           6.0-3+b1
ii  sensible-utils         0.0.17

Versions of packages git-buildpackage recommends:
ii  cowbuilder        0.89
ii  pbuilder          0.231
ii  pristine-tar      1.50
ii  python3-requests  2.28.1+dfsg-1
ii  sbuild            0.84.1

Versions of packages git-buildpackage suggests:
pn  python3-notify2  <none>
ii  sudo             1.9.11p3-2
ii  unzip            6.0-27

-- no debconf information
From 6efae4fd4ded2e456634439f388137fa3c52cac6 Mon Sep 17 00:00:00 2001
From: Antonio Terceiro <terce...@debian.org>
Date: Sun, 27 Nov 2022 13:14:36 -0300
Subject: [PATCH 1/2] GitCommit.get_commit_info: extract commit notes

---
 gbp/git/repository.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gbp/git/repository.py b/gbp/git/repository.py
index edbdfe9f..81ae70c9 100644
--- a/gbp/git/repository.py
+++ b/gbp/git/repository.py
@@ -1712,7 +1712,7 @@ class GitRepository(object):
         to the commit it points to.
 
         @param commitish: the commit-ish to inspect
-        @return: the commit's including id, author, email, subject and body
+        @return: the commit's including id, author, email, subject, body, and notes
         @rtype: dict
         """
         commit_sha1 = self.rev_parse("%s^0" % commitish)
@@ -1744,12 +1744,15 @@ class GitRepository(object):
             path = file_fields.pop(0)
             files[status].append(path)
 
+        notes, _, _ = self._git_inout('notes', ['show', commit_sha1], capture_stderr=True)
+
         return {'id': commitish,
                 'author': author,
                 'committer': committer,
                 'subject': fields[6].decode(),
                 'patchname': fields[7].decode(),
                 'body': fields[8].decode(),
+                'notes': notes.decode(),
                 'files': files}
 
 #{ Patches
-- 
2.35.1

From 8db4c62bc1192ecb575d567e5df00ff2f7f0cdee Mon Sep 17 00:00:00 2001
From: Antonio Terceiro <terce...@debian.org>
Date: Sun, 27 Nov 2022 19:52:46 -0300
Subject: [PATCH 2/2] dch: also look into commit notes for Gbp-Dch: commands

This allows one for example to add commands (e.g. `Gbp-Dch: ignore`) to
past commits, without having to rewrite the git history.
---
 docs/manpages/gbp-dch.xml | 10 +++++++---
 gbp/dch.py                |  2 +-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/docs/manpages/gbp-dch.xml b/docs/manpages/gbp-dch.xml
index bb9574cb..8250488b 100644
--- a/docs/manpages/gbp-dch.xml
+++ b/docs/manpages/gbp-dch.xml
@@ -569,9 +569,9 @@
     Additional to the above options, the formatting of the commit message
     in <filename>debian/changelog</filename> can be modified by special tags
     (called Meta Tags)
-    given in the git commit message. Meta Tag processing can be activated via
-    the <option>--meta</option> option. The tags must start at the first column of
-    a commit message but can appear on any line.
+    given in the git commit message or in commit notes. Meta Tag processing can
+    be activated via the <option>--meta</option> option. The tags must start
+    at the first column of a commit message but can appear on any line.
     They are of the form <option>Tagname</option>:
     <replaceable>value</replaceable>. Valid Meta Tags are:
     </para>
@@ -650,6 +650,10 @@
       <xref linkend="man.gbp.import.orig"/>,
       <xref linkend="man.gbp.conf"/>,
       &man.seealso.common;
+      <citerefentry>
+        <refentrytitle>git-notes</refentrytitle>
+        <manvolnum>1</manvolnum>
+      </citerefentry>,
       <ulink url="https://honk.sigxcpu.org/cl2vcs";>
       <citetitle>Cl2vcs</citetitle></ulink>,
     </para>
diff --git a/gbp/dch.py b/gbp/dch.py
index d72152ba..0afdeeea 100644
--- a/gbp/dch.py
+++ b/gbp/dch.py
@@ -106,7 +106,7 @@ def format_changelog_entry(commit_info, options, last_commit=False):
     GitRepository.get_commit_info()).  If last_commit is not False,
     then this entry is the last one in the series."""
     entry = [commit_info['subject']]
-    body = commit_info['body'].splitlines()
+    body = commit_info['body'].splitlines() + commit_info['notes'].splitlines()
     commitid = commit_info['id']
     (git_dch_cmds, body) = extract_git_dch_cmds(body, options)
 
-- 
2.35.1

Attachment: signature.asc
Description: PGP signature

Reply via email to