如何从服务器中删除svn标记版本并将其保存在存储库中?

时间:2011-10-12 18:33:15

标签: svn

我接管了一个使用Subversion的Web应用程序。发布代码时,会在存储库中创建一个标记,然后在服务器上使用'svn update'命令将发布代码更新到最新版本。

这个过程很有效,但它已经持续了2年多,现在网络服务器上有超过100个标签,总计超过10个演出。它们所在的分区已经满了,我想删除旧版本的标签,只保留当前标记的版本。

根据我的理解,标签包含版本信息并且相互依赖。我试过从服务器上删除旧标签,但只要我运行'svn up',它们就会返回。我想做什么?我是否只能在服务器上拥有最新的标签,或者我是否需要开始考虑新的部署过程?

2 个答案:

答案 0 :(得分:1)

为什么要检查所有标签? 使用svn co http://repo/tags/v1.0签出当前代码 如果要更新网络服务器,请切换到新标记svn switch http://repo/tags/v1.1

答案 1 :(得分:0)

您可以使用svn rm http://repo/path/to/tag删除代码。这将它们从HEAD中删除,但显然它们仍然在历史记录中,并且可以在需要时检索它们。之后,您的svn up将不再检索旧标记,并会从其工作副本中删除已删除的标记。

另一种可能的解决方案是使用“移动标记”,例如tags/CURRENT,它始终指向最新标记。您的发布流程将执行svn cp new-prod-tag http://repo/tags/CURRENT。然后您的服务器只需要签出并更新CURRENT标记,而不是所有标记。 免责声明:这是不是 SVN的鼓励练习,但我想把它作为一种潜在的解决方案。