From: Ingo Molnar <mingo@elte.hu>
To: Theodore Tso <tytso@mit.edu>,
Stefan Richter <stefanr@s5r6.in-berlin.de>,
"Luck, Tony" <tony.luck@intel.com>,
Steven Rostedt <rostedt@goodmis.org>,
LKML <linux-kernel@vger.kernel.org>,
Nicolas Pitre <nico@fluxnic.net>,
Stephen Rothwell <sfr@canb.auug.org.au>,
"Luis R. Rodriguez" <mcgrof@gmail.com>,
Jeff Garzik <jeff@garzik.org>,
Robert Richter <robert.richter@amd.com>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Jean Delvare <khali@linux-fr.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [RFC] to rebase or not to rebase on linux-next
Date: Wed, 28 Oct 2009 08:26:26 +0100 [thread overview]
Message-ID: <20091028072626.GB6353@elte.hu> (raw)
In-Reply-To: <20091027180718.GC7915@mit.edu>
* Theodore Tso <tytso@mit.edu> wrote:
> On Mon, Oct 26, 2009 at 07:01:57PM +0100, Stefan Richter wrote:
> > > Suppose I update the 40th patch of a 50th patch series to add check
> > > for kmalloc() returning NULL that had been inadvertently left out, or
> > > some other error checking is added. Or suppose I add a new tracepoint
> > > definition to a 50 patch series.
> >
> > ...are bad examples in the context of linux-next, IMO. A missing
> > allocation failure check or a missing tracepoint don't break
> > bisectability. So why discard this history? (It was already published
> > in a release preview.)
>
> There are multiple issues for rewinding patches. One is to avoid
> breaking bisectability. Other is to keep related changes in
> functionality in a single place. 2-3 years for now, does anyone
> really care about retaining development history? In the human memory,
> one of the most important parts of long-term memory formation is
> *forgetting*; that is, editing down everything that happened down to
> the most cogent and importants bits of history. This is what is
> disrupted when people don't get enough sleep.
Fact is that the overwhelming majority of git-rebase uses i've seen were
not done for ack-adding purposes.
They were used to prettify up a tree shortly before it's pushed
upstream, and as a happy side-effect to whitewash out the more
embarrassing bits of the history via backmerges. It presents a rosy
picture about problem-free development and a perfectly going, fluid
workflow with perfect foresight, good testing and few mistakes.
A real git tree will contain fixes for brown paperbag bugs, it will
contain reverts, it will contain the occasional messy changelog. It is
also, because it's more real life, far more trustable to pull from. The
thing is, nothing improves a workflow more than public embarrassment -
but rebasing takes away much of that public embarrassment factor.
Also, i dont buy the bisectability argument either. I bisect all the
time. The number of bisections i've done on the kernel in the past two
years are in the hundreds. Still i dont see any actual, frequent
bisectability problems. (and if i see them i do raise it on lkml)
How come i dont see frequent bisection problems, despite the majority of
trees and commits (well in excess of 50%) being maintained in
append-only mode? By your argument i should be seeing an increasing
amount of bisection problems. In fact i see the opposite: if i see some
bad bisection bug it is often _due_ to a rebase - a patch was reordered
without real testing being injected into the new tree, breaking hundreds
(sometimes thousands) of commits.
So to sum it up - i am sure that there are people who can run nice trees
responsibly, using just about _any_ source code management tool, be that
Quilt or stgit. Heck i think Andrew could maintain -mm by scribbling
patches on tree bark and sending them to Linus via swarms of pigeons.
But the fundamental fact remains, from all the workflows i tried (and i
ran 1000+ patches quilt trees just a few years ago), Git append-only
workflows are the most gradual, most resilient, most scalable, most
symmetric and hence most trustable source of changes to me.
So it's no wonder Linus mandates all big Git trees to use an append-only
workflow.
Ingo
next prev parent reply other threads:[~2009-10-28 7:26 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4ADD0793.3000707@kernel.org>
[not found] ` <20091020020449.GF24370@core.coreip.homeip.net>
[not found] ` <20091020034829.GA12833@elte.hu>
[not found] ` <20091020140750.GH11972@erda.amd.com>
[not found] ` <alpine.LFD.2.00.0910210654480.5125@eeepc.linux-foundation.org>
[not found] ` <20091022122042.e535d43c.sfr@canb.auug.org.au>
[not found] ` <20091023112732.GB5886@elte.hu>
[not found] ` <4AE19A74.1090709@garzik.org>
[not found] ` <20091023123555.GA25366@elte.hu>
[not found] ` <57C9024A16AD2D4C97DC78E552063EA3E33D0174@orsmsx505.amr.corp.intel.com>
[not found] ` <20091023134115.GD27097@elte.hu>
[not found] ` <alpine.LFD.2.00.0910231424440.21460@xanadu.home>
[not found] ` <20091023191631.GA1879@elte.hu>
2009-10-23 19:35 ` [RFC] to rebase or not to rebase on liunx-next Steven Rostedt
2009-10-23 20:37 ` [RFC] to rebase or not to rebase on linux-next Ingo Molnar
2009-10-23 20:54 ` Ingo Molnar
2009-10-23 21:59 ` Sam Ravnborg
2009-10-26 23:26 ` Steven Rostedt
2009-10-26 23:30 ` David Miller
2009-10-26 23:51 ` Steven Rostedt
2009-10-27 0:15 ` David Miller
2009-10-27 0:30 ` Steven Rostedt
2009-10-27 1:34 ` David Miller
2009-10-27 3:02 ` Steven Rostedt
2009-10-27 4:56 ` Theodore Tso
2009-10-27 5:18 ` David Miller
2009-10-27 8:13 ` Ingo Molnar
2009-10-27 9:48 ` Catalin Marinas
2009-10-27 7:59 ` Ingo Molnar
2009-10-27 15:39 ` Steven Rostedt
2009-10-27 17:18 ` Nicolas Pitre
2009-10-28 15:15 ` Steven Rostedt
2009-10-28 6:40 ` Ingo Molnar
2009-10-24 8:03 ` Theodore Tso
2009-10-24 12:20 ` Stefan Richter
2009-10-24 19:43 ` Sam Ravnborg
2009-10-27 19:06 ` Linus Torvalds
2009-10-27 19:27 ` Steven Rostedt
2009-10-27 19:39 ` Valdis.Kletnieks
2009-10-27 19:43 ` Steven Rostedt
2009-10-27 19:42 ` Linus Torvalds
2009-10-26 4:53 ` Luck, Tony
2009-10-26 5:21 ` Theodore Tso
2009-10-26 18:01 ` Stefan Richter
2009-10-27 18:07 ` Theodore Tso
2009-10-27 18:54 ` Stefan Richter
2009-10-28 7:26 ` Ingo Molnar [this message]
2009-10-24 12:51 ` Stefan Richter
[not found] ` <4AE21839.3000000@s5r6.in-berlin.de>
2009-10-23 21:03 ` [kernel.org users] Please remember to run 'git gc' on your repositories Steven Rostedt
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=20091028072626.GB6353@elte.hu \
--to=mingo@elte.hu \
--cc=dmitry.torokhov@gmail.com \
--cc=jeff@garzik.org \
--cc=khali@linux-fr.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mcgrof@gmail.com \
--cc=nico@fluxnic.net \
--cc=robert.richter@amd.com \
--cc=rostedt@goodmis.org \
--cc=sfr@canb.auug.org.au \
--cc=stefanr@s5r6.in-berlin.de \
--cc=tony.luck@intel.com \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
/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
all inboxes | Powered by JetHome®