gpt4 book ai didi

version-control - 如何在 DVCS 中适当管理大型艺术 Assets ?

转载 作者:行者123 更新时间:2023-12-03 00:58:37 24 4
gpt4 key购买 nike

是否有任何好的方法来使用 DVCS 工具(例如 hg )处理大型 Assets (即 1000 张图像、Flash 电影等)和 git 。在我看来,克隆充满 4 GB 资源的存储库似乎是不必要的开销,因为您将检查文件。如果你将源代码与资源文件混合在一起,这似乎相当麻烦。

有人对在 Web 开发环境中执行此操作有任何想法或经验吗?

最佳答案

这些是我对这个主题的一些想法。最后,您可能需要将 Assets 和代码尽可能分开。我可以想到几种可能的策略:

分布式,两个存储库

一个存储库中的 Assets 和另一个存储库中的代码。

优点

  • 在 Web 开发环境中,如果您不直接使用图形文件,则无需克隆巨大的资源存储库。如果您有一个 Web 服务器可以处理与动态内容(PHP、ASP.NET、RoR 等)分开的 Assets 并与 Assets 存储库同步,则这是可能的。

缺点

  • DVCS 工具不会跟踪除自己的存储库之外的其他存储库,因此没有任何直接的 BOM( Material list )支持,即没有明确的方法来判断两个存储库何时同步。 (我猜这就是 git-submodulerepo 的用途)。

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

  • Assets 存储库开销,即使它只影响那些使用它的人。

分布式、单一存储库

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

优点

  • 代码和 Assets 的版本控制是交织在一起的,因此 BOM 很实用。回溯是可能的,没有太多麻烦。

缺点

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

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

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

存储库外 Assets (或 CMS 中的 Assets )

代码照常在存储库中,而 Assets 不在存储库中。 Assets 应该放在某种内容/媒体/ Assets 管理系统中,或者至少放在定期备份的文件夹中。这假设几乎不需要回溯带图形的版本。如果需要回溯,则图形变化可以忽略不计。

优点

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

缺点

  • 不支持 BOM
  • 没有简单的广泛版本回溯支持,这取决于您的 Assets 的备份策略

关于version-control - 如何在 DVCS 中适当管理大型艺术 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1284669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com