TeamCity的颠覆版本管理

我们目前使用Subversion进行发布管理,并为我们的所有版本(包括QA和生产服务器)添加标签。 但是,我们希望创建一个反映我们最新版本的发布目录。 通过这种方式,我们可以让TeamCity始终从相同的文件夹中进行连续编译。 另外,如果有人需要对生产进行快速错误修复,他们不会意外地将错误修改为错误的分支。

例如,下面是我们目前的结构,添加了一个'release'文件夹。 是否有一种简单的方法可以将标签分支每次移动到“发布”,或者甚至将“发布”链接到最新的release_ *版本?

澄清

以下是我们的构建/发布过程当前如何工作的示例:

  • 今天,我在TeamCity成功构建它之后向QA发布了一个我们的Web应用程序版本。 当这样做时,我分支/标记它
  • 明天以后,开发者会继续在主干上进行更新。 在下一次质量检查发布之前,这些信息不会被推送到QA
  • 周三,我们的QA团队通知我们他们发现了一个错误。 我们对QA分支进行错误修复,将更改合并回主干,并将更新的QA分支推回QA。 问题#1:由于我们在#QD分支,TeamCity不再为我们工作
  • 上周五,QA批准生产发布,因此我们发布并分支/标记
  • 周一,客户打电话要求对生产进行小改动。 我们在发布分支中进行更改并合并回主干。 问题2:再一次,如果没有TeamCity的帮助,我们会进行更改

  • 我会(并且会)采取稍微不同的方法来解决这个问题。 源控制管理主要是为了管理源并将其视为跟踪或暗示发布可能会使生活有点棘手的手段。 这是您的持续集成环境的真正目的,它比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)