Re: [RFC PATCH 00/12] Sparse checkout
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Jul 24, 2008, 20:01 UTC
- Message-ID
- <200807242201.23991.jnareb@gmail.com>
- In-Reply-To
- <fcaeb9bf0807240358l6584c063u85179196bd6db30a@mail.gmail.com>
On Thu, 24 Jul 2008, Nguyen Thai Ngoc Duy wrote:
Show 32 quoted lines
> On 7/24/08, Jakub Narebski <jnareb@gmail.com> 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