git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Packham <judge.packham@gmail.com>
To: maurizio.vitale@polymath-solutions.com
Cc: Maurizio Vitale <mav@leonardo.pit.corp.google.com>, git@vger.kernel.org
Subject: Re: question (possibly) on git subtree/submodules
Date: Fri, 23 Jul 2010 09:56:38 -0700	[thread overview]
Message-ID: <4C49C9C6.3080409@gmail.com> (raw)
In-Reply-To: <xotjlj92i9gr.fsf@leonardo.pit.corp.google.com>

Hi,

On 23/07/10 07:00, Maurizio Vitale wrote:
> 
> I'm new to git and have read the recent thread on subtree support.
> I'm not sure they (or git submodules) offer what I'm looking for.
> Here's the scenario:
>        - I have a large monolithic code base, all in my repository (e.g.
>          I don't need to link in external repositories, which is what I
>          understand submodules offer
>        - I'd like to be able to clone only a small fraction of the
>          repository (say an arbitrary directory or even a single file)
>          in order to make small changes
>        - these directories are not known when the full repository is set
>          up.
>        - commits to the part I've checked out should show in the history
>          of any clone that includes the part, up to the full repository
>        - ideally, I should be able to incrementally clone portions (e.g.
>          I've checked out path/dir_A and realize I need to modify
>          path/dir_B as well).
>          these additional clones should be in whatever branch I switched
>          to after the initial checkouts.
> 
> Assuming the above makes any sense (in general or in git), is there
> anything in git that would help me doing what I'm looking for?
> Thanks,
> 
>         Maurizio 

The short answer is no. Nothing git has currently will let you clone a
subset of files. Shallow clones exist if you want all the code and the
last X changes. The reason for this is git, like other DVCSes, tracks
_changes_ rather than _files_ this is something that took me a while to
get my head around when I was learning git.

The best advice I've seen is to actually take your repository and use
git filter-branch to create several smaller repositories (or depending
on your desire for retention of history just create new repos). You can
then use submodules or subtrees to stitch these back together into a
super project to which you can add the smaller repositories as needed
(note: I have never used subtrees so I'm not 100% sure if what I'm
saying applies to them) .

We use this model with submodules at $dayjob and it works quite well for us.

  reply	other threads:[~2010-07-23 16:56 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-23 14:00 question (possibly) on git subtree/submodules Maurizio Vitale
2010-07-23 16:56 ` Chris Packham [this message]
2010-07-23 17:18   ` Jonathan Nieder
2010-07-23 18:35     ` Chris Packham
2010-07-27 10:56   ` Alex
2010-07-27 12:48     ` Jakub Narebski
2010-07-27 14:24       ` RFC: Sparse checkout improvements (was: Re: question (possibly) on git subtree/submodules) Marc Branchaud
2010-07-27 16:55         ` skillzero
2010-07-28 13:42           ` RFC: Sparse checkout improvements Marc Branchaud

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C49C9C6.3080409@gmail.com \
    --to=judge.packham@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=maurizio.vitale@polymath-solutions.com \
    --cc=mav@leonardo.pit.corp.google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).