Putting /etc under source control

Solution 1:

You should look at using etckeeper, instead of trying to reinvent the wheel.

Solution 2:

Could be overkill for a single system (unless you need to 'rebuild' it from time to time) but the usual solution for configuration management is to use some scm like cfEngine, Puppet, bcfg2 , or the like, and then put their data under source control.