Subject: Re: RFD Use git for off-site backups

From: Jan Hudec <[email-masked]>
Date: Sun, 13 May 2007 14:34:36 +0200

On Sun, May 13, 2007 at 11:34:17 +0200, Thomas Glanzmann wrote:
> I am thinking about using git for doing differential backups of a whole
> machines. And I would like to know what is necessary to obtain that. In
> such a scenario the machine to be backed up should have a local index
> file but sends its objects directly to the remote machine via git-via-ssh
> or git protocol. Is it possible to store extra information like extended
> attributes / acls in git? I don't care about named pipes, sockets and
> device files for the moment.

I don't actually think git is a good match for whole-machine backups. It's
strenghts are in distributedness and branching, but you don't need either of
those for large-scale backups (monitoring changes say in /etc is a different
thing -- git is sensible match there -- see http://www.isisetup.ch/).

I can suggest two solutions:

 - Use CVS on the client (machine to back up) and git-cvsserver on the
   server. You will probably be able to find some scripts that do backups to
   CVS. On server you will still have git for digging in history. Git is also
   very space efficient.

   CVS does not cache any data on the client. It only keeps metadata to
   detect which files were modified. Therefore it will have minimal overhead
   in storage, but needs to transfer the modified files in their entirety.

 - Use Subversion. There is summer of code project to create git-svnserver,
   so you might be able to use git on the server-side in future with
   subversion client too. But for backups you should not need any of the
   version control features subversion does not have, so subversion should be
   suitable.

   Subversion stores copy of the previous revision on the client, so all data
   under it's control will take twice as much space on client, but it will
   only transfer deltas over the network.

-- 
						 Jan 'Bulb' Hudec <[email-masked]>