Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the best way to make files live using subversion on a production server?

Tags:

linux

php

svn

Currently I have subversion set up so that when I make changes in Eclipse PDT, I can commit the changes and they will be saved in /home/administrator/Project File. This file has the /branches /tags and /trunk directories recommended by subversion. I have no problem properly uploading files to the repository, but do I have to "mv" the files in Linux to /var/www in order to make them live on the server? Is there an automatic process to do this that I am missing? I'm assuming we don't want to make the /var/www directory (which is live on the machine) the repository, but I don't know.

like image 819
Matt Avatar asked Dec 31 '22 08:12

Matt


2 Answers

You can do an svn export into your www directory. That will give you a "clean" version of your repo, without the .svn directories.

cd /var/www
svn export /home/administrator/MyProject/trunk MyProject

Edit: adding in some good ideas from the comments...

Some options for when you want to update your exported copy:

  • run svn export --force /home/...../ MyProject this will stop it complaining about overwriting the existing files. This method will mean that if you delete a file from your repository, it'll still remain in your www folder.
  • change your SVN command to export into a new directory each time:
    svn export /home/..../ MyProject_20081105
    and then create a symlink to that folder:
    ln -s MyProject_20081105 MyProject
    Just delete and recreate the symlink each time you "release". In this case, the export directory doesn't need to be in the www folder at all.
like image 127
nickf Avatar answered Jan 05 '23 16:01

nickf


You can simply check out a copy of the repository in the /var/www folder, and then run svn update on it whenever you require (or switch it to a new branch/tag, etc). Thus you have one copy of the respository checked out on your local machine where you make changes and updates, and another copy on your webserver.

Using an SVN repository also gives you the ability to revert to earlier versions as well.

like image 42
JamShady Avatar answered Jan 05 '23 17:01

JamShady