[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [TSVN] Browsing for projects in TortoiseSVN Dialogs

From: SteveKing <steveking_at_gmx.ch>
Date: 2004-07-13 20:20:59 CEST

Joachim Kathmann wrote:

> we've recently installed Subversion on a W2K server running Apache
> 2.0.49 and SSPI authentication.
> Everything works fine, except browsing the svn root folder in
> Tortoise for the existing subversion projects.

If you have several separate repositories, then that's not the "svn root
folder" you're referring to. The "svn root" is the topmost folder of a
repository.

> That means (for e.g. checking out to a working directory) we would
> like to enter http://server01:8080/svn/ instead of
> http://server01:8080/svn/trunk/Project1 to get a list of all projects in
> svn/ to choose trunk/ and then Project1/ from.

That's not possible. That folder is not inside a repository and can't be
browsed with the TSVN repository browser.

> But instead of a list of project folders, we just get the Forbidden
> message from Apache for the svn folder.
> Now we've been trying for several hours to change location settings,
> SVNPath/SVNParentPath settings in httpd.conf and we just can't get it to
> work. We've been searching manuals and mailing lists for Subversion and
> TortoiseSVN for solutions but can't find anything. Since no one else
> seems to have this problem, we assume that it's really easy to solve.

Depends on what you call "really easy" ;)

> It seems that WebDAV is used for all childfolders of svn/ but the
> folder svn itself is not a WebDAV folder. But it is also accessed using
> WebDAV resulting in the error message.
> So how do we tell Apache to distinguish between folders whether to
> use WebDAV or not? Or is there another method to accomplish the same result?

The only way you can get close to what you want is putting an index.html
file in the svn folder. That index.html then contains links to all your
projects.
AFAIK some people already wrote scripts which build such an index.html
file by listing the repositories (berkeley db folders). Search the
subversion mailing list for those - or just ask on the list there.

> By the way: Only the server adminstrator should be able to create new
> repositories, but members of the domain group should have read/write
> access to the repository for their project.

You can't create repositories remotely! At least not with Subversion
commands. I do that by having the 'svn' folder exported over a network
share with write access only for me. Then I can use the 'svnadmin
create' command (or the TSVN command "create repository here") to create
a new berkeley db folder.

> Here are our current Location settings from httpd.conf:
>
> <Location /svn>
> DAV svn
> SVNParentPath "D:\svn"

This means you must have at least one berkeley db folder in D:\svn - but
since you use SVNParentPath I assume you have more than just one in there.

> AuthName "Subversion"
> AuthType SSPI
> SSPIAuth On
> SSPIAuthoritative On
> SSPIDomain DOMAINNAME
> SSPIOfferBasic On
> <LimitExcept GET PROPFIND OPTIONS REPORT>

seems ok.

> require user "DOMAINNAME\Administrator"

That would mean only the administrator can commit to the projects? This
doesn't make sense at all.

> Order deny,allow
> deny from all
> allow from xxx.xxx.xxx.0/24
> </LimitExcept>
> </Location>
>
> <Location /svn/branches>
> DAV svn
> SVNParentPath "D:\svn\branches"
> </Location>

This block doesn't make sense at all!

>
> <Location /svn/tags>
> DAV svn
> SVNParentPath "D:\svn\tags"
> </Location>

This neither.

>
> <Location /svn/trunk>
> DAV svn
> SVNParentPath "D:\svn\trunk"
> </Location>

And neither does this.

> #----------------------------------------------------
> # project1
> #----------------------------------------------------
> <Location /svn/trunk/project1>
> require group "DOMAIN\project1"
> </Location>

This won't work! /trunk/project1 is (as the /trunk/ indicates) inside a
subversion repository. Apache knows nothing about those, so you have to
use the svn autz module for that.

> #----------------------------------------------------
> # project2
> #----------------------------------------------------
> <Location /svn/trunk/project2>
> require group "DOMAIN\project2"
> </Location>

See above.

It seems to me that you don't understand how Subversion repositories
work. Did you read the subversion book?
http://svnbook.red-bean.com/svnbook/ch06s04.html

First:
decide if you want your projects stored inside one single repository or
have a separate repository for each project.

If you decide to have a separate repository for each project, then do
the following:
- under d:\svn create a new folder for each project
- then, inside d:\svn\project1 use the TSVN command "create repository here"
- point the SVNParentPath to d:\svn
now you can access the project by pointing to http://server/svn/project1
- use the autz_svn module to provide access on a per directory basis

If you decide to have one repository for each project, then do the
following:
- inside d:\svn use the TSVN command "create repository here"
- point SVNPath to d:\svn (_not_ SVNParentPath)
- you can now access the repository by pointing to http://server/svn/
- use the repository browser to create a directory structure inside the
repository, e.g.
trunk/project1
branches/project1
tags/project1
- use the autz_svn module to provide access on a per directory basis,
e.g. limit write access to trunk, branches, tags only to the
administrator, but provide write access to the folders below to all
developers.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Tue Jul 13 21:25:33 2004

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.