On Mon, Aug 17, 2009 at 1:17 AM, Nguyen Thai Ngoc Duy<pclouds@xxxxxxxxx> wrote: > On Mon, Aug 17, 2009 at 1:09 PM, <skillzero@xxxxxxxxx> wrote: >> 1. Have people decided whether it should be on by default if you have >> a .git/info/sparse file? I'd definitely like it to be on by default. >> When I first tried it, I didn't realize I had to use --sparse to git >> checkout to get it to use the sparse rules. The same goes for a merge >> I did that happened to have a file in the excluded area (it included >> it because I didn't use --sparse to git merge). > > I tend to make it enabled by default too. I have made it stricter to > trigger reading sparse in unpack_trees() -- only do it when > unpack_opts.update is TRUE. This should make it safer to be enabled by > default. Other than it being new and not-widely-tested code, is there any additional risk to having it enabled by default if there are no sparse patterns defined? It would be nice if .git/info/sparse is there by default (like .git/info/exclude) with some commented out instructions (also like .git/info/exclude). >> 2. Is it not hooked up to git reset yet? I did a git checkout --sparse >> and things look liked I expected then I did a git reset --hard >> origin/master and it started checking out all the stuff previously >> excluded via .git/info/sparse. I tried --sparse, but it didn't know >> about that option. > > Because sparse was disabled by default, and "git reset" did not enable > it. It'd be interesting to see what "git reset --hard" should do in > this case: will it apply .git/info/sparse or not, which brings us back > to the "default or not" question, hmm.. It seems like if it's going to be off by default (which it hopefully won't be) then git reset would need to support --sparse since otherwise, you'd never be able to git reset without undoing your sparse options (unless you did a subsequent git checkout --sparse). I also noticed that after I did the git reset, the sparse stuff seemed to get into a weird state such that sparse patterns weren't working reliably. For example, I couldn't get it to exclude a directory. >> 3. One thing that was confusing is that I needed a trailing slash on >> directories in .git/info/sparse to get them excluded. This seems >> different than .gitignore, which works for me without the trailing >> slash. > > Hmm.. probably because Git feeds directories to .gitignore handling > functions. There is not much I can do, index does not have > directories. I don't know if it's worth generating "directories" from > index. Maybe just add a note in the documentation? If there's a default .git/info/sparse file then it might be good place to put a note as well. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html