我的存储库大小有问题,我的存储库变得失控,因为我们的项目组有一次决定将我们的构建也保留在 svn 中,每个二进制文件大约 30 MB,repo 的每日备份需要 4-5 GB在数百人签入之后。备份存储库并将其复制到每天备份的网络位置变得非常困难。
保存每个构建的备份的最佳做法是什么?
我可以创建一个 svn 提交触发器,将构建压缩并复制到某个地方,而不是把它放到 svn 中吗?
如何缩小我的回购规模?
我可以用 svn 命令摆脱一些旧的二进制文件吗?
我的存储库大小有问题,我的存储库变得失控,因为我们的项目组有一次决定将我们的构建也保留在 svn 中,每个二进制文件大约 30 MB,repo 的每日备份需要 4-5 GB在数百人签入之后。备份存储库并将其复制到每天备份的网络位置变得非常困难。
保存每个构建的备份的最佳做法是什么?
我可以创建一个 svn 提交触发器,将构建压缩并复制到某个地方,而不是把它放到 svn 中吗?
如何缩小我的回购规模?
我可以用 svn 命令摆脱一些旧的二进制文件吗?
保存每个构建的备份的最佳做法是什么?
不要做。SVN(和所有/大多数其他版本控制系统(VCS))旨在通过使用/存储差异来有效地存储文本文档(源代码)。这不适用于二进制文件。
我可以创建一个 svn 提交触发器,将构建压缩并复制到某个地方,而不是把它放到 svn 中吗?
可能,但这是一个重大的黑客攻击,(可能)需要在每台具有存储库结帐的计算机上完成。如果您想在签出存储库时再次检索这些 zip,那就更麻烦了。
如何缩小我的回购规模?
我可以用 svn 命令摆脱一些旧的二进制文件吗?
一旦您向 SVN(和大多数其他 VCS)提交了某些内容,它就会保留下来,您就无法修改历史记录。也就是说,您可以创建一个新的存储库,可以将所有更改复制到它(有一些工具可以用来保存提交消息)。也许可以重新提交所有内容(没有构建)并从那时起使用该存储库。(确保所有项目合作伙伴签出新存储库以防止出现问题)
正如您所注意到的,将所有派生文件(构建)存储在 VCS 中并不是一件好事。为了重现性,您可以存储构建信息,例如所用工具的版本号。因此,如果需要,始终可以重建特定的构建。
使用仅包含最新版本的共享位置,以便所有项目合作伙伴都能够看到/尝试这个最新版本。
但是,不要再将它存储在 VCS 中!
保存每个构建的备份的最佳做法是什么?
为每项任务使用正确的工具。源代码管理可以管理构建的工件,但是 - 效果很差。使用工件管理器完成这项工作
我可以创建一个 svn 提交触发器,将构建压缩并复制到某个地方,而不是把它放到 svn 中吗?
是的,理论上你可以在钩子中做任何事情(构建、归档、部署),但是(再次)特殊工具可以为最终用户更轻松、更顺利地完成它(阅读“Jenkins”、“Maven”)
如何缩小我的回购规模?
创建转储,杀死转储中不需要的修订,恢复完善的转储
我可以用 svn 命令摆脱一些旧的二进制文件吗?
你不能用客户端工具来做,只能用 svnadmin-|dumpfilter-hacking dump