我目前正在将所有PHP网站导入SVN存储库。每个站点都有一个图像文件夹,其中包含所有站点图像。图像经常更新,因为大多数都提供图形。
图像(二进制文件)是否应存储在存储库中?
另一个问题是它们一直在更新。您如何更新工作副本中经常更新的图像,因为您无法在文本编辑中编辑源文件,就像您需要用更新的图像替换源文件一样,版本系统将如何处理?
答案 0 :(得分:4)
SVN能够处理二进制文件,包括(但不限于)图像。您可以像普通文本文件一样使用它。唯一的区别是一旦改变,它就会改变整体,而不是像普通文本文件那样的补丁。
答案 1 :(得分:2)
如果您想在给定时间内看到您网站的“SNAPSHOT”(跟踪历史记录中的外观),那么答案是肯定的:)。
答案 2 :(得分:1)
我们倾向于不在SVN中包含“内容”类型的图像(或其他二进制文件),因为我们处理的许多网站都有大量高分辨率图像和PDF供用户下载。对于刚从事代码工作的开发人员而言,这些功能可以让SVN结账,这是一项非常漫长的任务。
一个想法是拥有两个独立的存储库;一个用于代码,一个用于“非代码”二进制文件(即一般内容)。然后为每个站点创建一个“发布”脚本,该脚本可以导出每个仓库的相应部分以创建完整的站点。这也意味着我们的内容团队可以使用内容二进制文件,而不会冒险将他们的手指放入代码仓库;)
答案 3 :(得分:0)
当您将项目定义为“网站”时,我认为您应该保留..您将知道您的整个项目位于同一个地方,版本化,备份。您的图像也是项目的一部分。它们也经常更改或由多人工作。
SVN可以保存和版本化不同类型的文件......当然,二进制文件存在一些限制。但是你仍然可以在拥有SVN的团队中享受无忧无虑的工作。
使用挂钩脚本是在FTP主机或本地计算机上部署站点的好方法。通过使用简单的提交后脚本,您可以将您的站点复制到测试URL,并避免每次有人进行更改时复制该站点。