As for Git, it may have historical significance that Linus Torvalds answered this question from a conceptual perspective back in 2007 in a conversation that was recorded and made available on the Internet.
The question is whether it is possible to check only some files from the Git repository.
Tech Talk: Linus Torvalds on Git t = 43: 10
Summing up, he said that one of Git's design decisions that distinguishes it from other version control systems (he quotes BitKeeper and SVN) is that Git manages content, not files. The consequences are that, for example, diff of a subset of files in two versions is computed by first taking the whole diff and then trimming it only to the files that were requested. Another thing is that you need to check the whole story; in all or nothing. For this reason, he suggests dividing loosely coupled components between several repositories and mentioning the ongoing attempt to implement a user interface for managing the repository, which is structured as a superproject with smaller repositories.
As far as I know, this fundamental design decision is still apples today. The super-design thing has probably become what submodules are now.
user7610 Jan 04 '14 at 12:58
source share