From: David Brown <davidb@codeaurora.org>
To: Jeff King <peff@peff.net>
Cc: "Joshua Jensen" <jjensen@workspacewhiz.com>,
"Avery Pennarun" <apenwarr@gmail.com>,
"Shawn Pearce" <spearce@spearce.org>,
"Jon Seymour" <jon.seymour@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: Coping with the pull-before-you-push model
Date: Wed, 15 Sep 2010 14:59:54 -0700 [thread overview]
Message-ID: <20100915215954.GA20880@huya.qualcomm.com> (raw)
In-Reply-To: <20100914052451.GA15839@sigill.intra.peff.net>
On Tue, Sep 14, 2010 at 01:24:51AM -0400, Jeff King wrote:
> I seem to recall from one of Shawn's presentations on Gerrit Code Review
> that it does something like this, too, but I can't seem to find any docs
> about it in my brief search:
>
> http://code.google.com/p/gerrit/
>
> It may be that Gerrit doesn't handle building itself, but that the
> Android project is running something alongside it. Shawn may be able to
> say more.
>
> Basically, what we are talking about is continuous integration, with the
> slight twist that instead of developers pushing commits to a mainline
> branch which is built and tested, we would build and test their commits
> and then merge them to the mainline branch.
Gerrit doesn't do the build and test, but it isn't all that difficult
to hook into. It also allows the results of the build and test to
record their state so that the developer can track what is happening.
The nice part about it, compared to other CI systems I've seen is that
it catches the problems before they are merged into master, rather
than after.
Internally, we actually do multiple levels of a CI-type thing. Every
time a developer uploads a change, one machine performs a sanity build
on it (with multiple configurations). These results are visible in
Gerrit, and it keeps people from putting too much effort into
reviewing code that doesn't even compile.
Once the code has gotten through two levels of code review, a more
throughough build and test system pulls the whole project (from
numerous git repos) builds and runs tests. This takes long enough
that it doesn't do individual changes, so failures take work to track
down, but it does generally assure that the result of each 'git merge'
somewhat works.
The only real annoying part I've found with the gerrit model is that
the tree is filled with lots of merge comments (generally a merge for
every real commit). The other option is to let Gerrit rebase, which
then gets annoying when a developer has pulled changes from other
developers.
It also has a nice link to a 'git pull' command to pull down an
individual change.
David
next prev parent reply other threads:[~2010-09-15 22:00 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-09 4:47 Coping with the pull-before-you-push model Joshua Jensen
2010-09-09 13:06 ` Ævar Arnfjörð Bjarmason
2010-09-09 14:43 ` Joshua Jensen
2010-09-10 5:35 ` Jon Seymour
2010-09-10 14:15 ` Jeff King
2010-09-14 4:47 ` Joshua Jensen
2010-09-14 5:24 ` Jeff King
2010-09-14 5:59 ` Avery Pennarun
2010-09-15 21:59 ` David Brown [this message]
2010-09-14 12:12 ` Theodore Tso
2010-09-14 15:51 ` Joshua Jensen
2010-09-14 16:24 ` Eugene Sajine
2010-09-14 16:49 ` Ted Ts'o
2010-09-14 4:37 ` Joshua Jensen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100915215954.GA20880@huya.qualcomm.com \
--to=davidb@codeaurora.org \
--cc=apenwarr@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=jjensen@workspacewhiz.com \
--cc=jon.seymour@gmail.com \
--cc=peff@peff.net \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).