Messages in this thread | | | Date | Sun, 18 May 2008 15:26:25 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: [GIT pull] x86 fixes for 2.6.26 |
| |
On Mon, 19 May 2008, Jesper Juhl wrote: > > Ok, thanks a lot. Now, I have one final question for you. > In order to be able to play around with the patches, see if they > apply, fix them up, test for merge conflicts etc etc, I obviously need > a tree with content, not just a bare tree. But I see on > master.kernel.org that all the published trees are bare trees.
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.
> So, I assume I create a tree in my homedir like so; > $ git clone -l -s /pub/scm/linux/kernel/git/torvalds/linux-2.6.git /home/juhl/trivial-work-tree > create all the branches and do all the work in that one,
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.
> But that only seems to make my master branch accessible, not new > branches I create in my work tree. How do I go about doing this > properly?
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
| |