如何在DVCS中妥善管理大型艺术资产?

Spo*_*ike 48 version-control dvcs asset-management

有没有什么方法可以使用DVCS工具(如hggit)处理大型资产(即1000个图像,flash电影等).在我看来,克隆充满4 GB资产的存储库似乎是一个不必要的开销,因为你将检查文件.如果您将源代码与资产文件混合在一起,这似乎相当麻烦.

有没有人在Web开发环境中有任何想法或经验?

Spo*_*ike 37

这些是我在这个主题问题上的一些想法.最后,您可能需要将资产和代码尽可能分开.我可以想到几种可能的策略:

分布式,两个存储库

资产在一个仓库中,代码在另一个仓库中.

好处

  • 在Web开发环境中,如果您不直接使用图形文件,则无需克隆巨型资产存储库.如果您的Web服务器处理与动态内容(PHP,ASP.NET,RoR等)分开的资产并且正在与资产仓库同步,​​则可以执行此操作.

缺点

  • DVCS工具不跟踪其他存储库而不是它们自己的存储库,因此没有任何直接的BOM(物料清单)支持,即没有明确的方法来判断两个存储库何时同步.(我想这就是git-submodulerepo的用途).

    示例:艺术家在一个存储库中添加了一个新图片,程序员添加了使用图片的功能,但是当有人必须回溯版本时,他们不得不以某种方式自己跟踪这些更改.

  • 资产存储库开销,即使它只影响那些使用它的人.

分布式,一个存储库

资产和代码驻留在同一个存储库中,但它们位于两个单独的目录中.

好处

  • 代码和资产的版本控制交织在一起,因此BOM非常实用.回溯可以没有太多麻烦.

缺点

  • 由于分布式版本控制工具跟踪整个项目结构,因此通常无法检出一个目录.
  • 您仍然遇到存储库开销问题.更重要的是,您需要检查资产以及代码.

由于您需要克隆大型资产存储库,因此上面列出的两种策略仍然具有开销较大的缺点.这个问题的一个解决方案是上面第一个策略的变体,两个存储库; 将代码保存在分布式VCS存储库中,将资产保存在集中式VCS存储库中(例如SVN,Alienbrain等).

考虑到大多数图形设计师如何使用二进制文件,除非确实需要,否则通常不需要分支(新功能需要大量资产,直到很久以后才需要).缺点是您需要找到备份中央存储库的方法.因此,第三个策略:

存储库外资产(或CMS中的资产)

像往常一样在存储库中的代码和资产不在存储库中.资产应该放在某种内容/媒体/资产管理系统中,或者至少放在经常备份的文件夹中.这假设很少需要使用图形来回溯版本.如果需要回溯,那么图形变化可以忽略不计.

好处

  • 不会膨胀代码存储库(有助于例如git,因为它经常进行文件检查)
  • 支持灵活处理资产,例如将资产部署到专用于资产的服务器
  • 如果在具有API的CMS上,资产应该在代码中相对容易处理

缺点

  • 没有BOM支持
  • 没有简单的扩展版本的反向跟踪支持,这取决于资产的备份策略