使用“导出”从 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 发布,然后呢?如何升级?的主要内容,如果未能解决你的问题,请参考以下文章

java批量从svn导出多个项目

如何把项目导入到svn服务器上

如何使用 maven 从 subversion 导出项目?

关于myeclipse,使用export时导出.svn的解决方案

我刚用android studio从svn导进来的项目爆红线,求指教

sql 数据库怎么从一个数据库把数据拿出来放到另一个数据库呢