subversion release management with TeamCity
We currently use Subversion for our release management, and tag all of our releases (both to QA and to our production servers). However, we'd like to create a single Release directory reflecting our newest release instead. This way we can have TeamCity always pull from the same folder for continuous builds. Also, if someone has to make a quick bug fix to production, they won't accidentally make it to the wrong branch.
For example, below is our current structure with a 'release' folder added. Would there be an easy way to move a tagged branch to 'release' each time, or even have 'release' be a link to the newest release_* version?
Clarification
Here's an example of how our build/release process currently works:
I would (and do) take a slightly different approach to this. Source control management is primarily for, well, managing source and treating it as a means of tracking or implying releases can make life a little tricky. This is really the purpose of your continuous integration environment and it does a far better job of it than what SVN does.
I use TeamCity as the means of identifying both path and revision number to pull from SVN. It's easy enough to define this at build runtime and any release to production is always done with caution (ie carefully check both path and revision). In the absolute worst case, if you do screw it up, you can always re-run the build with revised parameters.
You really don't want to end up making code changes directly to a "Releases" folder - this is what the trunk is for if it's mainstream development or branches are for if you've had to adjust an earlier revision. It's sort of beating SVN into submission to do something that's not its core strength! On that front, you might find some of the tips in The 10 commandments of good source control management useful.
You can easily script this so that after build completion you can copy a file or contents of a folder into release folder. You can even delete the contents of the release folder before doing this. So yes, since a branch or tag in svn is a copy operation you can do this easily.
For each project we have a Latest
folder that contains, well, the latest version (usually just the binaries).
This is extremely useful for continuous integration although we have to use custom MSBuild scripts to achieve this eg do a Svn delete on the contents then an Svn copy to the Latest folder.
链接地址: http://www.djcxy.com/p/53740.html下一篇: TeamCity的颠覆版本管理