Thread (1 message) 1 message, 1 author, 2016-06-15
  • (off-list ancestor, not in this archive)
  • Re: Sparse checkouts · Nguyen Thai Ngoc Duy <hidden> · 2016-06-15

Re: Sparse checkouts

From: Nguyen Thai Ngoc Duy <hidden>
Date: 2016-06-15 22:50:01

On Mon, Nov 8, 2010 at 11:29 PM, Uri Moszkowicz [off-list ref] wrote:
Thanks for the reply. "git checkout" does seem to work. The exact commands
that I used are shown below:
quoted
 git clone -n <dir>
 git config core.sparsecheckout true
 echo "<dir>/" > .git/info/sparse-checkout
 git read-tree -m -u HEAD
It would be nice if sparse checkout mode were more intuitive. A start would
be making it on by default. I don't know why the config bit has to be set.
Because there is overhead in this feature and I guess only a tiny
percent of users needs it. So it's not enabled by default. When I make
the overhead really small, maybe I can convince Junio to enable it by
default.
Second, when it is enabled, then checkout commands could add the given
directories to the sparse checkout list. A checkout command with no sparse
checkout file would result in "*" being added to the file.
Earlier versions of sparse checkout supported that, sparse rules were
much simpler back then. But because you can now set complex rules in
sparse checkout file (keep directory a, but not a/b, but keep a/b/c,
for example), command line support to edit the file automatically may
give unexpected result.

But I think command line support to just clear sparse checkout file
and replace it with "*" is good.
Third, when
directories are removed it would be nice if they were removed from the
sparse checkout file. I don't know if you can trap "rm" or if you need to
add a new command like "git remove".
That can't be done reliably. If you put pattern "a/*" in sparse
checkout file, then remove a/b, git is not smart enough to put "!a/b"
in sparse checkout file.
Third, other commands should try to
bring the tree in sync with the sparse checkout list. read-tree and checkout
should remove directories which aren't in the list, perhaps throwing an
error if there were changes in those directories.
Let me think about this. Not all commands should try to sync, but
perhaps some of them should.

Thank you for your feedback.
-- 
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