我正在创建一个批处理文件(在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中创建一个新标签。我想保留一些这段历史,但我也不想让我的标签目录陷入困境。理想情况下,我希望批处理文件还删除“旧”标签 - 比如说超过一个月 - 以免在不需要的备份上浪费硬盘空间。
有办法做到这一点吗?有没有更好的方法来创建一步式部署过程?
答案 0 :(得分:2)
Subversion标签是'浅'副本;除了为特定的存储库状态赋予新名称之外,它们不会做任何其他事情。它们根本不需要花费太多磁盘空间 - 当然不是一个完整的结账价值。
也就是说,您可以使用svn rm
删除标签,就像删除任何其他SVN网址一样;您可以通过检查每个标记上svn info
的内容来选择要删除的内容。