git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
JGJeff Garzik <jgarzik@pobox.com>
Date
Jun 4, 2005, 18:16 UTC
Message-ID
<42A1EFE7.2080903@pobox.com>
In-Reply-To
<21d7e99705060403312234aa07@mail.gmail.com>
Dave Airlie wrote:
Show 34 quoted lines
>>>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
Previous: Dave Airlie
Message 7 of 7 in “[doc][git] playing with git, and netdev/libata-dev trees”
  1. Jeff GarzikMay 26, 2005
  2. Frank SorensonMay 26, 2005
  3. James PurserMay 26, 2005
  4. Dave AirlieJun 4, 2005
  5. Jeff GarzikJun 4, 2005
  6. Dave AirlieJun 4, 2005
  7. Jeff GarzikJun 4, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.