Using Git or Mercurial, if the working directory is 1GB, then the local repository will be another 1GB (at least), residing normally in the same hard drive. And then when pushed to a central repository, there will be another 1GB.
Can Git or Mercurial be set to use only a working directory and then a central repository, without having 3 copies of this 1GB data?
(actually, when the central repository also update, then there are 4 copies of the same data… can it be reduced? In the SVN scenario, when there are 5 users, then there will be 6GB of data total. With Distributed Version Control, then there will be 12GB of data?)
Update: it is strange — I just tried to look at a project I cloned using Mercurial: the working directory not including the .hg folder is 126MB, but the .hg folder is 239MB. And it is a new clone… is it because my new repository actually contain all the history / revisions, so that’s why it is double the size of the working directory?
Git or Mercurial are distributed version control systems. This means that every checkout contains the whole history of the project. Bypassing this would defeat the whole purpose of using a DVCS (every operation can be done offline).
But in general Mercurial or Git have a very high compression ratio, often better than svn even if they store the whole history.