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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.