From: "Martin Liška" <mliska@suse.cz>
To: Tobias Burnus <tobias@codesourcery.com>,
Martin Sebor <msebor@gmail.com>,
Jason Merrill <jason@redhat.com>
Cc: Jakub Jelinek <jakub@redhat.com>,
gcc Mailing List <gcc@gcc.gnu.org>,
Jonathan Wakely <jwakely@redhat.com>,
gcc-patches <gcc-patches@gcc.gnu.org>
Subject: [RFC][PATCH] contrib: add git-commit-mklog wrapper
Date: Tue, 22 Jun 2021 09:30:21 +0200 [thread overview]
Message-ID: <ab959aa3-2763-7be6-409c-08bd6b0235e2@suse.cz> (raw)
In-Reply-To: <26c6e47d-38e3-83c2-36ce-1786510e00ed@codesourcery.com>
[-- Attachment #1: Type: text/plain, Size: 260 bytes --]
Hello.
There's a patch candidate that comes up with a wrapper for 'git commit-mklog' alias.
Using my patch, one can do:
$ git commit-mklog -a -b 12345,4444
Thoughts?
Can one do that without the wrapper script and passing data through env. variable?
Martin
[-- Attachment #2: 0001-contrib-add-git-commit-mklog-wrapper.patch --]
[-- Type: text/x-patch, Size: 3796 bytes --]
From 6b63718e2836c1a5a63e476ea981ba65084ba867 Mon Sep 17 00:00:00 2001
From: Martin Liska <mliska@suse.cz>
Date: Tue, 22 Jun 2021 09:19:45 +0200
Subject: [PATCH] contrib: add git-commit-mklog wrapper
contrib/ChangeLog:
* gcc-git-customization.sh: Use the new wrapper.
* git-commit-mklog.py: New file.
* prepare-commit-msg: Support GCC_MKLOG_ARGS.
---
contrib/gcc-git-customization.sh | 2 +-
contrib/git-commit-mklog.py | 44 ++++++++++++++++++++++++++++++++
contrib/prepare-commit-msg | 2 +-
3 files changed, 46 insertions(+), 2 deletions(-)
create mode 100755 contrib/git-commit-mklog.py
diff --git a/contrib/gcc-git-customization.sh b/contrib/gcc-git-customization.sh
index e7e66623786..6f8f23deebf 100755
--- a/contrib/gcc-git-customization.sh
+++ b/contrib/gcc-git-customization.sh
@@ -28,7 +28,7 @@ git config alias.gcc-undescr \!"f() { o=\$(git config --get gcc-config.upstream)
git config alias.gcc-verify '!f() { "`git rev-parse --show-toplevel`/contrib/gcc-changelog/git_check_commit.py" $@; } ; f'
git config alias.gcc-backport '!f() { "`git rev-parse --show-toplevel`/contrib/git-backport.py" $@; } ; f'
git config alias.gcc-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/mklog.py" $@; } ; f'
-git config alias.gcc-commit-mklog '!f() { GCC_FORCE_MKLOG=1 git commit "$@"; }; f'
+git config alias.gcc-commit-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/git-commit-mklog.py" $@; }; f'
# Make diff on MD files use "(define" as a function marker.
# Use this in conjunction with a .gitattributes file containing
diff --git a/contrib/git-commit-mklog.py b/contrib/git-commit-mklog.py
new file mode 100755
index 00000000000..f1ef0dfa86b
--- /dev/null
+++ b/contrib/git-commit-mklog.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2020 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING. If not, write to
+# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+#
+# The script is wrapper for git commit-mklog alias where it parses
+# -b/--pr-numbers argument and passes it via environment variable
+# to mklog.py script.
+
+import argparse
+import os
+import subprocess
+
+if __name__ == '__main__':
+ children_args = []
+ myenv = os.environ.copy()
+
+ parser = argparse.ArgumentParser(description='git-commit-mklog wrapped')
+ parser.add_argument('-b', '--pr-numbers', action='store',
+ type=lambda arg: arg.split(','), nargs='?',
+ help='Add the specified PRs (comma separated)')
+ args, unknown_args = parser.parse_known_args()
+
+ myenv['GCC_FORCE_MKLOG'] = '1'
+ if args.pr_numbers:
+ myenv['GCC_MKLOG_ARGS'] = f'-b {",".join(args.pr_numbers)}'
+ commit_args = ' '.join(unknown_args)
+ subprocess.run(f'git commit {commit_args}', shell=True, env=myenv)
diff --git a/contrib/prepare-commit-msg b/contrib/prepare-commit-msg
index 969847df6f4..5da878458cd 100755
--- a/contrib/prepare-commit-msg
+++ b/contrib/prepare-commit-msg
@@ -78,4 +78,4 @@ else
tee="cat"
fi
-git $cmd | $tee | git gcc-mklog -c "$COMMIT_MSG_FILE"
+git $cmd | $tee | git gcc-mklog $GCC_MKLOG_ARGS -c "$COMMIT_MSG_FILE"
--
2.32.0
next prev parent reply other threads:[~2021-06-22 7:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <YMHe/JbcYEm0HZ35@redhat.com>
[not found] ` <CACb0b4=YG4p2ESJ-2QaObqwi8=JLEMGu9oRAi4JrWOyumo+8ZA@mail.gmail.com>
[not found] ` <3228435b-aba0-6157-3266-c0f025822829@gmail.com>
[not found] ` <5f89ddc0-aed4-2c20-0979-dfafb29046ee@gmail.com>
[not found] ` <20210610173005.GI7746@tucnak>
[not found] ` <e7663f13-e07c-01ed-d4c3-1500d0e52c6e@gmail.com>
[not found] ` <20210610190941.GJ7746@tucnak>
[not found] ` <cae4bbbc-3104-f01d-83c8-19ae740c3500@gmail.com>
[not found] ` <CACb0b4kOavxRNMETn=UZx+kOabZ9wqaz7QpOLXpJ+LYdxvZWzw@mail.gmail.com>
[not found] ` <58b63929-01f5-038c-931c-9ff8349d9f95@gmail.com>
[not found] ` <CACb0b4nNAyhqJaap2N6XveABTUxKRew=knMDr6qZM1CZGOTwfw@mail.gmail.com>
[not found] ` <fdee1b46-c44b-eb57-abd7-1ef3b4d2b756@gmail.com>
[not found] ` <alpine.BSF.2.20.16.2106152045070.98326@arjuna.pair.com>
[not found] ` <cf56da64-451b-d33f-278d-cbbfee28aaa7@gmail.com>
[not found] ` <CADzB+2mO0hpCyeON0-6fM=ngTJSdxSceedyL+zbEDYmAyTUL9Q@mail.gmail.com>
[not found] ` <c02221d2-8b74-bc19-4bed-68103efa31d0@redhat.com>
[not found] ` <d1b914d8-ce31-5540-2d7f-76152b7b8444@gmail.com>
[not found] ` <CADzB+2kCLfEcpYmco6QLyU69hTxw7zD=x5LZ09Ki+1qr6Oss_A@mail.gmail.com>
[not found] ` <71b4a023-efb2-6c6a-9ced-93cce7c96540@gmail.com>
2021-06-21 7:54 ` [Patch, v2] contrib/mklog.py: Improve PR handling (was: Re: git gcc-commit-mklog doesn't extract PR number to ChangeLog) Tobias Burnus
2021-06-21 8:09 ` Martin Liška
2021-06-21 8:37 ` Tobias Burnus
2021-06-21 12:53 ` Martin Liška
2021-06-21 13:26 ` Tobias Burnus
2021-06-22 7:30 ` Martin Liška [this message]
2021-06-22 8:23 ` [RFC][PATCH] contrib: add git-commit-mklog wrapper Tobias Burnus
2021-06-22 8:31 ` Martin Liška
2021-06-22 18:40 ` Jason Merrill
2021-06-23 7:40 ` Martin Liška
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ab959aa3-2763-7be6-409c-08bd6b0235e2@suse.cz \
--to=mliska@suse.cz \
--cc=gcc-patches@gcc.gnu.org \
--cc=gcc@gcc.gnu.org \
--cc=jakub@redhat.com \
--cc=jason@redhat.com \
--cc=jwakely@redhat.com \
--cc=msebor@gmail.com \
--cc=tobias@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).