TeamCity的颠覆版本管理
我们目前使用Subversion进行发布管理,并为我们的所有版本(包括QA和生产服务器)添加标签。 但是,我们希望创建一个反映我们最新版本的发布目录。 通过这种方式,我们可以让TeamCity始终从相同的文件夹中进行连续编译。 另外,如果有人需要对生产进行快速错误修复,他们不会意外地将错误修改为错误的分支。
例如,下面是我们目前的结构,添加了一个'release'文件夹。 是否有一种简单的方法可以将标签分支每次移动到“发布”,或者甚至将“发布”链接到最新的release_ *版本?
澄清
以下是我们的构建/发布过程当前如何工作的示例:
我会(并且会)采取稍微不同的方法来解决这个问题。 源控制管理主要是为了管理源并将其视为跟踪或暗示发布可能会使生活有点棘手的手段。 这是您的持续集成环境的真正目的,它比SVN所做的要好得多。
我使用TeamCity作为从SVN中识别路径和修订号的手段。 在构建运行时定义这一点很容易,并且任何发布到产品的任务都始终谨慎(即仔细检查路径和修订版)。 在绝对最坏的情况下,如果你把它搞砸了,你总是可以用修改后的参数重新运行构建。
您真的不想直接将代码更改为“发布”文件夹 - 如果是主流开发,或者分支机构适用于必须调整早期版本的情况,则这是干线的用途。 这是击败SVN提交做一些不是它的核心力量! 在这方面,您可能会发现“十条良好源代码管理管理诫命”中的一些提示很有用。
您可以轻松编写脚本,以便在完成构建后,可以将文件或文件夹的内容复制到发布文件夹中。 在执行此操作之前,您甚至可以删除发布文件夹的内容。 所以是的,因为svn中的一个分支或标签是一个复制操作,所以你可以轻松地做到这一点。
对于每个项目,我们都有一个Latest
文件夹,其中包含最新版本(通常只包含二进制文件)。
这对于持续集成非常有用,尽管我们必须使用自定义的MSBuild脚本来实现这个目标,例如对内容执行Svn删除操作,然后将Svn拷贝到Latest文件夹中。
链接地址: http://www.djcxy.com/p/53739.html上一篇: subversion release management with TeamCity
下一篇: This takes a long time...how do I speed this dictionary up? (python)