;-) That's what I did as you can see in my explanation above ;-) The 
problem still seems to be that it only works locally on the same linux 
machine. When I try to clone from any remote machine (not matter which OS) 
I end up getting the huge .git folder. 

So the question actually is why does

git clone --depth 1 --no-hardlinks *file:///*home/me/gitTests/subtreeRepo 
-b subtrees/xyz *xyz *

give me a small clone (*but only locally), *while cloning from remote I get 
a big one. 

And as mentioned earlier as well, when cloning the small *xyz *from remote 
then I end up with what I wanna have; a small xyz project on a remote 
machine. 

Why can I not directly clone xyz remotely and get the same result as with 
the local clone?

Am Donnerstag, 30. August 2012 09:00:04 UTC+2 schrieb Philip Oakley:
>
>  Isn't a shallow clone a good use case for this? You only need the latest 
> commit of each project you want to build and then it either works or it 
> doesn't, and the clone is then deleted. 
>  
> So is 'git clone --depth <depth>' what you need? 
> Use  <depth> := 1
>   
> Just a thought
>  
> Philip
>  
> -
> ---- Original Message ----- 
>
> *From:* Haasip Satang <javascript:> 
> *To:* git-...@googlegroups.com <javascript:> 
> *Sent:* Thursday, August 30, 2012 1:21 AM
> *Subject:* [git-users] Size of cloned git subtrees - only history / files 
> for subtree needed
>
> Hi all,  
>
> in short the question of the lenghty explanation below will be: How can I 
> create a clone of a subtree that only contains the data needed for that 
> subtree in the .git folder.  
>
> In detail here is what I have tried already and what my setup looks like: 
> We are having a big repository containing multiple projects (political 
> reasons, cannot avoid having that... at least for now). While this works 
> fine for all the developers (they just clone the big repo and get all the 
> projects they need), we are facing problems with our continuous build 
> system (Jenkins). 
>
> Here we would like to have a job for each single project; of course 
> WITHOUT having to clone the whole big repo for every job, as this would 
> lead to a significant overhead on disk. 
>
> After searching around for some time I basically came across four 
> potential solutions: 
>
> 1. Sparse Checkout
> 2. Submodules
> 3. Individual Repos with a manager script like repo, mr, git-status, and 
> all the others that exist to tackle that problem
> 4. Subtrees
>
> The problem with 1 is, you still get to clone the whole repo (including 
> all history), only to then checkout a part of it --> still disk overhead. 
> As for submodules, I personally don't really like them and don't think the 
> should be used in this case and they are kinda difficult to handle and can 
> be fragile anyway. 
> The additional script based solution seems kinda hacky as well, so I 
> didn't really follow up on that too much. 
>
> So my favorite solution so far is actually using git subtree, which is 
> more or less easy (especially since the subtree branches are only used for 
> the CI builds / in a read only way, nothing needs to be pushed back to the 
> bigrepo). 
>
> The problem is, however, when I clone the bare and then create the subtree 
> branches in the cloned working copy and then try to clone these subtree 
> branches only, I still seem to get the whole big history, including all the 
> stuff outside the tree. 
>
> Is there any way to avoid that and create a synthetic project history 
> containing only data relevant for the subtree? 
>
> What I did to kinda get there is more a hacky way. I create the subtree 
> branch using: 
>
>  git subtree split --prefix=xyz --annotate="[xy] " --rejoin -b 
> subtrees/xyz
>
> Then I clone that with: 
>
> git clone --depth 1 --no-hardlinks file:///home/me/gitTests/subtreeRepo -b 
> subtrees/xyz xyz
>
> So creating a shallow clone (depth 1) seems to be the only way and that 
> also only works on the local linux machine. If I clone the same subtreeRepo 
> branch on a remote machine I actually get the whole big pack / history with 
> it (which I of course don't want). 
>
> So what I did is I cloned the subtree branch locally and then cloned that 
> repo from my remote Jenkins machine. While this seems to work (I haven't 
> looked in if I'm getting the necessary change sets to send out the emails 
> yet) it seems both, unnecessary complicated and very hacky. 
>
> To sum up, let me conclude with the question from the beginning: How can I 
> create a clone of a subtree that only contains the data needed for that 
> subtree in the .git folder. 
>
> Looking forward to your comments and ideas :)
>
> Thanks, Haasip
>
>
>
>
>
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Git for human beings" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/git-users/-/n5ZPYpDf4EIJ.
> To post to this group, send email to git-...@googlegroups.com<javascript:>
> .
> To unsubscribe from this group, send email to 
> git-users+...@googlegroups.com <javascript:>.
> For more options, visit this group at 
> http://groups.google.com/group/git-users?hl=en.
>
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 2012.0.2197 / Virus Database: 2437/5233 - Release Date: 08/29/12
>
>

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/git-users/-/wV6XlumAW6MJ.
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.

Reply via email to