Subversion also known as SVN is a version control system. Normally users 'checkout' data from a central repository to a local 'working copy'. However it can be setup to allow version control for files /etc .


sudo svnadmin create /svn
sudo chmod -R go-rwx /svn/
sudo svn mkdir file:///svn/etc -m"creating empty dir for svn"
cd /etc
sudo svn checkout file:///svn/etc .
sudo rm -R .svn/
sudo svn checkout file:///svn/etc .
sudo svn add *
sudo svn commit -m"initial commit of /etc"

This creates an SVN repository /svn/etc with the working copy being /etc itself. Edit files as would be done normally and 'commit' them to the repository to allow them to be version-controlled:

sudo svn commit file

To revert a file back to a previous revision for instance:

sudo svn update -r 2 hosts

See Also