我接管了一个使用Subversion的Web应用程序。发布代码时,会在存储库中创建一个标记,然后在服务器上使用'svn update'命令将发布代码更新到最新版本。
这个过程很有效,但它已经持续了2年多,现在网络服务器上有超过100个标签,总计超过10个演出。它们所在的分区已经满了,我想删除旧版本的标签,只保留当前标记的版本。
根据我的理解,标签包含版本信息并且相互依赖。我试过从服务器上删除旧标签,但只要我运行'svn up',它们就会返回。我想做什么?我是否只能在服务器上拥有最新的标签,或者我是否需要开始考虑新的部署过程?
答案 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的鼓励练习,但我想把它作为一种潜在的解决方案。