Subject: Re: Using GIT to store /etc (Or: How to make GIT store all file permission bits)

From: Jeff Garzik <[email-masked]>
Date: Sun, 10 Dec 2006 09:49:50 -0500

Kyle Moffett wrote:
> I've recently become somewhat interested in the idea of using GIT to 
> store the contents of various folders in /etc.  However after a bit of 
> playing with this, I discovered that GIT doesn't actually preserve all 
> permission bits since that would cause problems with the more 
> traditional software development model.  I'm curious if anyone has done 
> this before; and if so, how they went about handling the permissions and 
> ownership issues.
> 
> I spent a little time looking over how GIT stores and compares 
> permission bits; trying to figure out if it's possible to patch in a new 
> configuration variable or two; say "preserve_all_perms" and 
> "preserve_owner", or maybe even "save_acls".  It looks like standard 
> permission preservation is fairly basic; you would just need to patch a 
> few routines which alter the permissions read in from disk or compare 
> them with ones from the database.  On the other hand, it would appear 
> that preserving ownership or full POSIX ACLs might be a bit of a challenge.

It's a great idea, something I would like to do, and something I've 
suggested before.  You could dig through the mailing list archives, if 
you're motivated.

I actively use git to version, store and distribute an exim mail 
configuration across six servers.  So far my solution has been a 'fix 
perms' script, or using the file perm checking capabilities of cfengine.

But it would be a lot better if git natively cared about ownership and 
permissions (presumably via an option).

	Jeff