Subversion (svn) questions for beginners


Here's what i'm trying to do. I have a project in /var/www/project. I'd like to use svn for this project. I've installed SVN on my debian server for this purpose, but i don't understand how to use it and the googling got me even more confused. I'd like to create a repository /var/svn/project and use it. After some changes occur, i'd like to export all the code back to /var/www/project. Now here's what i've done:

  • i've created a repository: svnadmin create /var/svn/project
  • i've imported the code: svn import /var/www/project file:///var/svn/project -m "Initial import"
  • i've checked out the code with "Versions" client

Everything seems to work fine, but ... If i go to /var/svn/project, there are no source files from my project there or in any subdirectory. Although the svn client is able to checkout all of those files. So i've read that in svn, files are not stored separately neither in berkley db nor in fsfs filesystems. Then the question is ... how do i export the source back to /var/www/project? If i do an svn export command on the /var/svn/project directory, it says i'm not in a working copy :(

First of all you're correct that SVN uses a database structure to store (the changes to) your files so you shouldn't expect to see the raw files in the repository folder.

Once you've created a repository you almost never need to do anything else in that directory, except for configuration stuff (user authorization for example).

All your work should go on in working copy directories.

To get the code into your www folder type:

cd /var/www/project
svn checkout /var/svn/project

Now you can edit code in that working directory (/var/www/project) as you want. When you want to commit these changes type

svm commit -m "Commit message"

And the changes will go back into the repository.