I am currently working on a project in .NET which consists of several logical layers and multiple front-ends. Here is a rough representation of our SVN structure:
trunk
---doc
---lib
---src
------console
---------console.vbproj
------domain
---------domain.vbproj
------...
------web
---------web.vbproj
---.sln
All of our day-to-day development occurs in trunk - this is where all developers checkout from/commit to.
I am looking for a way to cleanly and easily deploy between environments (test and production).
My thought is to create two branches, test and production, from trunk - solution and all. I am justifying this to myself for the following reasons:
- I have complete control over which modifications flow to which environments by only merging from trunk to the test branch and from the test branch to the production branch
- I can easily see what code is executing in each environment by simply looking at the log of the corresponding branch in Subversion
Has anyone had any experience with a solution similar to this? Are there any potential pitfalls or oversights that I am missing?