[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 06/31] python: add commit-per-subsystem.py
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
Re: [PATCH v4 06/31] python: add commit-per-subsystem.py |
Date: |
Mon, 7 Oct 2019 16:10:02 +0000 |
07.10.2019 18:55, Cornelia Huck wrote:
> On Tue, 1 Oct 2019 18:52:54 +0300
> Vladimir Sementsov-Ogievskiy <address@hidden> wrote:
>
>> Add script to automatically commit tree-wide changes per-subsystem.
>>
>> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
>> ---
>>
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>> CC: address@hidden
>>
>>
>> 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?
Yes
> If so, what happens to files
> covered by multiple sections?
>
Hmm, they just go to the first of these sections, mentioned in MAINTAINERS.
Is it bad I don't know, but I tried to automate it somehow. Anyway, I myself
can't have better idea about how to organize patches to the subsystems which
I don't know.
--
Best regards,
Vladimir
[PATCH v4 06/31] python: add commit-per-subsystem.py, Vladimir Sementsov-Ogievskiy, 2019/10/01
Re: [PATCH v4 00/31] error: auto propagated local_err, no-reply, 2019/10/01
Re: [PATCH v4 00/31] error: auto propagated local_err, Markus Armbruster, 2019/10/02
Re: [PATCH v4 00/31] error: auto propagated local_err, Markus Armbruster, 2019/10/08