按日期自动删除Subversion标记

时间:2009-12-21 21:25:32

标签: svn deployment scripting

我正在创建一个批处理文件(在Windows Vista上),以便将我的项目从开发部署到我们的登台服务器。我目前的代码是:

:: Copy files from development to staging
robocopy \\local\file\path \\staging\file\path /MIR /Z /XD .svn /NFL /NDL /XF *.cs *.sln *.csproj *.suo *.resx *.user *.sln.cache
:: Create a new SVN tag in the format 'Staging_vYYYY.MM.DD.HH.MM'
svn copy http://repo:8080/svn/project/trunk http://repo:8080/svn/project/tags/Staging_v%date:~-4,4%.%date:~-10,2%.%date:~-7,2%.%time:~-11,2%.%time:~-8,2% --username ##### --password ##### -m "Tag for newest version on staging" --force-log

对于每次推送到staging / qa,它会在subversion中创建一个新标签。我想保留一些这段历史,但我也不想让我的标签目录陷入困境。理想情况下,我希望批处理文件还删除“旧”标签 - 比如说超过一个月 - 以免在不需要的备份上浪费硬盘空间。

有办法做到这一点吗?有没有更好的方法来创建一步式部署过程?

1 个答案:

答案 0 :(得分:2)

Subversion标签是'浅'副本;除了为特定的存储库状态赋予新名称之外,它们不会做任何其他事情。它们根本不需要花费太多磁盘空间 - 当然不是一个完整的结账价值。

也就是说,您可以使用svn rm删除标签,就像删除任何其他SVN网址一样;您可以通过检查每个标记上svn info的内容来选择要删除的内容。