Subversion across multiple domains

software development

#1

I did some digging, but was unable to find an answer for this.

I have domains www.foobar.com and www.waldo.com (for example). They each should be different websites entirely. I want to keep each of them in a subversion repository as I modify them.

Can I do this in one repository, or do I have to have a separate SVN repository for each domain?


#2

Yes, you can do it in ine repository. I do the same. I have one SVN repository and many sites.


#3

Cool. Could you share some details about your setup, if it’s not too much trouble? I know that setting this up right is important to avoid problems down the line, so I want to make sure I get it right the first time.


#4

Hello,

I figured since I dealt with similar questions recently, I’d post some suggestions.

I would not recommend using one Subversion repository to manage multiple websites for a couple reasons.

First, it doesn’t really make sense to always have the master repository revision number revving up by one for ALL your sites, when you make a commit to just one file or directory in one project.

Second, the biggest reason I decided not to put all of my sites in one repository was the thought of the consequences of a corrupted repository. If your repository gets messed up, you are going to be trying to recover everything if it was all in one repository.

I couldn’t tell by your post if you were already familiar with using Subversion, but if not there are a lot of good resources online related to using Subversion and, in particular, how to use it with TortoiseSVN on Windows.

Probably the biggest thing I would stress is that your repository should not be the same as the physical location of your hosted website. Meaning, if you have a site at www.waldo.com, your repository should be somewhere else completely like www.svn.waldo.com for example.

Then, you do your work in the local working copy, commit your changes, use the repository browser to Export your files to your local machine, and then FTP them to the web server at www.waldo.com.

The Export function of Subversion creates a copy of the project with no Subversion information. This is important because if you publish a checked out directory, it will contain all of those hidden .svn folders which can get quite large over time. You want to publish Exported files every time in my experience.

As far as setup, I’m still working on figuring out the best setup for development on multiple sites, but here is the basic idea I’m going with:

One svn repository for each site. Each is hosted on different subdirectories of a master svn sub-domain I own.

For example:

svn.fakesite.com/project1
svn.fakesite.com/project2

…etc.

Then, be sure to set up the inner structure of your repository to include the folders “Branches, Tags, Trunk.” If you aren’t familiar with that, just read up on the Subversion and TortoiseSVN documentation.

Using one repository for all your sites would simplify things, but, in my opinion would also put you at a higher risk if that repository got corrupted or lost somehow.

On a side note, I can foresee a need for an easier way to manage multiple repositories in Web Panel. The panel makes it pretty easy now, but there is no way to easily sort or collapse the list if there are many repositories to manage. Maybe this is one of the reasons why some folks would use one big repository for everything.

Hope this helps.