qemu-s390x
[Top][All Lists]
Advanced

[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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]