title: Web Application Deployment Workflow with SVN and TeamCity
body: <p>I'm fairly new to Subversion. Most of my work so far has been with Visual Source Safe. I'm looking to improve my deployment process with SVN and TeamCity. This is my plan:</p>
  
  <p>There would be three branches:</p>
  
  <ol>
  <li>Development (/trunk) - Entire ASP.NET solution, including a Web Deployment Project.</li>
  <li>Staging (/branches/staging) - Web Deployment Project output (files needed for execution only - bin, .aspx, images, etc)</li>
  <li>Deployment (/branches/deployment) - same as Staging</li>
  </ol>
  
  <p>The CI process:</p>
  
  <ol>
  <li>Commit source changes in trunk.</li>
  <li>TeamCity detects the change, builds the solution and runs unit tests.</li>
  <li>If all tests pass, TeamCity commits Web Deployment Project output to branches/staging and exports it to wwwroot on the staging web server.</li>
  </ol>
  
  <p>Then when I'm ready to deploy to production, I'll do the following manually:</p>
  
  <ol>
  <li>Merge branches/staging with branches/production</li>
  <li>Update production web server's working copy of branches/production.</li>
  </ol>
  
  <p>Does this make sense? Is there anything that a VSS user like myself might be missing/misunderstanding in this process?</p>