使用“导出”从 SVN 发布,然后呢?如何升级?
Posted
技术标签:
【中文标题】使用“导出”从 SVN 发布,然后呢?如何升级?【英文标题】:release from SVN using "export" and then? how to upgrade? 【发布时间】:2011-03-01 07:48:25 【问题描述】:使用 SVN,我正在考虑使用 SVN 导出命令将第一个版本(1.0 版)发布到生产服务器。
升级的下一步是什么?例如,如果我想发布下一个版本是 1.1,应该怎么做?在不删除所有文件的情况下,有没有办法只从标签升级?
【问题讨论】:
【参考方案1】:一般发布步骤:
Create a Tag 来自主/测试分支。这是发布的代码。并且不能在没有分支的情况下进行修改。这是 1.0 版。您在生产服务器上构建和部署此代码。
在主分支(主干)中继续对 1.1 版进行编码。在 v1.1 结束时,您将创建另一个标签,该标签将发布版本 1.1。以此类推。
理想情况下,每个版本都保留一个标签。如果有修复的地方必须转到以前发布的版本,您 (1)create a branch 从那个标签(比如 1.0),(2)修复分支中的问题,(3)从这个分支创建另一个标签发布版本 1.0.1
请注意,整个过程不会删除任何文件。您只是在创建新的分支,它们是代码库的 cheap-copies。
更新
但是我怎样才能在生产中升级到标签 1.1? SVN导出会覆盖现有文件,删除标签1.1中删除的文件吗?这是我的担心。
两件事
导出不会从任何地方删除任何文件。它会下载您作为参数提供给它的 URL 的干净副本(没有 .svn 和其他 SVN 特定内容)。看这里svn export
当creating a branch 或标签时,您应该复制。而不是出口,然后是进口。最常见的发布流程如下图所示:(对可怜的艺术感到抱歉)
SVN 存储库状态随时间变化
/---> Tag 1.0.1(release to prod)
/--- Branch 1.0.1 for spot-fixes----|
/ |
/---Tag 1.0 (released to prod) v (merge fixes) /---Tag 1.1 (released to prod)
Trunk ----->'------Development for v1.1----------------'----------------->'----Development for v1.2-->
您会看到没有任何内容被删除,并且每个版本都有标签。
【讨论】:
但是如何在生产中升级到标签 1.1? SVN导出会覆盖现有文件,删除标签1.1中删除的文件吗?这是我的担心。【参考方案2】:听起来你想做一些持续集成。
您可以连接各种构建服务器以与您的 SVN 服务器集成,这样您就可以迭代地发布您的构建。
比手动导出更自动化。
看看
http://www.thoughtworks-studios.com/go-agile-release-management/
或
http://www.jetbrains.com/teamcity/
还有很多其他的...
【讨论】:
以上是关于使用“导出”从 SVN 发布,然后呢?如何升级?的主要内容,如果未能解决你的问题,请参考以下文章
关于myeclipse,使用export时导出.svn的解决方案