[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 06/31] python: add commit-per-subsystem.py
From: |
Daniel P . Berrangé |
Subject: |
Re: [PATCH v4 06/31] python: add commit-per-subsystem.py |
Date: |
Mon, 7 Oct 2019 17:21:42 +0100 |
User-agent: |
Mutt/1.12.1 (2019-06-15) |
On Mon, Oct 07, 2019 at 06:16:51PM +0200, Cornelia Huck wrote:
> On Mon, 7 Oct 2019 16:10:02 +0000
> Vladimir Sementsov-Ogievskiy <address@hidden> wrote:
>
> > 07.10.2019 18:55, Cornelia Huck wrote:
> > > On Tue, 1 Oct 2019 18:52:54 +0300
> > > Vladimir Sementsov-Ogievskiy <address@hidden> wrote:
>
> > >> +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.
> >
>
> Yeah, that is a problem I don't have a solution for, either.
>
> But the script should probably get at least a comment about its
> intended purpose and limitations? We don't really want people to start
> using it blindly.
Is this really a common enough problem to even justify having the
script to start with ?
It looks like its only really usable in the case where the changes
to each subsystem are totally self-contained, otherwise you'll get
git bisect failures. The user still has to go back and edit each
commit here to fill in a useful commit messages. It doesn't seem
to save much effort over 'git add -u sub/dir/ && git commit -s'
which is what I'd typically do for grouping changes that are
spread across the tree.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
[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