Version control 我想将二进制文件(媒体)从代码存储库中分离出来。值得吗?如果是,我如何管理它们?
我们的存储库越来越庞大,因为我们拥有大量的媒体(数百个1MB JPEG、数百个PDF等等) 我们签出这些存储库的开发人员必须等待异常长的时间,因为这对于某些repo来说是不正常的 以前还有其他人遇到过这种困境吗?通过将代码与媒体分离,我的做法是否正确?以下是我遇到的一些问题/担忧:Version control 我想将二进制文件(媒体)从代码存储库中分离出来。值得吗?如果是,我如何管理它们?,version-control,cvs,Version Control,Cvs,我们的存储库越来越庞大,因为我们拥有大量的媒体(数百个1MB JPEG、数百个PDF等等) 我们签出这些存储库的开发人员必须等待异常长的时间,因为这对于某些repo来说是不正常的 以前还有其他人遇到过这种困境吗?通过将代码与媒体分离,我的做法是否正确?以下是我遇到的一些问题/担忧: 如果我将这些迁移到媒体服务器中,那么我担心开发人员使用起来可能会很痛苦。如果两台服务器同时进行编程逻辑和媒体更新,他/她现在必须更新两台服务器,而不是对一台服务器进行更新 如果我将这些迁移到媒体服务器,我仍然需要对
- 如果我将这些迁移到媒体服务器中,那么我担心开发人员使用起来可能会很痛苦。如果两台服务器同时进行编程逻辑和媒体更新,他/她现在必须更新两台服务器,而不是对一台服务器进行更新
- 如果我将这些迁移到媒体服务器,我仍然需要对媒体进行版本控制,不是吗?因此,开发人员必须提交代码更新和媒体更新李>
- 开发人员如何在本地进行测试?我可以让我的网站使用绝对URL,例如
,但这在本地不起作用。我假设我必须更改我的站点模板,以决定它是本地的/开发的还是生产的,并在此基础上更改基本URL李>src=”http://media.domain.com/site/blah/image.gif“
- 这么做值得费心吗?我们处理大约100-150个站点,而不是十几个左右的主要站点,因此我们有大约100-150个存储库。我们将没有时间或资源来改变现有的网站,我们只能在全新的网站上实现这一点
- 我仍然需要将生成媒体的脚本(pdf生成器)和生成的媒体保存在代码库中,对吗?更新所有这些pdf生成器以将文件发布到外部媒体服务器将是一个巨大的难题,考虑到缓存,这将是一个额外的难题
如果您能深入了解有关管理媒体和代码的问题,我将不胜感激。首先,是的,将媒体和生成的内容(如生成的pdf)与源代码管理分离是一个好主意。
这是因为:
- 磁盘空间和签出时间(如您在问题中所述)
- 缺少此类文件实际使用的CVS功能(无差异、无合并、仅标签和分支)
您需要将发布管理流程(在正确的位置生成正确的文件)与开发流程(从一个或两个参考资料中获取正确的材料以开发/更新您的项目)分开 二进制文件通常分为两类:
- 未生成的二进制文件:
它们最好保存在工件存储库中(例如),在与VCS中文本源使用的标签匹配的标签下 - 生成的二进制文件(如您的pdf):
理想情况下,它们不应保存在任何存储库中,而应仅在发布管理阶段生成,以便部署