Gentoo Logo
Gentoo Spaceship




Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-dev
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-dev@g.o
From: "Robin H. Johnson" <robbat2@g.o>
Subject: Git braindump: 2 of N: developer interaction (merge co-ordinators)
Date: Sun, 3 Jun 2012 09:46:16 +0000
Developer Interaction model with Git
------------------------------------
Aka, why merge lieutenants or co-ordinators might be useful

This is amongst the potential problems I see might pop up.

We have two developers, let's call them Alice & Bob.

Alice has a nice fast internet connection, 10Mbit upstream.
Bob has a really sucky internet connection, 128Kbit upstream.

Alice is doing this set of commands, as she has a fast connection:
- (work on an ebuild)
- repoman commit
- git pull (implicit merge)
- git push

Bob is doing this, as he has a slow intermittent connection
- (work on an ebuild)
- repoman commit
- loop the above many times
- git pull (implicit merge)
- fix conflicts as needed
- git push

If there are enough "Alice" developers, is it a possibility that Bob
will never have a chance to get his commit in?

All this requires, is that in the time it takes Bob to do 'git pull',
Alice manages to do 'git push' again.

Alice can thus deprive Bob of a fair chance to get his commit in.
Bob becomes an unhappy developer and gives up.

Is this a realistic problem you ask? As recently as one or two years
ago, we still have developers on 56K or worse modems at home.

A variant of the above problem also happens as the number of developers
grows, you're almost always out of date trying to push to a single
branch if it's moving fast enough.

If this does happen, what can we do about it?

We have two options:
Both of them imply that each developer will have a private branch,
dev/$FOO, that only they are able to commit into.

A hierarchy of merge lieutenants:
- This is basically the Linux kernel model. The ability to merge into
  master resides with a single person, and he pulls from other known
  specified developers, who serve to collect and fix conflicts as needed
  from the general developer population.
A merge co-ordinators that switches with time.
- This resembles the model used by Mozilla.
- Switches on a time basis; is generally some developer with a fast
  internet connection.
- Responsible for taking pull requests, merging, fixing conflicts or
  punting back, and pushing to the master branch.

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Trustee & Infrastructure Lead
E-Mail     : robbat2@g.o
GnuPG FP   : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85


Replies:
Re: Git braindump: 2 of N: developer interaction (merge co-ordinators)
-- Kent Fredric
Re: Git braindump: 2 of N: developer interaction (merge co-ordinators)
-- Dirkjan Ochtman
Re: Git braindump: 2 of N: developer interaction (merge co-ordinators)
-- Thomas Sachau
Re: Git braindump: 2 of N: developer interaction (merge co-ordinators)
-- Fabio Erculiani
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Git braindump: 1 of N: merging & git signing
Next by thread:
Re: Git braindump: 2 of N: developer interaction (merge co-ordinators)
Previous by date:
Re: Re: metadata/md5-cache
Next by date:
Re: Re: metadata/md5-cache


Updated Jun 29, 2012

Summary: Archive of the gentoo-dev mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.