[GEDI] [PATCH v4 06/31] python: add commit-per-subsystem.py
Cornelia Huck
cohuck at redhat.com
Mon Oct 7 15:55:14 UTC 2019
On Tue, 1 Oct 2019 18:52:54 +0300
Vladimir Sementsov-Ogievskiy <vsementsov at virtuozzo.com> wrote:
> Add script to automatically commit tree-wide changes per-subsystem.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov at virtuozzo.com>
> ---
>
> CC: kwolf at redhat.com
> CC: mreitz at redhat.com
> CC: jsnow at redhat.com
> CC: fam at euphon.net
> CC: sw at weilnetz.de
> CC: codyprime at gmail.com
> CC: marcandre.lureau at redhat.com
> CC: pbonzini at redhat.com
> CC: groug at kaod.org
> CC: sundeep.lkml at gmail.com
> CC: peter.maydell at linaro.org
> CC: stefanha at redhat.com
> CC: pburton at wavecomp.com
> CC: arikalo at wavecomp.com
> CC: berrange at redhat.com
> CC: ehabkost at redhat.com
> CC: david at gibson.dropbear.id.au
> CC: clg at kaod.org
> CC: mst at redhat.com
> CC: marcel.apfelbaum at gmail.com
> CC: mark.cave-ayland at ilande.co.uk
> CC: yuval.shaia at oracle.com
> CC: cohuck at redhat.com
> CC: farman at linux.ibm.com
> CC: rth at twiddle.net
> CC: david at redhat.com
> CC: pasic at linux.ibm.com
> CC: borntraeger at de.ibm.com
> CC: kraxel at redhat.com
> CC: alex.williamson at redhat.com
> CC: andrew at aj.id.au
> CC: joel at jms.id.au
> CC: eblake at redhat.com
> CC: armbru at redhat.com
> CC: mdroth at linux.vnet.ibm.com
> CC: quintela at redhat.com
> CC: dgilbert at redhat.com
> CC: jasowang at redhat.com
> CC: qemu-block at nongnu.org
> CC: integration at gluster.org
> CC: qemu-arm at nongnu.org
> CC: qemu-ppc at nongnu.org
> CC: qemu-s390x at nongnu.org
>
>
> python/commit-per-subsystem.py | 69 ++++++++++++++++++++++++++++++++++
> 1 file changed, 69 insertions(+)
> create mode 100755 python/commit-per-subsystem.py
>
> diff --git a/python/commit-per-subsystem.py b/python/commit-per-subsystem.py
> new file mode 100755
> index 0000000000..d8442d9ea3
> --- /dev/null
> +++ b/python/commit-per-subsystem.py
> @@ -0,0 +1,69 @@
> +#!/usr/bin/env python3
> +#
> +# Copyright (c) 2019 Virtuozzo International GmbH
> +#
> +# This program 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 2 of the License, or
> +# (at your option) any later version.
> +#
> +# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
> +#
> +
> +import subprocess
> +import sys
> +
> +
> +def git_add(pattern):
> + subprocess.run(['git', 'add', pattern])
> +
> +
> +def git_commit(msg):
> + subprocess.run(['git', 'commit', '-m', msg], capture_output=True)
> +
> +
> +maintainers = sys.argv[1]
> +message = sys.argv[2].strip()
> +
> +subsystem = None
> +
> +shortnames = {
> + 'Block layer core': 'block',
> + 'ARM cores': 'arm',
> + 'Network Block Device (NBD)': 'nbd',
> + 'Command line option argument parsing': 'cmdline',
> + 'Character device backends': 'chardev',
> + 'S390 general architecture support': 's390'
> +}
> +
> +
> +def commit():
> + if subsystem:
> + msg = subsystem
> + if msg in shortnames:
> + msg = shortnames[msg]
> + msg += ': ' + message
> + git_commit(msg)
> +
> +
> +with open(maintainers) as f:
> + for line in f:
> + line = line.rstrip()
> + if not line:
> + continue
> + if len(line) >= 2 and line[1] == ':':
> + if line[0] == 'F' and line[3:] not in ['*', '*/']:
> + git_add(line[3:])
> + else:
> + # new subsystem start
> + commit()
> +
> + subsystem = line
> +
> +commit()
Hm... I'm not sure about the purpose of this script (and my python is
rather weak)... is this supposed to collect all changes covered by a
subsystem F: pattern into one patch? If so, what happens to files
covered by multiple sections?
More information about the integration
mailing list