Did I miss something? git-clone doesn't grab all branches????
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
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
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
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