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

Re: Customizing default svnserve.conf file?

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2005-02-18 18:32:50 CET

On Feb 18, 2005, at 10:59 AM, Philippe Auphelle wrote:

> Ben,
>
> > If you guys don't read the docs and don't understand the
> > basic concepts of SVN, I can't help you.
>
> We had previously RTFM, the whole 278 pages of it, plus the 87 pages
> from the TortoiseSVN manual, plus the 24 pages of the FAQ. I'm not
> claiming that we know it by heart nor that we fully understood
> everything and the implications, though. Preliminary RTFM is a
> necessary condition to understanding, but it's not a sufficient
> condition - thus my presence on this list.

Sorry, I didn't mean to sound snippy. I'm sure you guys have been
doing tons of reading, and there's a lot of stuff to digest.

>
> As I said before, my current understanding of what happened to us on
> our first use is that we checked out the whole repository from the
> root, while we only intented to checkout the head of the project.

In Subversion, the recommended best practice is that one defines a
"project root" as a specific directory than contains {trunk/,
branches/, tags/}.

The mapping of "project roots" to repositories isn't 1 to 1. You can
place as many project roots in a repository as you wish. Or, if you
want, you can place exactly one project root in each repository. It's
up to you.

Users are then told the URL to the project root -- and, assuming the
user understands SVN concepts, knows to 'svn checkout URL/trunk/' to
get the main codeline. An administrator is free to just include the
'trunk/' portion in the URL when handing it out to users, of course.

>
> What I have been trying to explain is that something like this simply
> couldn't happen with CVS using the similar TortoiseCVS interface, just
> because the only thing TortoiseCVS allows us to checkout with that
> setup is a single project - not a whole repository.

In TortoiseSVN, you would type in the proper URL, and get the trunk/ of
the project root. Whether than project-root its own repository, or
whether it's sitting in a repository with 5000 other project-roots, is
an implementation detail that the client cannot see.

In TortoiseSVN, the user is also free to browse the repository before
doing a checkout, as a way of interactively finding the project-root
URL. It's not quite as friendly as TortoiseCVS saying, "here's a list
of all modules, choose one" -- but if you place all of your
project-root directories at the top of your SVN repository, then
TortoiseSVN's "browsing" ability will show nearly the same sort of
friendly listing.

> Still using TortoiseCVS, I can also create subdirs, stuff a subproject
> into each subdir, and work at the subproject (subdir) level if I want
> it. And then, it's up to me to manage my directory tree, because if I
> damage my tree, CVS will record the damage and I'll have to get back
> somehow.
>
> So in this strict respect, the CVS "Project" (or "Module" as Tortoise
> calls it) appears to me as more or less the functional equivalent of
> the svn "Repository".
>

Not true. The CVS module is functionally identical to an SVN "project
root", which is just an ordinary directory in a repository. They both
offer exactly the same degree of project isolation. There is
absolutely no need to create a new svn repository for each project.

> IOW I don't really care whether our CVS keeps everything physically in
> a big repository, as long as *using the client interface*, I have the
> ability to use this project-by-project logical protection - or to not
> use it. This allows us to organise our projects the way we want it,
> and protect us from ourselves when we want it (by creating a separate
> project), so they live in different directory trees.

Create one big svn repository. Lay it out like this:

    /
    /project1/trunk
             /branches
             /tags
    /project2/trunk
             /branches
             /tags
    [...]

Then when your users use TortoiseSVN to browse the repository, they see
a listing like

      project1/
      project2/
      [...]

It's essentially the same as seeing the list of CVS modules. They just
need to make sure to checkout the 'trunk' subdir below the
project-root, not the whole project-root.

Similarly, to start a new project, all client needs to do is create a
'projectN' direcotry at the root of the repository, and three empty
dirs below it.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Feb 18 18:38:31 2005

This is an archived mail posted to the Subversion Users mailing list.

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