lkml.org 
[lkml]   [2008]   [May]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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


\
 
 \ /
  Last update: 2008-05-19 00:29    [from the cache]
©2003-2011 Jasper Spaans