From: Ingo Molnar <mingo@elte.hu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andi Kleen <andi@firstfloor.org>,
git@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: nicer frontend to get rebased tree?
Date: Mon, 25 Aug 2008 11:36:45 +0200 [thread overview]
Message-ID: <20080825093645.GA7741@elte.hu> (raw)
In-Reply-To: <alpine.LFD.1.10.0808231054400.3363@nehalem.linux-foundation.org>
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Sat, 23 Aug 2008, Andi Kleen wrote:
> > >
> > > A lot of the trees don't rebase. The rest of the trees may not realize
> >
> > That's not my experience, sorry (even on other other trees than linux-next,
> > linux-next was just an example). e.g. the original ACPI tree did it,
> > the x86 tree jungle does it, most of the other architecture trees do it,
[ thanks for the lovely charecterisation of -tip, it's appreciated.
</sarcasm> ]
> > the networking tree does it. etc.etc.
>
> So _complain_ to those people. Tell them that they are making your
> life harder. Let them know.
>
> I sure as hell let people know when they are making _my_ life harder.
> It has helped. The networking tree stopped rebasing, and the x86 tree
> doesn't do it for the topic branches (although I think it re-creates
> the "common" branches all the time, kind of like linux-next).
Correct - we keep all topic branches append-only. (We rebase a topic
only in exceptional cases: if there's a complete restart from scratch,
when the history is so messy or uninteresting that no-one would care
about it.)
And we do more than that: even tip/master is becoming more and more
append-only. We are set up in a way that makes rebasing of a topic
branch painful for _us_ integrators already. That is because tip/master
is a "consumer" of all the topic trees, in form of 'delta-integration',
which just merges all updated topic branches ontop of tip/master.
If a topic tree is rebased, we feel the pain in tip/master: no easy
delta-integration run is possible anymore, we get a ton of conflicts due
to the changed sha1's and due to the slightly changed content and the
whole topic tree has to be undone and re-merged. It's also harder to
track changes and it's harder to trust the quality of a stream of
changes if they get rebased - etc.
Alas, we dont rebase when we can avoid it.
We periodically 'reintegrate' the whole thing to create the linux-next
output branches and to get rid of the uninteresting hundreds of
criss-cross merges, but that's on a relatively slow scale of 1-2 weeks.
( which is still too frequent for this to be truly append-only, but
dependable enough for short-term development and obviously good for
testing and regression-bisection activities. )
When people ask me "what should I use for development, tip/master?", i
suggest them to use -git or a specific topic branch they are interested
in. (and each topic branch is based on upstream -git as well.)
Sometimes if they are working in an area where there's known overlap
with multiple topics, people will send patches/pull-requests against
tip/master. In that case we maintainers sort those out and 'spread' them
into individual topic branches - i.e. turn them into an append-only flow
of changes.
But arch/x86 development is also a bit special: in the past year it has
gathered almost as many developers and per kernel cycle commits as the
networking tree, but compressed into a highly critical and hard to
debug/test ~190 KLOC codebase.
The networking tree is an order of magnitude larger at 1.5 MLOC, which
makes it statistically a lot less likely that commits would overlap in
it - and makes it far more feasible to handle conflicts in the simplest
and most robust way: by doing hierarchical maintenance with strict
boundaries and thus _avoiding_ conflicts.
Hence we've set up the x86 tree as this 'forest of 160+ trees' which
topic trees iteract with each other intelligently and which get
integrated into a single "kitchen sink" test branch, tip/master.
Ingo
next prev parent reply other threads:[~2008-08-25 9:38 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-22 17:46 nicer frontend to get rebased tree? Andi Kleen
2008-08-22 17:55 ` Linus Torvalds
2008-08-22 18:27 ` Andi Kleen
2008-08-22 19:36 ` Linus Torvalds
2008-08-22 20:11 ` Paolo Ciarrocchi
2008-08-22 20:33 ` Linus Torvalds
2008-08-22 20:36 ` Björn Steinbrink
2008-08-22 20:46 ` Paolo Ciarrocchi
2008-08-22 20:29 ` Linus Torvalds
2008-08-22 21:23 ` Junio C Hamano
2008-08-23 7:10 ` Andi Kleen
2008-08-23 9:24 ` Paolo Bonzini
2008-08-23 16:36 ` Andi Kleen
2008-08-23 23:00 ` Paolo Bonzini
2008-08-23 15:55 ` Linus Torvalds
2008-08-23 16:45 ` Andi Kleen
2008-08-23 17:58 ` Linus Torvalds
2008-08-25 9:36 ` Ingo Molnar [this message]
2008-08-23 18:18 ` Björn Steinbrink
2008-08-23 18:56 ` Linus Torvalds
2008-08-23 20:08 ` Björn Steinbrink
2008-08-23 21:38 ` Documentating branches (was: nicer frontend to get rebased tree?) Marius Vollmer
2008-08-23 22:17 ` Miklos Vajna
2008-08-23 22:30 ` Documenting branches Marius Vollmer
2008-08-23 22:18 ` Documentating branches Marius Vollmer
2008-08-22 17:56 ` nicer frontend to get rebased tree? Avery Pennarun
2008-08-22 18:31 ` Andi Kleen
2008-08-22 19:03 ` Paolo Ciarrocchi
2008-08-22 19:34 ` Jakub Narebski
2008-08-23 7:15 ` Andi Kleen
2008-08-23 8:52 ` Paolo Ciarrocchi
2008-08-23 9:21 ` Jakub Narebski
2008-08-23 16:53 ` Andi Kleen
2008-08-23 21:04 ` Paolo Ciarrocchi
2008-08-23 21:52 ` Linus Torvalds
2008-08-23 22:09 ` Paolo Ciarrocchi
2008-08-23 22:13 ` Björn Steinbrink
2008-08-24 0:30 ` Junio C Hamano
2008-08-23 22:49 ` Jakub Narebski
2008-08-23 23:01 ` Theodore Tso
2008-08-23 23:01 ` A proposed solution (Was: nicer frontend to get rebased tree?) Theodore Tso
2008-08-22 20:11 ` nicer frontend to get rebased tree? Mikael Magnusson
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=20080825093645.GA7741@elte.hu \
--to=mingo@elte.hu \
--cc=andi@firstfloor.org \
--cc=git@vger.kernel.org \
--cc=hpa@zytor.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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).