我对我的存储库大小有问题,我的存储库已经失控了,因为我们的项目组曾经决定将构建保留在svn中,每个二进制文件大约是30 MB,回购程序的每日备份在几百次签入后需要4-5 GB。很难对回购文件进行备份,并将其复制到每天备份的网络位置。
发布于 2012-12-04 09:04:23
对每个构建保持备份的最佳实践是什么?
别这么做。SVN (以及所有/大多数其他版本控制系统(VCS))是通过使用/存储差异来有效地存储文本文档(源代码)的。这不适用于二进制文件。
我可以创建一个svn提交触发器来压缩和复制构建,而不是把它放到svn上吗?
有可能,但这是一次重大的黑客攻击,需要在每台具有结帐pf存储库的计算机上完成。如果您想在签出存储库时再次检索这些zip,则会变得更加麻烦。
我怎么才能缩小我的回购码? 我能用svn命令摆脱一些旧的二进制文件吗?
一旦您向SVN (和大多数其他VCS)提交了一些东西,它就不会被保留,您就不能修改历史记录。也就是说,您可以创建一个新的存储库,可以将所有的更改复制到它(有一些工具可以用来保存提交消息)。也许有可能重新启用所有内容(没有构建),并从那时起使用该存储库。(确保所有项目合作伙伴签出新的存储库以防止出现问题)
正如您注意到的,在VCS中存储所有派生文件(构建)并不是一件好事。为了重现性,您可以存储构建信息,比如使用过的工具的版本号。因此,如果需要的话,总是可以重建特定的构建。
使用一个只包含最新版本的共享位置,这样所有项目合作伙伴都能够看到/尝试这个最新版本。
但是,不要再把它存储在VCS中了!
发布于 2012-12-04 17:54:07
对每个构建保持备份的最佳实践是什么?
为每项任务使用正确的工具。源代码管理可以管理构建的工件,但只有很差。此作业使用工件管理器
我可以创建一个svn提交触发器来压缩和复制构建,而不是把它放到svn上吗?
是的,从理论上讲,钩子中的您可以做任何事情(构建、存档、部署),但是(同样)特殊的工具可以对最终用户更容易和更顺利地完成(读"Jenkins","Maven")。
我怎么才能缩小我的回购码?
创建转储,删除转储中不必要的修订,恢复抛光转储
我能用svn命令摆脱一些旧的二进制文件吗?
你不能用客户端工具来做这件事,只能用svnadmin-\dumpfilter-hacking转储。
https://stackoverflow.com/questions/13699074
复制相似问题