On Thu, 24 Jul 2008, Nguyen Thai Ngoc Duy wrote: > On 7/24/08, Jakub Narebski <jnareb@xxxxxxxxx> wrote: > > > > Second, I think you can simply special case .git* files (.gitignore, > > .gitattributes, .gitmodules), and always check them out for all > > intermediate directories (unless configured otherwise, of course). > > So for example if you have the following directory structure: > > > > A/.gitignore > > A/a > > A/B1/.gitignore > > A/B1/b > > A/B2/.gitignore > > A/B2/c > > > > and you are checking out only subdirectory 'B1' (and all files in it; > > if subdirectories are checked out recursively it depends on > > configuration), and if for example there is .gitignore in every > > directory, then checked out tree would look like this: > > > > A/.gitignore > > A/B1/.gitignore > > A/B1/b > > > > The ability to do this is one of advantages of 'sparse' checkout over > > 'subtree' checkout. > > Or teach git to use index version of those files. Or collect all those > files, combine them and put the result to .git/info/exclude (and > similar places). Anyway well organized repos won't have this problem. > > Checking some files out as read-only (like this case) may be > interesting. Though I do not how much complicated it can be. I think teaching git to use index version of .git* files (.gitignore, .gitattributes, .gitmodules) would be much more work than adding default rule that .git* files in leading directories are by default checked out, just like leading directories are checked out. This would limit modifying git code, I think, and chances for errors. Having "leading" directories and files read-only would be a good idea, I think. I don't understand the sentence "well organized repos won't have this problem". I think well organized repos _would_ have this problem, because of maintained and distributed top-level .gitignore and .gitattributes. P.S. I hope that 'sparse checkout' feature would be ready for 1.7.0 -- Jakub Narebski Poland -- 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