I think just about *everybody* does their own development on their own
machine. I know I do, and I'm pretty certain that everybody else does too.
Then we just upload the end result to master.kernel.org into a bare
repository that is only used for exporting to others, never for anything
else.
You can do that, and actually work on master.kernel.org, but do you really
want to?
It's much easier to work at home (or office, whatever - on your own
workstation), unless you have some really weak computer.
Then, the easiest way to publish the result is to just create a bare
repository on master.kernel.org, and push to it. And just make sure that
you pre-populate that bare repo with my tree, so that when you push from
your home machine, it only pushes the (smallish) actual changes!
So the workflow I'd suggest is:
- do all the work on your own hardware
- create the initial (bare) kernel.org tree with
cd /pub/scm/linux/kernel/git/juhl
git clone --bare -l -s ../torvalds/linux-2.6 trivial-2.6
- then just push to that tree from your own machine
and voila, you're all done.
If you do the "clone locally, then push from the remote", the "push" stage
is when you decide which branches you'll want to push.
The easiest thing to do is to just use "--all", which will push all the
branches to the remote (you may want to use "--force" if this ends up
being a non-fast-forward, which can happen - for example - just because
your "clone" might have cloned a later version of my tree than the one you
based your own 'master' branch off).
But you can push individual branches too, see 'man git-push'.
If you really *want* to work on master.kernel.org, you can do so, and you
can do the final clone with "git clone --mirror --bare" and use that as a
way to clone all branches as a mirror of your work-tree, but it really is
a fairly unusual way to work.
Linus
--