Saturday, January 29, 2011

Read-only SVN on Apache2 under Windows

How can I setup write access policies for an SVN repository under Apache2 on Windows Server 2008? Please help. TIA!

Update1:

I have next configuration already:

<Location /svn>
   SVNParentPath "E:\SVN"

   DAV svn
   SVNListParentPath on
   AuthType Basic
   AuthName "Subversion repositories"
   Require valid-user

   AuthUserFile svn-auth.txt
   #AuthzSVNAccessFile svn-acl.txt
</Location>

File D:\Program Files (x86)\Apache 2.2\svn-auth.txt created with htpasswd and looks like this:

foobar:$apr1$cV5.....$iwiJXkY6qlKopphUxlPMM/

All works fine.

File D:\Program Files (x86)\Apache 2.2\svn-acl.txt looks looks this:

[groups]
full = foobar

[/]
@full = rw
* = r

And when I uncommented AuthzSVNAccessFile svn-acl.txt I got

403 Forbidden
You don't have permission to access /svn/ on this server.

Here is an error.log record:

The URI does not contain the name of a repository.  [403, #190001]

I need next directories hierarchy:

E:\SVN is a root directory for all repositories - I want to list the all. It contains E:\SVN\test - is a project repository.

and E:\SVN\foobar - is a sub-root directory containing E:\SVN\foobar\foo and E:\SVN\foobar\bar - project repositories.

  • to set up anonymous read-only svn access put in your vhost config for apache:

    <Location /svn>
        DAV svn
        SVNPath /somewhere/svn
        <LimitExcept GET PROPFIND OPTIONS REPORT>
            Order deny,allow
            Deny from all
        </LimitExcept>
    

    svn with authentication / write access restrictions - take a look here.

    you can find more details in the 'version control with subversion', in this chapter.

    abatishchev : Thanks! I found some information already. But it doesn't work.. After I added AuthzSVNAccessFile svn-acl.txt login attempt returns 404 Forbiden. See more in my OP
    pQd : @abatishchev - did you tried putting full path to both txt files? what do you have in error.log of apache?
    abatishchev : @dQd: sorry, what do you mean 'full path to box txt files'? What and where?
    pQd : @abatishchev - i mean write in your apache full path to svn-auth.txt and svn-acl.txt ; and include here content of error.log [ probably in rootOfApach/logs/error.log ]
    From pQd
  • try adding slash after your svn in Location - change it from

    <Location /svn>
    

    to

    <Location /svn/>
    

    not really intuitive, found via this forum post.

    pQd : lol; but it's done.
    From pQd

0 comments:

Post a Comment