threads / discuss / 43516

Re: v2.6.11 tag in kernel tree

Subject: Re: v2.6.11 tag in kernel tree

## tl;dr

4 messages between Nov 30, 2006 and Nov 30, 2006.

replies: 3people: 3as markdown or json

Jon Smirl· Nov 30, 2006, 04:02 UTC · lore

v2.6.11 tag in kernel tree

Using this tree git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6

These two tags appear to be pointing to a tree instead of a commit. v2.6.11 v2.6.11-tree

I'm trying to check out v2.6.11 so that I can figure out the changes a vendor made to it.

jonsmirl@jonsmirl:/extra/linux$ git checkout -b microcross v2.6.11 Cannot switch branch to a non-commit.

I can checkout the other tags without problem.
What's the secret to checking out 2.6.11?
-- 
Jon Smirl
Junio C Hamano· Nov 30, 2006, 04:22 UTC · re: Jon Smirl · lore
"Jon Smirl" <jonsmirl@gmail.com> writes:
Show 5 quoted lines
> I'm trying to check out v2.6.11 so that I can figure out the changes a
> vendor made to it.
>
> jonsmirl@jonsmirl:/extra/linux$ git checkout -b microcross v2.6.11
> Cannot switch branch to a non-commit.

Sorry, you cannot check it out directly, and there is no easy way to start a new branch from a bare tree.

I would create a temporary branch from any commit and reset the working tree with it.

	git checkout -b temp master
        git read-tree -m -u v2.6.11-tree

One BIG caveat is that this in state, only your index and the working tree can be trusted. The history of temp branch does not have anything to do with v2.6.11 -- a bare tree object does not have any history behind it (or on top of it, for that matter).

A slightly more elaborate way would be
        $ git checkout -b v2.6.11-phoney $(echo 'phoney v2.6.11' |
	        git commit-tree v2.6.11-tree^{tree})

to create a parentless commit that has v2.6.11-tree, and make that your current branch. But again this commit does not have any relationship in history with the development line that leads to v2.6.19 just released.

You could graft it as the parent of v2.6.12-rc2 (the first commit in git era) after doing the above:

	$ parent=$(git-rev-parse v2.6.11-phoney^0)
        $ commit=$(git-rev-parse v2.6.12-rc2^0)
	$ echo $commit $parent >>.git/info/grafts
and pretend as if v2.6.12-rc2 is a child of v2.6.11-phoney.
Linus Torvalds· Nov 30, 2006, 16:04 UTC · re: Jon Smirl · lore
On Wed, 29 Nov 2006, Jon Smirl wrote:
Show 7 quoted lines
>
> Using this tree
> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
> 
> These two tags appear to be pointing to a tree instead of a commit.
> v2.6.11
> v2.6.11-tree

Yes. We don't have that as a commit. The commit history starts with v2.6.12-rc2.

> I'm trying to check out v2.6.11 so that I can figure out the changes a
> vendor made to it.

You can't check it out, since it's not a commit, but since it is a tree, you can:

 - use it as a base for "git diff"
	git diff v2.6.11 <any-commit-goes-here>
 - or if you want to use it as a base for development, create a new commit 
   and branch from it:
	git-commit-tree v2.6.11 <<EOF
	This is an initial commit starting at the state of Linux-v2.6.11
	EOF
   and then you can take the resulting SHA1 (that it wrote out to stdout), 
   and do
	git checkout -b my-new-branch <sha1thatyoujustgot>

However, whatever you do, it won't be connected to the rest of the git history.

Another possibility may be to get the historical Linux tree (which _does_ have a real v2.6.11, and that you _can_ graft together with the current tree, and thus get full history), and then use that grafted whole-history tree for whatever you want to do. That allows you to do things like rebasing the end result (if you started a new branch based on 2.6.11) etc, since it's now all connected.

Jon Smirl· Nov 30, 2006, 19:11 UTC · re: Linus Torvalds · lore

Thanks for the replies, I got it working. I'm trying to decipher the changes a vendor made to 2.6.11 when they ported it to an ARM device and peripherals.

It is the usual situation of releasing a GPL tarball without any documentation as to what they changed.

-- 
Jon Smirl

← back to recent threads