git clone of linux kernel provides only compressed pack files
Hi All, I cloned 3.2 kernel from git repository, but I am not seeing any source files. The .git directory contains .git/objects/pack/*.pack file which is huge and it seems all source code with commit revision is stored there. When I do "git unpack-objects -r < xyz.pack", it completes 100% but still no source files show up. The only thing it generates is some more entries in .git/objects/ directory. The same problem also occurs when I try to clone android repository. Pls help, I am sure I am missing some obvious step here. [root@pe1800xs src]# git clone --recursive -v http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git Cloning into linux-stable... remote: Counting objects: 2446667, done. remote: Compressing objects: 100% (391011/391011), done. Receiving objects: 18% (447106/2446667), 259.18 MiB | 43 KiB/s [root@pe1800xs .git]# du -h 4.0K ./objects/info 284M ./objects/pack 285M ./objects 8.0K ./info 4.0K ./refs/tags 4.0K ./refs/heads 12K ./refs 48K ./hooks 4.0K ./branches 285M . [e518816@pe1800xs common]$ git unpack-objects -r < .git/objects/pack/pack-d2d041c2bd4a39fdfdf37c896f64a3c1b53d3d2b.pack Unpacking objects: 100% (2074089/2074089), done.
From the man page of git-unpack-objects: "Objects that already exist in the repository will not be unpacked from the pack-file. Therefore, nothing will be unpacked if you use this command on a pack-file that exists within the target repository." I guess this is the problem I am facing. How do I extract the linux souce files (HEAD branch) from pack file?
-- Thanks & Regards, Manavendra Nath Manav
2012/1/20 Manavendra Nath Manav <mnm.kernel@gmail.com>:
Hi All,
I cloned 3.2 kernel from git repository, but I am not seeing any source files. The .git directory contains .git/objects/pack/*.pack file which is huge and it seems all source code with commit revision is stored there. When I do "git unpack-objects -r < xyz.pack", it completes 100% but still no source files show up. The only thing it generates is some more entries in .git/objects/ directory. The same problem also occurs when I try to clone android repository. Pls help, I am sure I am missing some obvious step here.
[root@pe1800xs src]# git clone --recursive -v http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git Cloning into linux-stable... remote: Counting objects: 2446667, done. remote: Compressing objects: 100% (391011/391011), done. Receiving objects: 18% (447106/2446667), 259.18 MiB | 43 KiB/s
[root@pe1800xs .git]# du -h 4.0K ./objects/info 284M ./objects/pack 285M ./objects 8.0K ./info 4.0K ./refs/tags 4.0K ./refs/heads 12K ./refs 48K ./hooks 4.0K ./branches 285M .
[e518816@pe1800xs common]$ git unpack-objects -r < .git/objects/pack/pack-d2d041c2bd4a39fdfdf37c896f64a3c1b53d3d2b.pack Unpacking objects: 100% (2074089/2074089), done.
From the man page of git-unpack-objects: "Objects that already exist in the repository will not be unpacked from the pack-file. Therefore, nothing will be unpacked if you use this command on a pack-file that exists within the target repository." I guess this is the problem I am facing. How do I extract the linux souce files (HEAD branch) from pack file?
-- Thanks & Regards, Manavendra Nath Manav
Hi You just need to do git checkout master after the git clone. This gives you the version the master branch in the stable repo points to at the time of the cloning. To update your local master branch later, just do git pull. git unpack-objects is usually not directly needed by users. It's called by git internally though. Mirco
On Fri, Jan 20, 2012 at 6:55 PM, Mirco Tischler <mt-ml@gmx.de> wrote:
**snip**
> You just need to do git checkout master after the git clone. This
> gives you the version the master branch in the stable repo points to
> at the time of the cloning.
> To update your local master branch later, just do git pull.
>
> git unpack-objects is usually not directly needed by users. It's
> called by git internally though.
>
> Mirco
Thanks Mirco, after doing git checkout and git pull on cloned Linux
git repo, I can see all the Linux source files. The problem got
resolved for Linux tree but for android repository, I am still facing
issues.
After cd to android git repo dir:
[e518816@pe1800xs common]$ git checkout master
Already on 'master'
[e518816@pe1800xs common]$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "master"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
[e518816@pe1800xs common]$ git pull
https://android.googlesource.com/kernel/common.git
>From https://android.googlesource.com/kernel/common
* branch HEAD -> FETCH_HEAD
Already up-to-date.
But, still the source files were not displayed. Also, when I did git
clone of Linux repo, I have given --recursive flag to git clone
command but when i cloned android repo I have omitted this flag. Does
this has any impact. Sorry, for the dump question, but after googling
whole day without any luck, I need a quick fix.
--
Manavendra Nath Manav
On Sat, Jan 21, 2012 at 12:06:08AM +0530, Manavendra Nath Manav wrote:
On Fri, Jan 20, 2012 at 6:55 PM, Mirco Tischler <mt-ml@gmx.de> wrote:
**snip**
You just need to do git checkout master after the git clone. This gives you the version the master branch in the stable repo points to at the time of the cloning. To update your local master branch later, just do git pull.
git unpack-objects is usually not directly needed by users. It's called by git internally though.
Mirco
Thanks Mirco, after doing git checkout and git pull on cloned Linux git repo, I can see all the Linux source files. The problem got resolved for Linux tree but for android repository, I am still facing issues.
That's different, you need to check out the specific android kernel repo you want to use, by the branch name. The android kernel tree is "wierd" that way, try doing this: git checkout android-3.0 and you should be fine. Even better yet, do this: git checkout -t -b android-3.0 origin/android-3.0 which creates a "tracking branch" for this branch of their kernel tree, which will let you handle things when they update it in the future to newer releases. Hope this helps, greg k-h
On Sat, Jan 21, 2012 at 12:43 AM, Greg KH <greg@kroah.com> wrote:
On Sat, Jan 21, 2012 at 12:06:08AM +0530, Manavendra Nath Manav wrote:
On Fri, Jan 20, 2012 at 6:55 PM, Mirco Tischler <mt-ml@gmx.de> wrote:
**snip**
You just need to do git checkout master after the git clone. This gives you the version the master branch in the stable repo points to at the time of the cloning. To update your local master branch later, just do git pull.
git unpack-objects is usually not directly needed by users. It's called by git internally though.
Mirco
Thanks Mirco, after doing git checkout and git pull on cloned Linux git repo, I can see all the Linux source files. The problem got resolved for Linux tree but for android repository, I am still facing issues.
That's different, you need to check out the specific android kernel repo you want to use, by the branch name.
The android kernel tree is "wierd" that way, try doing this: git checkout android-3.0 and you should be fine.
Even better yet, do this: git checkout -t -b android-3.0 origin/android-3.0
which creates a "tracking branch" for this branch of their kernel tree, which will let you handle things when they update it in the future to newer releases.
Hope this helps,
greg k-h
Thanks Greg, the checkout with android-3.0 worked. I feel working with git is a bit too geeky for the non-initiated. I can upvote this because i didn't used the "repo python script" provided by Google to download android source but git alone. Thank you all for the support. [e518816@pe1800xs common]$ git checkout android-3.0 Checking out files: 100% (37131/37131), done. Branch android-3.0 set up to track remote branch android-3.0 from origin. Switched to a new branch 'android-3.0' [e518816@pe1800xs common]$ ls arch CREDITS drivers include Kbuild lib mm REPORTING-BUGS security usr block crypto firmware init Kconfig MAINTAINERS net samples sound virt COPYING Documentation fs ipc kernel Makefile README scripts tools -- Cheers, Manavendra Nath Manav
On Fri, Jan 20, 2012 at 06:38:47PM +0530, Manavendra Nath Manav wrote:
[root@pe1800xs src]# git clone --recursive -v http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git Cloning into linux-stable...
Have you looked into the linux-stable directory? HTH, Jonathan Neuschäfer
participants (4)
-
Greg KH -
Jonathan Neuschäfer -
Manavendra Nath Manav -
Mirco Tischler