From: Shawn O. Pearce Date: Sun, 14 Sep 2008 21:06:48 GMT Subject: Re: Git at Better SCM Initiative comparison of VCS (long) Message-ID: <20080914210648.GB26608@spearce.org> In-Reply-To: <20080914194802.GH28210@dpotapov.dyndns.org> Dmitry Potapov wrote: > On Sun, Sep 14, 2008 at 07:48:05PM +0200, Jakub Narebski wrote: > > > > [...] if it is possible > > using current hooks infrastructure to restrict changes coming from > > some account in such a way as to allow it only if all changes are > > restricted to specified directory. > > I believe the update hook should be able to do that. You have oldrev and > newrev, so you can run "git diff --name-only oldrev newrev" and see what > files are going to change. And then verify that the user has the write > access to this directories or files. > > I have not tried it yet, and I don't think we have a ready example of > how to do that, but I believe that the example of the update hook that > restricts user access based on the target branch can be used as a > starting point. contrib/hooks/update-paranoid can do both branch and file path level restrictions. I used it at my prior day-job to prevent some accidental changes from folks who didn't usually need to modify certain parts of the repository. -- Shawn.