git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Theodore Tso <tytso@mit.edu>
To: Andi Kleen <andi@firstfloor.org>
Cc: Jakub Narebski <jnareb@gmail.com>,
	Avery Pennarun <apenwarr@gmail.com>,
	git@vger.kernel.org
Subject: Re: nicer frontend to get rebased tree?
Date: Sat, 23 Aug 2008 19:01:10 -0400	[thread overview]
Message-ID: <20080823230110.GC18169@mit.edu> (raw)
In-Reply-To: <20080823165350.GY23334@one.firstfloor.org>

On Sat, Aug 23, 2008 at 06:53:50PM +0200, Andi Kleen wrote:
> > If you are thinking about 'linux-next', it is exception rather than
> > the rule.
> 
> No you're wrong. The majority of Linux trees I have to deal with 
> do it now and then. And I must say I also understand why 
> they want it -- they want a clean history on top of Linus' tree.
> Otherwise there is no chance to find the own changes again
> after a few thousands other merges.

What I don't understand is in what context do you need to deal with
"the majority of Linux trees"?  Sure, the ext4 tree gets rebased all
the time.  But that's because it's a "leaf" tree; it means that people
can't base development trees off of the ext4 tree as a result.  But
then again, that's not what the ext4 git tree is intended for!  It's
like in Java when you declare a class with the 'final' keyword; such
classes can't be subclassed.

The main use of the ext4 git tree is to allow people to more easily
pull changes into their own trees, either for building their own
integration trees, or their own personal private trees.  It's simply a
much more efficient way of applying a large number of patch queues.
So for example, when I build my personal kernel that I use on my
laptops, servers, et. al, I start with ext4 and pull in various
"fixes" branches that I've needed over time to build a useful, stable
kernel.   So I have a personal merge script which does:

git branch -f master linus/master
git checkout master
git merge tp_smapi-0.37
git merge remotes/libata-dev/upstream-fixes
git merge remotes/ibm-acpi/for-upstream/acpi-release
git merge misc-fixes
git merge ext4dev

... and the result is an integration tree that always treet as
throwaway, because I've merged in trees which are indeed throwaway.
If I *do* any development work on this tree, say I cheat and fix some
ext4 bugs on this tree instead of the ext4 branch, I always will go
back to the ext4 branch, and use "git cherry-pick" to move those
changes back to the ext4 tree.

> > First, there isn't just _one_ way to deal with non fast-forward 
> > (rebased) branch; there are many possible workflow wrt rebasing.
> 
> I don't doubt there are a million ways to do it somehow in
> all kinds of convoluted ways. And that's exactly the problem.

There are, but the simpliest way to win (as the movie "Wargames" put
it), is not to play.  Just don't put commits on top of a non-terminal
trees; just use them to pull to create throw-away trees for
building/testing, for integration testing or to build your own
personal kernels.  The only time when you really need to build on top
of others' trees is if you have changes that depend on patches in
another tree, which in practice should happen rarely; and if it does,
you can ask the other maintainer to push the changes to Linus first.

In that case, what you can do is put a placeholder patch in your tree,
with a note in the commit log that this is a placeholder is pending
someone else pushing the equivalent patch to Linus, and once they push
it to Linus, when you do a rebase it will disappear.  In practice,
this happens so rarely that doing this manually with manual
coordination between maintainers about who pushes a patch to Linus
really isn't that big of a deal.

						- Ted

  parent reply	other threads:[~2008-08-23 23:02 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
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 [this message]
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=20080823230110.GC18169@mit.edu \
    --to=tytso@mit.edu \
    --cc=andi@firstfloor.org \
    --cc=apenwarr@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    /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).