Sparse checkouts

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Sparse checkouts

From: Uri Moszkowicz <hidden>
Date: 2016-06-15 22:49:59

Hi,
I'm working with a repository with a very large number of files and Git is 
appealing because it officially supports sparse checkouts unlike the other 
DVCS tools. However, all of the usage examples that I've come across have 
you checkout the full repository and then prune the undesired files as such:

  git clone <dir>
  git config core.sparsecheckout true
  echo "<dir>/" > .git/info/sparse-checkout
  git read-tree -m -u HEAD

I tried adding "-n" to the clone command but then none of the missing 
directories are checked out by read-tree. I can manually check them out 
and everything seems to work fine but I can also manually check out a bunch 
of other directories and read-tree, reset, etc all seem to ignore the extra 
directory even though they aren't specified in the sparse-checkout file. Is 
this use mode just not well supported by git yet or am I missing something? 
I'm new to Git so I don't expect to be able to figure it out easily and I 
haven't been able to find the answer elsewhere.

Thanks,
Uri

Re: Sparse checkouts

From: Nguyen Thai Ngoc Duy <hidden>
Date: 2016-06-15 22:49:59

On Sun, Nov 7, 2010 at 9:04 AM, Uri Moszkowicz [off-list ref] wrote:
Hi,
I'm working with a repository with a very large number of files and Git is
appealing because it officially supports sparse checkouts unlike the other
DVCS tools. However, all of the usage examples that I've come across have
you checkout the full repository and then prune the undesired files as such:

 git clone <dir>
 git config core.sparsecheckout true
 echo "<dir>/" > .git/info/sparse-checkout
 git read-tree -m -u HEAD
You can replace the last command with "git checkout" (no additional argument)
I tried adding "-n" to the clone command but then none of the missing
directories are checked out by read-tree.
Hmm.. it works fine here. Can you post the exact sequence of commands you used?
I can manually check them out
and everything seems to work fine but I can also manually check out a bunch
of other directories and read-tree, reset, etc all seem to ignore the extra
directory even though they aren't specified in the sparse-checkout file
Sparse checkout mode does not stop you from checking out non-sparse
files. But all those files are not "seen" by git because of sparse
checkout mode. They are ignored most of the time, except when git is
going to overwrite them.
Is this use mode just not well supported by git yet or am I missing something?
Sparse checkout support is pretty basic. Any suggestions are welcome.
-- 
Duy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help