Question

I have a website under svn and I want to patch the live website with what's currently in the repository (i.e. effectively calling svn update on the live website), but I don't want .svn directories in every folder on the production website.

Is there a way to set up svn so that the .svn folder with version information is not in the same directory as the files under version control?

In git you can create and detatch a work tree and push updates to a project this way(according to http://toroid.org/ams/git-website-howto), I basically want to be able to do something similar in svn.

Was it helpful?

Solution

svn export works similarly to a checkout but without the .svn directories. However, you cannot update such a structure since it's not a svn working copy.

You can also configure the web server to disallow access to the .svn directories and just go with the checkout+update method.

OTHER TIPS

How about rsync configured to not copy ".svn" directories?

rsync --exclude=.svn local_svn_copy webserver:site/

This can be re-run to refresh the webserver's copy.

httpd.conf:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>

As laalto has mentioned svn export makes for an easy but not very efficient method for updating a "working copy" when used repeatedly:

milen@dev:~$ svn export --non-interactive --force "<URL>" <directory>

You could also use git-svn to create a git mirror of the website and then publish the way described in the article you linked. Obviously this isn't a straight forward solution though.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top