Skip to contentSkip to conversation

Did I miss something? git-clone doesn't grab all branches????

DISCUSSION Timur Tabi 3 participants 4 messages Jun 15, 2016

lore
Share & tools
lore

Timur Tabi

author
#0 lore raw

I used to be able to do this:

git-clone http://ftp.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc.git
cd powerpc
git-checkout for-2.6.22

But that doesn't work any more. Why not? It was working perfectly fine before.

So someone told me I need to do this:

git-clone http://ftp.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc.git
cd powerpc
git-fetch http://www.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc.git for-2.6.22:for-2.6.22 git-checkout for-2.6.22

Ok, fine, but now when I do git-pull, I get this:

[snip]
* refs/remotes/origin/merge: fast forward to branch 'merge' of http://ftp.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
old..new: e0f2e3a..190a440
Warning: No merge candidate found because value of config option
"branch.for-2.6.22.merge" does not match any remote branch fetched.
No changes.

What does the warning mean? And why is it so difficult to clone branches now?

Signature · 2 lines
Timur Tabi
Linux Kernel Developer @ Freescale
#1 lore raw

Timur,

You missed something. :-) You didn't read the Release Notes for 1.5 that I forwarded. As a start, do this:

git branch -a

Jdl

author
#2 lore raw
Quoted 4 lines · Loeliger Jon-LOELIGER

Timur,

You missed something. :-) You didn't read the Release Notes for 1.5 that I forwarded.

I didn't get that email. However, I did read the release notes for 1.5 on the web, and it didn't help. It's as if I'm on a different planet then everyone else who uses git, and so no one understands what I'm trying to do.

I hate branches. I never use them. I create a whole new tree for each commit that I work on. So I like to have a clone of all of the main external repositories on my hard drive.
Then I just clone these local repos into other trees on my hard drive.

In the past, my clone of paulus/powerpc.git contained everything. Every time I did a git-pull, it would grab everything. Then I could do a local clone/checkout if I ever wanted to work on a branch (like for-2.6.22). I didn't have to know the names of the branches when I did git-clone.

Because of the changes to git-clone, this process got a whole lot more complicated. Now I need to issue multiple commands for each branch. Ugh.

Quoted 3 lines

As a start, do this:

git branch -a

I think I figured it out, but I'm not sure it's working:

git-clone http://www.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc.git powerpc.git cd powerpc.git
git-checkout origin/for-2.6.22
git-checkout -b for-2.6.22

When I do this, git-branch -l shows:

* for-2.6.22
master

So I think I'm okay.

Signature · 2 lines
Timur Tabi
Linux Kernel Developer @ Freescale
#3 lore raw
Quoted 5 lines · Timur Tabi

In the past, my clone of paulus/powerpc.git contained everything. Every time I did a git-pull, it would grab everything. Then I could do a local clone/checkout if I ever wanted to work on a branch (like for-2.6.22). I didn't have to know the names of the branches when I did git-clone.

If that is how you use multiple trees, I think you can make that "My central repository which is a mirror of Paulus" a bare repository clone; keep updating it with git-fetch instead as a bare repository does not have an associated working tree.

( setup )

$ git clone --bare git://git.kernel.org/.../ paulus-mirror.git

( periodical mirror update from upstream )

$ cd paulus-mirror.git && git fetch

( forking off your play area )

$ git clone -l -s paulus-mirror.git foobranch.git $ cd foobranch.git
$ git checkout --track -b foobranch origin/foobranch $ hack hack

( after mirror update )
$ cd foobranch.git
$ git pull ;# this pulls from your mirror