[dpdk-dev] git trees organization
Adrien Mazarguil
adrien.mazarguil at 6wind.com
Wed Sep 13 09:58:45 CEST 2017
Hi,
On Tue, Sep 12, 2017 at 09:32:07AM +0100, Bruce Richardson wrote:
> On Tue, Sep 12, 2017 at 12:03:30AM +0200, Thomas Monjalon wrote:
> > Hi all,
> >
> > As you know I am currently the only maintainer of the master tree.
> > It is very convenient because I need to synchronize with others
> > only when pulling "next-*" trees.
> > But the drawback is that I should be available very often to
> > avoid stalled patches waiting in patchwork backlog.
> >
> > I feel it is the good time to move to a slightly different organization.
> > I am working closely with Ferruh Yigit for almost one year, as next-net
> > maintainer, and I think it would be very efficient to delegate him some
> > work for the master tree.
>
> I think Ferruh has been doing an excellent job on the net tree, and
> would be an excellent candidate to help with the workload on the master
> tree.
>
> > I mean that I would use the patchwork delegation to explicitly divide
> > the workload given our different experiences.
> > Ferruh, do you agree taking this new responsibility?
> >
> > At the same time, we can think how to add more git sub-trees:
>
> In principle, I'm in favour, but I think that the subtrees of the master
> tree should be at a fairly coarse granularity, and not be too many of
> them. The more subtrees, the more likely we are to have issues with
> patchsets needing to be split across trees, or having to take bits from
> multiple trees in order to test if everything is working.
<snip>
About that, how about we start allowing true merge commits instead of
rebasing (rewriting history) in order to ease things for maintainers?
This approach makes pull requests show up as a merge commits that contain
the (ideally trivial) changes needed to resolve any conflicts; this has the
following benefits:
- The work done by a maintainer during that merge is tracked, not silently
ignored or lost. The merge commit itself is signed-off by its author.
- This allows tracing mistakes or bugs to the conflict resolution itself.
- Upstream can reject pull requests on the basis that merging it is not
trivial enough (i.e. downstream must merge upstream changes first).
- Sub-trees can merge among themselves in case they need features that
encompass several trees, not necessarily always against the master
tree. Everything is tracked.
- Maintainers do not ever modify the commits they get from other trees,
which keep their SHAs unmodified as part of the history. A given commit ID
is truly unique among all trees (back-port trees remain the only exception
since commits are cherry-picked).
- It shifts the entire responsibility to the maintainers of sub-trees.
The only downside is that commits have several parents, history becomes a
graph that developers need to get used to (some might call it a mess),
however that's probably not an issue for those already used to Linux kernel
development and other large projects.
I know this was already discussed in the past, however I think adding more
sub-trees will make rebasing too complex otherwise.
Thoughts?
--
Adrien Mazarguil
6WIND
More information about the dev
mailing list