图像数据应该在VCS中吗?

时间:2009-03-24 21:18:27

标签: image version-control binaryfiles

我们在工作场所对此进行了激烈的讨论。我们谈论的是用户上传的一堆产品图片,而不是显示基本网站所需的图片。我说“没办法”,但我很好奇其他人的想法。

更新:澄清一下。这些是客户提供的图像,用于输入/修改的产品。

6 个答案:

答案 0 :(得分:2)

询问某些内容是否应该在版本控制中的其他方式:

  • 图像会改变吗?
  • 这些更改是否与其他内容相关?
  • 可能会犯错误吗?
  • 是否需要可追溯性?

如果网站的其余部分受版本控制,则版本控制图像。

如果生成图像,则版本控制生成器。

答案 1 :(得分:2)

我同意“不可能”。

通过日常使用可能在网站上发生变化的任何内容,或者管理我认为是“内容”的网站的任何人都可以编辑。这包括上载的文件和数据库内容,两者都单独备份。一旦部署,版本控制的网站上的任何内容都不会更改。这样更容易。

答案 2 :(得分:2)

据推测,您所谈论的内容是分类为用户数据的内容,而不是项目文件。这些东西虽然很重要,但不需要版本控制 - 这需要一个普通的旧备份机制。

我最近在一个新的SVN存储库中添加了一个新项目,每次查看'uploads'文件夹时,我都意识到我在初始提交中包含它是多么愚蠢。

答案 3 :(得分:1)

您所谈论的内容似乎是数据库中(或可能是)的内容。如果客户向您提供产品列表以及这些产品的图片,那么这些都应来自数据库。在这种情况下,我不会因为您的数据库应该备份,而不是在VCS中。

如果不是,并且您的网站是静态的,那么我只会因为它是“网站的一部分”。

答案 4 :(得分:0)

如果您认为必须对其进行修订,请以某种方式将这些资源放在主存储库的路径之外,然后为该内容提供专用存储库。

您不希望每个必须检查代码的人在结帐或更新时获取每个图像的副本,其速度慢且无意义,并且将它们放在主树中只会比您想象的更令人头疼。

/common_ancestor
   /project_code/      # repository a
   /resources_dir/     # repository b

如果你必须使用符号链接或网络服务器魔术才能实现这一点,那么就这样做,但无论你做什么,都不要在你的主存储库中放置这样的内容。

就备份与修订而言,如果您使用SVN作为分发方法,那么像这样修改会给您带来轻微的,如果开发人员需要的话用于测试目的的图像副本,相对容易获得相对最新的图像集。

答案 5 :(得分:0)

如果您不打算向客户公开版本控制,那么重点是什么?

客户在提交文件之前已经可以自行使用版本控制。你可能想鼓励他们这样做。