Re: [doc][git] playing with git, and netdev/libata-dev trees

From: Jeff Garzik
Date: Sat Jun 04 2005 - 13:17:21 EST


Dave Airlie wrote:
1. when you want to publish your tree what do you do? just rsync it
onto kernel.org?

Basically. I copy the attached script into each repo, customize the
script for the upload destination.

When I publish the tree, I just cd to the toplevel dir on my local
workstation, and run "./push"



2. When you are taking things from your queue for Linus do you create
another tree and merge your branches into it or what?

Not quite sure what you're asking, but I'll attempt to answer anyway :)


Yes that's what I'm asking, mainly the pulling of multiple trees into
one tree for giving to Linus, for Andrew I'm quite happy to have him
pull multiple HEADs from the one tree assuming I don't have many
interdependencies between trees...

Say I want something like this one tree with

drm-2.6 - HEAD <- linus tree
- drm-via < a via driver
- drm-initmap - drm-savage <- a savage driver that depends on
the drm-initmap tree

How would I construct such a beast, how does it work out from where to
branch, can I branch a branch for something like drm-savage so I can
say send Linus the initmap branch and then have -mm pulling the savage
one...

You used to use BitKeeper, right?

Well, git works just fine for creating and maintaining separate repos, where each repo is its own branch. Dependent branches are handled simply by pulling new changes from the parent (drm-initmap) repo into the child (drm-savage) repo.

If you just have a few branches, such as your example above, rather than the 50+ branches I have, then I would recommend _ignoring_ the advice in my git howto, and instead create a new branch by cloning:

cd /repos
mkdir drm-via
cp -a linux-2.6/.git drm-via
rm -rf drm-via/.git/objects
cp -al linux-2.6/.git/objects drm-via/.git

Once created by the above recipes, or similar, the directory will function as a repo just like with BK. When you wish to update it from upstream, update your local linux-2.6 repo and then

cd /repos/drm-via
git-pull-script /repos/linux-2.6/.git

or to pull new changes from initmap into savage:

cd /repos/drm-initmap
# { check in some changes }
cd /repos/drm-savage
git-pull-script /repos/drm-initmap/.git

Does all that make sense? It's really quite similar to BK, if you ignore the "[jg-specific]" portions of the git howto I wrote.

Jeff


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/