One Big Repo
mogulguy at yahoo.com
Mon Mar 2 20:16:25 CET 2009
--- On Mon, 3/2/09, tchomby <tchomby at googlemail.com> wrote:
> I think you have the right balance. One single repo for
> everything might be taking it too far, a small, finite
> number of repos that doesn't change very often at all
> seems the right balance.
> My mistake was that I did begin creating new repositories
> whenever I started work on anything that could be called a new
> 'project', and then things started to become a problem.
That can get out of hand I am sure, but as you hinted at above, it does not imply that multiple repos are a waste.
I like the idea of splitting repos up by types of things that I like to manage. If you only are managing one thing, say office documents, then one repo seems appropriate. But, if you manange your music, your videos, your mail, your source code, your photos, your office documents and your system software, it would seem very bad to make it one repo. As mentioned by others: you may have to manage different user groups per repo. You may have different backup policies per repo. You may want to destroy the history to certain projects eventually. You may want certain things hosted by repos on different machines depending upon connectivity. All of these things might be handled (depending on your VCS) easier with multiple repos.
Some people may scoff at the idea of version controlling photos, music, videos. I believe everything should be version controlled and backups should only be for your repos! The reason most people scoff at version controlling certain things are probably exactly because of the limits imposed by having one repo. The minute you say to yourself, I will not version control this (project A), because: it might take up too much space in my repo, it is only temporary, it might have sensitive info in it... whatever the excuse it is that prevents you from version controlling something, it is a bad excuse!!! As soon as you make it easy to make multiple repos, repos on a whim, you will find fewer excuses to not put things under version control.
I even make a repo called volatile, for stuff that I really don't care about the history to. If it gets too big, I can easily trim, or simply delete the repo and create a new one, without being concerned with what I will loose. But it gives me piece of mind to backup up my "volatile" stuff into it. Disk space is cheaper and cheaper, your time thinking/worrying about things more and more expensive. At least make use of a new repo anytime you may not version control something simply because you don't want it in the repo with other stuff.
More information about the vcs-home