[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