Re: 2.6.16-rc4-mm1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 20, 2006 at 04:53:27PM -0800, Andrew Morton wrote:
> Al Viro <[email protected]> wrote:
> >
> > It really would be more useful to pick individual branches
> >  	fixes.b8
> >  	m32r.b0
> >  	m68k.b8
> >  	xfs.b8
> >  	uml.b1
> >  	net.b6
> >  	frv.b8
> >  	misc.b8
> >  	upf.b5
> >  	volatile.b0
> >  	endian.b8
> >  	net-endian.b3
> 
> OK...  But it looks like these are liable to be removed, renamed or added
> to at the drop of a hat.  I don't know how to keep up with that.

No renaming...  FWIW, the workflow looks that way:

* origin follows mainline; no merges, no commits, only fetching from Linus
* everything else is branched off origin; branches starting at Nth branch
point have .b<N> as suffix.
* all topic branches (everything except bird) _never_ get merges; only
commits, 100% linear history.
* composite branch (bird), OTOH, gets only merges - from origin and from
topic branches.
* whenever a conflict would happen:
	* new bird.b<N> is spawned;
	* all affected branches are respawned (off the same point on mainline)
and cherry-picked from their previous versions.
	* the latest versions of all topic branches are merged into composite
one.

That's it for master repository.  Work repositories are cloned from it;
there I have a transient branch (work) starting at the tip of bird.b<latest>.
All changes go there; to get them back into master I cherry-pick from work
to appropriate topic branches and fetch them into master.  Then (in master)
I merge them into composite branch and push the result to work repos.
At that point I again have all of them in sync and just reset work branch
to tip of composite one.

It works surprisingly well; nice properties:
	* latest versions of all topic branches merge clean and have linear
history.  IOW, git-format-patch on any of them gives a set of patches that
will apply to the tip of mainline and won't conflict each other.
	* at all times composite branch is equal to merge of topic ones and
latest mainline.
	* all build boxen are kept in sync easily
	* I never have to trust build boxen with anything about master or each
other.
	* Adding new build boxen is trivial; so's redistributing work between
those.
	* Branches in master are never renamed, removed or reset.

The last one is a big win compared to davem's "rebase everything all the
time" and this setup does, AFAICS, behave no worse wrt giving clean
patchset.

As for the "what to pick" - I've just put that into
ftp.kernel.org/pub/linux/kernel/people/viro/bird-branches (and will put
composite patch there) and I can send mail whenever that changes...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux