Re: Linux 2.6.12-rc3

Pavel Machek
2005-04-24T20:17:38Z

Hi!
> > Greg KH <greg@kroah.com> wrote:
> > > In the patches/ subdir below that one, is a mirror of my quilt patches
> > > directory, series file and all. That way people can still see the
> > > individual patches if they want to.
> > >
> > > Does this help some? It's all still under flux as to how this all
> > > works, try something and go from there :)
> >
> > Yes, it would be nice to have gregkh's patches in -mm as individual patches.
>
> It would? Ok, that's easy to change.
>
> > Of course, whatever gets done, I'd selfishly prefer that most (or even all)
> > subsystem maintainers work the same way and adopt the same work practices.
> >
> > I guess it's too early to think about that, but if one maintainer (hint)
> > were to develop and document a good methodology and toolset, others might
> > quickly follow.
>
> Heh, ok, I can take a hint, I'll work on this this week. I already have
> the "export a series of patches from a git tree that are not in another
> git tree" working, so it shouldn't be tough to get the rest in an
> "automated" manner.

I started to do something like that, but got to dead end (shared
object directories...). Maybe this is usefull to someone, and maybe
not...

Pavel

Kernel hacker's guide to git
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2005 Pavel Machek <pavel@suse.cz>

You can get git at http://pasky.or.cz/~pasky/dev/git/ . Compile it,
and place it somewhere in $PATH. Then you can get kernel by running

mkdir clean-git; cd clean-git
git init rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

... Run git log to get idea of what happened in tree you are
tracking. Do git pull linus to pickup latest changes from Linus. You
can do git diff to see what changes you done in your local tree. git
cancel will kill any such changes.

You can commit changes by doing git commit... If you want to get diff
of your changes against mainline, do

git diff -r origin:

. If you want to get the same diff but separated patch-by-patch, do

git patch origin:

. (Does something unexpected after first merge).

To update your tree against name "foo", do:

git track linus
git pull

or

git merge linus

How to set up your trees so that you can cooperate with linus
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

What I did:

Created clean-git. Initialized straight from Linus (as above). Then I
created my "dirty" working tree:

git fork pavel /data/l/linux-git

and created "nice" tree, good for pulling

git fork good /data/l/linux-good

. I do my work in linux-git. If someone sends me nice patch I should
pass up, I apply it to linux-good with nice message and do

git merge good

in my working tree.

Publishing your trees
~~~~~~~~~~~~~~~~~~~~~

on remote server: (as an optimization...)

cd ~/WWW/git
rsync -zavP rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git .
mv linux-2.6.git good.git

then on localhost:

cd /data/l/linux-good
rsync -zavP -essh --delete .git pavel@atrey.karlin.mff.cuni.cz:~/WWW/git/good.git

[Oops, bad. cogito -created forks use symlinks in a way which is quite "interesting".]

--
Boycott Kodak -- for their patent abuse against Java.