1

Currently we have no SVN/Git/Mercurial setup at work. We're fully aware it's a bad situation, so we decided that since we're about to start a new major project, we would get at least a basic SVN setup going.

The problem is that none of us have any real experience of SVN in a team environment. I, myself have used SVN and Git for my own projects in which I am the single developer.

Because of this we're confused on the best setup to use for our new development structure - currently we have a development server bbtsrv02 in which all files are located on, we edit them, then upload them as we go.

This needs to change, however we're not sure how this new setup could work. I guess we'd need a local copy of the files, but our server is configured specifically for our websites and then how would we test them in the same environment? From there, we'd commit to bbtsrv02

What do you suggest? Is this setup wrong from the start?

Danubian Sailor
  • 1
  • 38
  • 145
  • 223
James
  • 5,137
  • 5
  • 40
  • 80

2 Answers2

2

We recently made this change as well. For us we doubled our in-house FTP/Web Server to also serve our SVN via HTTP. With this set-up we are able to work on and contribute to the project while also on the road. Which is a very common occurrence for us. We have hooked up the SVN from there to Hudson to create a automatic build for testing in a VM before pushing onto the web-server.

D-Bar
  • 185
  • 6
  • So you have SVN and your web server setup in the same place? Is your repository set as your `root` path for your web server? – James May 11 '11 at 14:43
  • No, they are just the same physical box. We test our releases in a VM (different system) before we place anything into the root. I would not recommend setting the repository as the root. Something could slip into the application. ex. app_offline.htm for a asp.net site – D-Bar May 11 '11 at 14:47
  • I guess then, we'd be using SVN more like a place to store a working version, a histogram of work? – James May 11 '11 at 14:52
  • Yes and all the other advantages of using any source control. The most important for us are the ability to record and retrieve past versions. Mostly to provide hot fixes(branch/tag) without releasing unfinished work. Merge changes made back into the code base after working while disconnected from the team and recovery/rollback of mistakes. – D-Bar May 11 '11 at 15:04
  • Awesome! That's pretty much exactly what we're after! Is there anyway to `commit` to SVN, and put a copy of the file to the web server at the same time? – James May 11 '11 at 15:22
  • 1
    To set a hook on your commit action: http://www.codersrevolution.com/index.cfm/2008/9/15/Creating-a-postcommit-hook-for-Subversion. I would bet you will want to control this conditionally so I would also read this: http://stackoverflow.com/questions/1560596/how-to-conditionally-send-svn-commit-email-based-on-commit-message-keywords – D-Bar May 11 '11 at 15:54
  • Awesome! I think this all pretty much sums up what we're after! Thanks for all of your help :) – James May 11 '11 at 16:01
2

We host our SVN repository on a utility development server which, among other things, also hosts our issue-tracking software, FTP server, various network shares and project documentation.

We develop primarily ASP.NET applications, so we develop locally using either the Visual Studio development server or the local IIS instance on our workstations, and then uploaded to a development IIS/SQL server.

It's an exceedingly simple setup, but it suits our needs. It is not externally accessible, so we need to be in the office or connected via VPN.

Quick Joe Smith
  • 8,074
  • 3
  • 29
  • 33
  • So you all have a copy of your application locally? – James May 11 '11 at 14:47
  • No, just the one(s) we are working on at any one time. The process is generally to check out a local copy, make changes, test, wash-rinse-repeat, then commit the changes back and then do an `svn export` to the dev server. – Quick Joe Smith May 11 '11 at 18:01