Thanks Nick, some good pointers.
But ....
I've started by making the entire directory read-only and then added
read-write permission for these spec files. i.e.
[Make everything read-only for all users]
match = .*
access = read-only
[*.spec file only update]
match = ^trunk/.+\.spec$
users = brentwebster
access = read-write
So when I commit the spec file, it now complains I don't have access at
the directory level. i.e.
[unix]$ svn commit -m "just testing"
Enter passphrase for key '/home/brentwebster/.ssh/id_rsa':
Sending test/cc.spec
Transmitting file data .svn: Commit failed (details follow):
svn: 'pre-commit' hook failed with error output:
/server/svn/repos/tools/hook-scripts/commit-access-control.pl: user
`brentwebster' does not have permission to commit to this path:
trunk/test
Basically I want the remaining source in the 'test' directory to be
modified by the 'design' team while the packaging prime can't. I then
want the packaging prime to manage/modify any spec file in any
subdirectory so this write permission at the directory level can be a
real nuisance.
Any ideas? In the meantime, I'll try svnperms.py.
Brent
>>-----Original Message-----
>>From: Nick Thompson [mailto:nickthompson@agere.com]
>>Sent: May 16, 2006 5:06 AM
>>To: users@subversion.tigris.org
>>Subject: Re: Q: commit-access-control.cfg file
>>
>>On Monday 15 May 2006 21:14, Brent Webster wrote:
>>> Using commit-access-control.pl with
>>commit-access-control.cfg, I want
>>> to filter read-write access on a particular file extension.
>>> (i.e. *.spec). I want my packaging prime to be the only person to
>>> update the rpm spec files. Of course, these file are located at
>>> various directory levels.
>>>
>>> Tried
>>>
>>> [*.dd file only update]
>>> match = *.dd
>>> users = brentwebster
>>> access = read-write
>>>
>>> but it generated the error:
>>> svn: 'pre-commit' hook failed with error output:
>>> /server/svn/repos/tools/hook-scripts/commit-access-control.pl:
>>> config file
>>> `/server/svn/repos/playzone/hooks/commit-access-control.cfg'
>>> section `*.dd file only update' `match' regex `*.dd' does not
>>> compile: Quantifier follows nothing in regex; marked by <-- HERE in
>>> m/* <-- HERE .dd/ at
>>> /server/svn/repos/tools/hook-scripts/commit-access-control.pl line
>>> 160.
>>>
>>> I tried various other regex but they failed so what am I missing?
>>> escape characters, good documentation, what?
>>
>>I'm not a commit-access-control.pl user, let alone an expert,
>>but for regular expressions in general (as opposed to command
>>line globbing) an '*' on its own doesn't mean anything. Your
>>match in regexp speak should be something like:
>>
>> .*\.dd
>>
>>The first '.' means any character. The '*' modifies this to
>>mean any number of any character (possible even zero). Then
>>the second '.' is escaped with a '\'. Finally the dd extension.
>>
>>Possible '.+\.dd' might be better + = one or more.
>>
>>
>>--
>>> Nick Thompson
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
>>For additional commands, e-mail: users-help@subversion.tigris.org
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue May 16 15:36:42 2006