Re: Announce: Linux-next (Or Andrew's dream :-))

J. Bruce Fields
2008-02-13T04:52:47Z

On Tue, Feb 12, 2008 at 05:20:51PM -0800, David Miller wrote:
> From: Linus Torvalds <torvalds@linux-foundation.org>
> Date: Tue, 12 Feb 2008 16:44:47 -0800 (PST)
>
> > gitk --merge
> ...
> > This is something where I actually think git could and should do better:
> > git has the capability to act as more of a "quilt replacement", but
> > because it wasn't part of the original design, we never actualy exposed
> > the simple queue management commands to do this (stgit does things like
> > that, though).
> >
> > So if you haven't pushed out, right now you'd have to do this stupid
> > thing:
>
> Thanks for all the useful info.
>
> But as soon as I've applied any patches to my tree I've "pushed out".
> So this scheme doesn't work for me. The first thing I do when I have
> changes to apply is clone a tree locally and on master.kernel.org,
> then I apply that first patch locally and push it out to master.
>
> What would be really cool is if you could do the rebase thing, push
> that to a remote tree you were already pushing into and others could
> pull from that and all the right things happen.
>
> A rebase is just a series of events, and those could propagate to
> people who are pulling from the tree. I'm pretty sure GIT could
> support this.

git checkout -b new-tree old-tree
# hack on new-tree: rebase, drop bad commits, whatever
git merge -s ours old-tree
git push your-public-repo new-tree:public-tree

Now public-tree has a merge commit on the top with two parents,
public-tree^1 and public-tree^2. public-tree^1 is the tip of the new
cleaned-up history, and public-tree^2 points to the old stuff.

I sometimes use that privately as a way to keep track of the history of
a patch-series, but I assume Linus would shoot anyone that tried to
submit such a monstrosity upstream....

--b.