我们遇到的问题是客户向我们提供了包含在版本中的内容,其中包括许多视频文件。它们的内容一般都是SVN,但由于它们无法访问它,因此版本化这些大型二进制文件似乎并不适合SVN。我们的测试不需要这些文件(我们只需要测试我们是否可以发现视频),我们不负责检查/测试客户提供的内容。
所以我想知道是否有可能有一个没有版本化的SVN目录,而且只是一个常规目录,在更新/退出时仍然可以拉出来? 或者SVN有办法从非SVN源提取文件,有点像svn:externals但不看另一个repo?
是否有SVN解决方案,或者如果我们想避免对文件进行版本控制,我们应该将它们放在另一个商店中并配置构建/部署脚本以单独提取它们吗?
答案 0 :(得分:4)
唉不,subversion存储了所有提交给它的版本 - 没有设置标志来告诉它只保留最后一个版本。也许有一天在实施之后,但是请不要屏住呼吸:)
基本上,没有SVN解决方案 - 所以你需要查看文档管理服务器,或者只是一个单独的文件存储。
有一个选项可能对您有用,但如果您使用TortoiseSvn,则可以使用其client-side hooks自动将视频文件从文件存储区提取到本地系统。
全颠覆解决方案的替代方案是将视频文件正常存储在其中,但随后定期转储/过滤/加载存储库以清除旧版本。这可能需要一些时间,如果视频文件非常大,所以我不确定我是否推荐它,但如果你将它们存储在自己的仓库中,你可以简单地获取最新版本,删除整个仓库,然后重新导入您刚刚用1个版本重新初始化repo的文件。节省空间,可以编写脚本,但可能不值得麻烦只是告诉每个人“关闭你的视频文件”\ server \ videos“。
答案 1 :(得分:1)
问题是客户端与SVN存储库之间的桥梁,还是二进制文件的版本控制?
对于第二个,我认为没什么大不了的。请阅读:http://help.collab.net/index.jsp?topic=/faq/svnbinary.html
请注意文件是否是 二进制不影响数量 用于存储更改的存储库空间 该文件,也不影响 客户与客户之间的流量 服务器。用于存储和传输 目的,Subversion使用diffing 同样有效的方法 二进制和文本文件;这是 与差异完全无关 svn diff命令使用的方法。
由于大型文件的版本化对于开发人员在更新/提交小更改时可能是粗鲁的,因此您可以使用一系列专用分支。
答案 2 :(得分:0)
我不知道我是否帮助你,但据我所知,你是在你的代码和客户的巨大二进制文件之间隔离之后。
这个怎么样, 为大文件设置单独的专用SVN存储库。 仅授予客户访问该存储库的权限。 使用svn:externals将这些文件拖到代码树中。
SVN可以很好地处理大型二进制文件,如果你将它们放在一个单独的仓库中,它们就不会污染你的代码仓库。