Fringe Kernel Work

I define "fringe" kernel work as that done by someone who is not a core developer, and who only communicates back to the community via patches. You are probably developing the latest and greatest kernel feature, and need to keep up with the official release while you do it, but be easily able to create your patch set at any time.

Clone Upstream

hg clone http://www.kernel.org/hg/linux-2.6/

This tree you will never touch directly; it is a copy of where Linus is at

Clone Working

hg clone linux-2.6 linux-2.6-working

Start doing your work on the linux-2.6-working tree; make commits as necessary, etc.

Update time

It is now several days/weeks later, and you need to update your changes against the latest upstream versions.

Firstly, update the upstream tree

cd linux-2.6
hg pull

There shouldn't be any conflicts or issues, because you have not changed anything locally

Now create a new update tree, cloned from the latest upstream version (just as you did when you started)

hg clone linux-2.6 linux-2.6-update

Pull into the update tree your dev tree

cd linux-2.6-update
hg pull ../linux-2.6-working