Re: [RFC PATCH 00/12] Sparse checkout
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:45:01
On Thu, 24 Jul 2008, Nguyen Thai Ngoc Duy wrote:
On 7/24/08, Jakub Narebski [off-list ref] wrote:quoted
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