Subversion和标签之间的切换

问题描述:

我的自动化部署系统更新了我的站点低谷版本的最新版本。我没有将我的现场网站指向主干(这通常几乎是一个正在进行的版本),而是让我的现场网站指向一个标签。Subversion和标签之间的切换

E.g.我在trunk上工作,当我的v1.0完成时,我创建了一个名为1.0的标签,然后检查那个标签,然后是我的活网站。现在,我一直在干线工作,过了一段时间,有一个2.0版本。我创建了一个名为2.0的标签,并且我希望我的活动网站类似于这个2.0标签。

我可以擦拭当前的现场网站,并完成这个2.0标签的结帐。然而,这听起来很容易。我的网站大小约为1GB,因为它具有各种PDF文档和视频。我可以放心地说,大多数情况下我会更新它将会复制更改或错误修复。这意味着也许我的网站只有1%每更新一次。由于我的版本控制只能通过非现场http连接访问我的网络服务器,这意味着我需要一遍又一遍地下载整个网站。

是否有一种简单的方法可以在标签之间切换并让颠覆只更新这些标签之间的差异?

实际上有一个开关功能可以做到这一点。我用TortiseSVN这是一个Windows外壳/ GUI的颠覆,所以我不熟悉如何做手工,但是这看起来应该帮助:

http://svnbook.red-bean.com/en/1.1/ch04s05.html

命令行:使用svn开关URL

使用svn help switch获取更多详细信息。

但是,我建议以其他方式做事。您的制作网站始终处于中继线上,而您在分支上进行开发时,它们在准备发布时会合并回中继线。在任何发布后,您可以为历史目的做一个标签。合并后,您只需执行svn更新即可让您的网站运行新代码。

DivMod将此想法应用于其逻辑结论,为每个正在工作的问题/票证创建分支。你可以read their description of their system;它提供了一些令人信服的论据。

+0

+1感谢DivMod参考。更新后的链接:http://twistedmatrix.com/trac/wiki/UltimateQualityDevelopmentSystem – Paolo 2011-05-03 22:16:36

我使用类似的设置,除了我使用活分支,而不是标签。这是更多的工作,因为我现在必须将变化从trunk中合并到活动分支中,但是我可以在webroot中执行“svn up”来更新它。如果我想将来自不同分支的选定更改合并到实况中,它也会给我稍微更好的控制。

如果我再次这样做,我会使用mercurial(或类似的),因为分支更容易维护,但上述技术已为3个活动网站工作了大约两年。