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

Re: Problems understanding Subversion layout with Subclipse..

From: Mark Phippard <MarkP_at_softlanding.com>
Date: 2005-08-17 14:59:37 CEST

Kevin Duffey <supreme_java_guru_1@yahoo.com> wrote on 08/17/2005 02:09:04
AM:

> I then created a /prj directory and below that
> directoreis for /trunk, /branches and /tags. Are these
> required?

Nothing is required. Subversion implements a virtual filesystem. How you
lay it out is up to you.

> So, as I see it, I have a repository called client
> located at /usr/local/svnroot/client, right? When
> Eclipse SVN wizard asks me for the URL and Root URL, I
> put in https://oursite.com/svnroot/client

Correct.

> Now, I right-click on my existing project (of which I
> just disconnected from a CVS repository remembering to
> remove the CVS meta info so all the CVS dirs are
> wiped) click team, share project and select SVN.
>
> The below URL is what I am using to follow the screen
> shots and info on how to do this.
>
> http://subclipse.tigris.
> org/svn/subclipse/trunk/subclipse/ui/html/gettingstarted/importing.html
>
> So I use existing repository location, and this is
> where I get stuck. It asks me to use project name or
> use specified folder name. What is this?

I answered this in the last message, and the above URL also addresses it.
In your case, you want to take the "Use Specified Module Name" option and
specify a value of "prj/trunk". HOWEVER! You have to first delete trunk
from your repository. That folder needs to be added by Subclipse as part
of the Share Project process.

> Also, in the
> URL above, the screen shot shows a browse button and a
> URL label with a msg saying the URL cannot already
> exist. This does NOT appear in my Eclipse 3.1 wizard
> (subclipse I assume is providing this wizard). So
> something changed, but it seems mostly the same.

I do not think my previous message could have been any more clear that I
JUST changed these dialogs and the documentation and that this will be in
the NEXT release. The functionality of the dialogs is the same, the new
UI hopefully just makes it more obvious what the right thing to do is.

> So, this is where my confusion lies. What to enter at
> this point for the folder name. In Eclipse 3.1 (and
> the latest subclipse plugin) it says Module Name. Not
> Folder name.

Assuming you want this to go into prj/trunk you need to just delete the
trunk folder from the repository, and then run the wizard and specify a
value of "prj/trunk".

> > Then why did you create the trunk/branches/tags
> > folder?
>
> Because the various instructions I have read said to?
> Being new to this, I honestly dont know why. :D That
> is what I am asking ya'll... what IS the purpose of
> these folders? Are they required for subversion to
> work? Or are they just "helpful suggestions" on how to
> organize a subversion repository?

Helpful suggestions. The structure is what matters, not the names. The
point is to create enough layers of folders in the structure so that you
can later on do copying/tagging easily. If you just dumped your project
directly into the root it would be hard to later create tags. The
recommended structure is:

ProjectA
  |-- branches
  |-- tags
  |-- trunk
ProjectB
  |-- branches
  |-- tags
  |-- trunk

If only want one project per repository you can omit the ProjecName folder
at the top of the hierarchy. If your projects are tightly related you
could invert the structure:

branches
tags
trunk
  |--ProjectA
  |--ProjectB

And like I said, there is no meaning to the names. Use whatever you want.

> Again, not sure where svnroot fits, but somehow since
> it lies at /usr/local/svnroot but in the URL to the
> repository I dont have to specify /usr/local as part
> of the string, it appears some how subversion on the
> server knows that /svnroot is located at
> /usr/local/svnroot.

It sounds like your administrator created a folder named svnroot as the
root location in which to create your repositories. He probably has
Apache configured to serve any repositories created in that folder.
svnroot has not significance other than that is the folder name he used
and where he pointed Apache to serve from.

> Ok, why do you not need the /usr/local in the URL?
> What is telling subversion that svnroot ==
> /usr/local/svnroot on the server? My guess is that the
> svnadminc reate /usr/local/svnroot/repos allows the
> svnroot path to be found easily given the repository
> absolute path?

Because the client is talking to Apache, not the filesystem. Apache hides
the details of the location, just as it does when it is serving a web
site. Your admin used the same name "svnroot" for the final folder name
and also the Apache <location> directive. Not a problem.

> Ahhh.. here is my answer to the previous section. I
> guess we do.. not sure though. I am running Resin on
> port 80, so I dont know that we are running apache for
> this, nor do I know how to figure this out for sure.

Subversion requires Apache, so you are definitely running it.

> Ok, does svn mkdir do anything special that the mkdir
> from the local file system wont do, other than maybe
> give proper permissions to the dirs?

svn mkdir allow you to create a directory inside the repository. You did
something similar by creating directories in your local file system and
then importing them into the repository. Your approach has the advantage
of creating more than 1 directory in a single commit.

Mark

_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. by IBM Email Security Management Services powered by MessageLabs.
_____________________________________________________________________________
Received on Wed Aug 17 22:59:37 2005

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

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