17

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.

Charles Ma
  • 47,141
  • 22
  • 87
  • 101
  • In reality I was thinking of rsync for a git tracked website, so thanks for the tip. P.S. svn was just an evolutionary step, by now of historical interest only. thanks again! – Rhythmic Fistman Jun 27 '09 at 14:08

5 Answers5

37

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.

laalto
  • 150,114
  • 66
  • 286
  • 303
  • 1
    See this question for information on how to do the second option: http://stackoverflow.com/questions/214886/how-do-i-hide-directories-in-apache-specifically-source-control – Matthew Scharley Jun 27 '09 at 13:17
7

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.

Rhythmic Fistman
  • 34,352
  • 5
  • 87
  • 159
2

httpd.conf:

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

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>
Milen A. Radev
  • 60,241
  • 22
  • 105
  • 110
1

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.

bluebrother
  • 8,636
  • 1
  • 20
  • 21