Re: kernel.org git tree corrupt?

From: Linus Torvalds
Date: Mon Mar 03 2008 - 11:22:22 EST




On Sun, 2 Mar 2008, Steve French wrote:
>
> > - look at your "origin" branch, and make sure it's a *remote* branch, not
> > the old-style local one. Ie it should *not* show up when you do a
> > plain
> >
> > git branch
> now only shows "* master"
>
> > but it *should* show up (as both "origin/HEAD" and "origin/master")
> > when you do
> >
> > git branch -a
> Now "git branch -a" shows
> * master
> origin/master
>
> It is missing "origin/HEAD"

Ahh, yeah, my bad. The origin/HEAD thing will be created if you use either
clone or "git remote add -m master" to create the remote. But when I asked
you to do it by just editing the config file, you now have to create that
HEAD pointer manually too.

You can do

git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master

to create the thing (it just creates a symbolic ref from the origin/HEAD
remote ref to the origin/master one, so now git will know that when you
talk about 'origin', it is supposed to just use the master branch of
that remote).

> > - now do "git log origin" an it should show something recent
> git log origin and git log origin/master both return
> "ambiguous argument 'origin': unknown revision"

Well, origin/master should have worked, but the fact that plain "origin"
didn't work is due to exactly the lack of HEAD file for that remote branch
(for your kernel tree, there's only one remote branch, so it may be
"obvious" that origin must be talking about the master branch, but if
there are multiple branches at the origin it's not obvious *which* branch
should be considered the default one, which is why we use HEAD)

> I must be misunderstanding the syntax/manpage of git-log but "git diff
> -m -r origin/master"
> now works fine and displays exactly what I expect so things have improved.

Well, if "origin/master" works in that situation, then "origin/master"
should have worked in "git log" too, so maybe you mistyped?

Anyway, with the HEAD link added for the remote 'origin', you should be
able to use plain 'origin' like you're used to.

Linus
--
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/