public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
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


  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).