Subversion web development question.

Greg Groth ggroth at gregs-garage.com
Mon Jul 24 17:37:24 UTC 2006


On 7/24/2006 12:16 PM, Philip Hallstrom wrote:
>> Forgive me if this question is stupid or has been answered before, 
>> more than likely this info exists, but I'm not looking in the right 
>> place.  I work in a
> 
> I'd recommend searching the subversion mailing lists as well.  It's been 
> covered, but it's not stupid :)

Will do, thanks.

> 
>> small corporation that is heavily dependent on web apps in which I am 
>> the sole developer.  Currently we're using ASP on Win2K with SQL 
>> Server 2000. We've used RedHat for years on our mail / DNS servers, 
>> and have migrated to FreeBSD for both.  Since ASP has pretty much been 
>> rendered obsolete by .Net, we are eventually going to migrate our web 
>> apps.  Rather than continue down the road of MS technology, we have 
>> decided to migrate to PHP & MySQL based on
> 
> Not to start a war, but if you're switching now, you might want to look 
> into Ruby on Rails as well.
> 
>> Our development infrastructure to date works in this manner.  Since I 
>> am the sole developer, and will be for the long term future, there has 
>> never been
> 
> Since you're changing things now, assume that you are not the sole 
> developer anymore.  You'll be thankful you did when the next developer 
> comes along :)

That's the plan :).

> 
>> any real need to incorporate SourceSafe.  Instead we run a separate 
>> development server to do all the coding.  An FTP site has been set up 
>> to repository on the server.  I currently use HomeSite for it's 
>> built-in FTP client.  Coding is done locally, saved back to the 
>> server, and tested on the server in a browser.  Testing is not done 
>> locally because our needs are such that there is a large number of 
>> static text files need to be accessed by our apps.  The parameters to 
>> access these files are hard to duplicate to a workstation, and it has 
>> proved (for us anyway) to be easier to test these apps on a server 
>> that is a mirrored environment of the live server.
> 
> This sound very similar to our situation..
> 
>> My question is can something like this be replicated on FreeBSD w/ 
>> Subversion?
> 
> Sure.
> 
>> I would like to setup a versioning system, but am at a loss on how the 
>> development process would operate.  I have found information on how to 
>> update files on the live server from the development server, but not 
>> much in the way of how to set up a development server to get 
>> Subversion to update the files in the Apache directories.  It would be 
>> trivial for me to simply set up FTP sites that map to the Apache 
>> directories, and change the permission structure to allow access to 
>> these directories, but I'd rather not create a security headache for 
>> myself down the road.  Can Subversion be set up to check out a file, 
>> commit it back to the server, and test it in a browser from a 
>> workstation?  Or does the file need to be moved from the Subversion 
>> directories to the Apache directories by someone w/ root privileges 
>> every time a file has been edited?
> 
> If your development server is local (ie. on the LAN) to your 
> workstation, I would setup Samba to share your web tree to your 
> workstation.   Once this is done you can simply create/edit/delete files 
> right from your workstation and the changes take affect immediately on 
> the development server.

Just for clarification, the dev server is not on the local LAN, it 
resides on the DMZ.  Way back when, our dev server was on the LAN, live 
server on the DMZ, but we ran into a lot of issues getting some MS 
specific technologies working when the code was moved from the dev 
server to the live server.  Code written for path statements had to be 
rewritten to run in the DMZ.  Since then, the dev server has resided on 
the DMZ.  The other reason is for remote accessibility.  Having the dev 
server on the DMZ allows me the ability to code from home without having 
to punch a hole in the firewall to our internal LAN.

> 
> The second step is to add subversion.  To do this, create the subversion 
> repository on your development server (or on a dedidcated server 
> somewhere) and set it up to allow remote access.  Then, go get a 
> graphical SVN client like TortioseSVN (for windows only, but mac clients 
> exist too) and configure it to check out your repository onto that share 
> you mounted earlier.
> 
> At this point you can manage your files on your workstation and 
> immediately check your results.
> 
> Then when happy, you can commit your changes with SVN and they get 
> committed to the repository.
> 
> You don't need subversion to move files into your web tree.  That's not 
> what it does.

Fair enough, so should I assume then that the files need to be moved 
using SSH (for example) after su-ing  to root?  If so, I suppose I would 
be better off then just setting up Apache on my desktop, testing 
locally, then moving the files back to the server?

> 
> Some other thoughts...
> 
> If you like the command line, you can skip the graphical SVN client and 
> just do it directly on the development server.  That's what I do.  If 
> you did that you could also skip Samba and keep on using your FTP 
> client, although I personally hate having to FTP files back and forth.

So do I, which is why HomeSite's built in FTP client was such a treat. 
I know Bluefish has some method of connectivity similar in nature using 
gnome-vfs, but I could never figure out how to get this to work.  The 
only documentation I could find last time I looked was that there was 
support for remote file systems, depending on your gnome-vfs setup, but 
nothing on how to set it up.

> 
> Search the net for books on subversion... there are a couple that are 
> freely available.  OReilly also has made their samba book free as well.

Will do.  I took a look at one already, but it was the full blown 
documentation.  I was hoping someone had a toaster how-to for this type 
of setup, but no luck so far.  I'll hit the mailing lists you suggested 
and see what I come up with.

Best regards,
Greg Groth


More information about the freebsd-questions mailing list