[git-users] GIT cloning(or pull/push) doesn't work properly if you have a sub-folder with its own GIT repo.

2011-04-22 Thread siddii
I don't want to categorize this as bug until I hear expert panel's
opinion. Spare me if its a known issue or if I am doing something
silly :) I did enough research online and couldn't find a good answer.

Here it goes..

Let's say if I have a folder called ParentGITRepo which is a local
GIT repo. I have sub folders called Child1Repo and Child2 with
some files on it. For some reason, whether accidentally or
deliberately, I make Child1Repo a GIT repo on its own. GIT
recognizes ParentGITRepo  Child1Repo as separate GIT repositories.
But, if I clone ParentGITRepo into somewhere else, I am missing
everything from Child1Repo. The worse thing is, even if I cleanup
Child1Repo by removing it's .git folder, the parent GIT repo is
ignoring any activity I do in that folder.

I think, the right way to do this setup is probably using git sub
modules or something. But given this scenario, what is the expected
behaviour? Am i missing? It would really make more sense if you can go
thro the following steps (test cases) outlined below.


# Setting up ParentGITRepo  Child1Repo and Child2
$ cd ~
$ mkdir ParentGITRepo
$ cd ParentGITRepo/
$ git init .
$ mkdir Child1Repo
$ mkdir Child2
$ cd Child1Repo/
$ git init .
$ echo Child1RepoFile  Child1RepoFile.txt
$ git add .
$ git commit -a -m Adding Child1Repo content
[master (root-commit) 01ccc52] Adding Child1Repo content
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 Child1RepoFile.txt

$ cd ../Child2/
$ echo Child2 file content  Child2File.txt
$ cd ..
$ echo Parentfile  ParentFile.txt
$ git add .
$ git commit -a -m Adding Parent content
[master (root-commit) b31d0a5] Adding Parent content
 3 files changed, 3 insertions(+), 0 deletions(-)
 create mode 16 Child1Repo
 create mode 100644 Child2/Child2File.txt
 create mode 100644 ParentFile.txt

---
 # Now verify ParentGITRepo  Child1Repo working independently
$ cd ~/ParentGITRepo/
$ git log
commit b31d0a5aef19c6b119d89718f560905ad0f34aa7
Author: Siddique Hameed siddii+...@gmail.com
Date:   Fri Apr 22 11:25:15 2011 -0500

Adding Parent content

$ cd ~/ParentGITRepo/Child1Repo/
$ git log
commit 01ccc52931f8b40f6d92b29769300a254d8dd411
Author: Siddique Hameed siddii+...@gmail.com
Date:   Fri Apr 22 11:22:00 2011 -0500

Adding Child1Repo content



# Now try cloning ParentGITRepo  verify the contents inside it
$ cd ~
$ git clone ParentGITRepo/ ParentGITRepoClone/
Cloning into ParentGITRepoClone...
done.
$ cd ParentGITRepoClone/
$ ls -a
./  ../  .git/  Child1Repo/  Child2/  ParentFile.txt

$ cd Child1Repo/
$ ls -a
./  ../

$ git log
commit b31d0a5aef19c6b119d89718f560905ad0f34aa7
Author: Siddique Hameed siddii+...@gmail.com
Date:   Fri Apr 22 11:25:15 2011 -0500

Adding Parent content



As you can see there is nothing in Child1Repo after its was cloned. I
also tried the reverse of this. Like, having a child folder as GIT
repo and make a ParentFolder a repo on its own  clone the parent
folder and the cloned folder doesnt contain anything from child repo.

Let me know if you have more questions.

Thanks,

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.



Re: [git-users] GIT cloning(or pull/push) doesn't work properly if you have a sub-folder with its own GIT repo.

2011-04-22 Thread Joe Hassick
If you want a repository within a repository, you will need to use
submodules. Without submodules, what you are explaining will always happen
(missing everything from the child repo after cloning the parent).

Read over these if you need some references/an introduction to using
submodules:
https://git.wiki.kernel.org/index.php/GitSubmoduleTutorial
http://blog.zarate.tv/2010/10/05/working-with-git-submodules

HTH,

Joe

On Fri, Apr 22, 2011 at 12:55 PM, siddii sid...@gmail.com wrote:

 I don't want to categorize this as bug until I hear expert panel's
 opinion. Spare me if its a known issue or if I am doing something
 silly :) I did enough research online and couldn't find a good answer.

 Here it goes..

 Let's say if I have a folder called ParentGITRepo which is a local
 GIT repo. I have sub folders called Child1Repo and Child2 with
 some files on it. For some reason, whether accidentally or
 deliberately, I make Child1Repo a GIT repo on its own. GIT
 recognizes ParentGITRepo  Child1Repo as separate GIT repositories.
 But, if I clone ParentGITRepo into somewhere else, I am missing
 everything from Child1Repo. The worse thing is, even if I cleanup
 Child1Repo by removing it's .git folder, the parent GIT repo is
 ignoring any activity I do in that folder.

 I think, the right way to do this setup is probably using git sub
 modules or something. But given this scenario, what is the expected
 behaviour? Am i missing? It would really make more sense if you can go
 thro the following steps (test cases) outlined below.


 # Setting up ParentGITRepo  Child1Repo and Child2
 $ cd ~
 $ mkdir ParentGITRepo
 $ cd ParentGITRepo/
 $ git init .
 $ mkdir Child1Repo
 $ mkdir Child2
 $ cd Child1Repo/
 $ git init .
 $ echo Child1RepoFile  Child1RepoFile.txt
 $ git add .
 $ git commit -a -m Adding Child1Repo content
 [master (root-commit) 01ccc52] Adding Child1Repo content
  1 files changed, 1 insertions(+), 0 deletions(-)
  create mode 100644 Child1RepoFile.txt

 $ cd ../Child2/
 $ echo Child2 file content  Child2File.txt
 $ cd ..
 $ echo Parentfile  ParentFile.txt
 $ git add .
 $ git commit -a -m Adding Parent content
 [master (root-commit) b31d0a5] Adding Parent content
  3 files changed, 3 insertions(+), 0 deletions(-)
  create mode 16 Child1Repo
  create mode 100644 Child2/Child2File.txt
  create mode 100644 ParentFile.txt

 ---
  # Now verify ParentGITRepo  Child1Repo working independently
 $ cd ~/ParentGITRepo/
 $ git log
 commit b31d0a5aef19c6b119d89718f560905ad0f34aa7
 Author: Siddique Hameed siddii+...@gmail.com
 Date:   Fri Apr 22 11:25:15 2011 -0500

Adding Parent content

 $ cd ~/ParentGITRepo/Child1Repo/
 $ git log
 commit 01ccc52931f8b40f6d92b29769300a254d8dd411
 Author: Siddique Hameed siddii+...@gmail.com
 Date:   Fri Apr 22 11:22:00 2011 -0500

Adding Child1Repo content

 

 # Now try cloning ParentGITRepo  verify the contents inside it
 $ cd ~
 $ git clone ParentGITRepo/ ParentGITRepoClone/
 Cloning into ParentGITRepoClone...
 done.
 $ cd ParentGITRepoClone/
 $ ls -a
 ./  ../  .git/  Child1Repo/  Child2/  ParentFile.txt

 $ cd Child1Repo/
 $ ls -a
 ./  ../

 $ git log
 commit b31d0a5aef19c6b119d89718f560905ad0f34aa7
 Author: Siddique Hameed siddii+...@gmail.com
 Date:   Fri Apr 22 11:25:15 2011 -0500

Adding Parent content

 

 As you can see there is nothing in Child1Repo after its was cloned. I
 also tried the reverse of this. Like, having a child folder as GIT
 repo and make a ParentFolder a repo on its own  clone the parent
 folder and the cloned folder doesnt contain anything from child repo.

 Let me know if you have more questions.

 Thanks,

 --
 You received this message because you are subscribed to the Google Groups
 Git for human beings group.
 To post to this group, send email to git-users@googlegroups.com.
 To unsubscribe from this group, send email to
 git-users+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/git-users?hl=en.




-- 
Joe Hassick

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.