Php 应该建立一个网站';s图像文件夹和图像是否存储在SVN存储库中?

Php 应该建立一个网站';s图像文件夹和图像是否存储在SVN存储库中?,php,svn,version-control,Php,Svn,Version Control,我目前正在将我们所有的PHP网站导入SVN存储库。每个站点都有一个包含所有站点图像的图像文件夹。图像更新非常频繁,因为其中大多数都提供图形 图像(二进制文件)是否应存储在存储库中 另一个问题是它们一直在更新。如果您不能像编辑源文件一样在文本编辑中编辑源文件,那么您如何经常更新工作副本中的图像?版本系统如何处理此问题?如果您希望在给定时间内查看站点的“快照”(跟踪历史中的外观)答案是肯定的:)。SVN能够处理二进制文件,包括(但不限于)图像。您可以像使用普通文本文件一样使用它。唯一的区别是一旦更改

我目前正在将我们所有的PHP网站导入SVN存储库。每个站点都有一个包含所有站点图像的图像文件夹。图像更新非常频繁,因为其中大多数都提供图形

图像(二进制文件)是否应存储在存储库中


另一个问题是它们一直在更新。如果您不能像编辑源文件一样在文本编辑中编辑源文件,那么您如何经常更新工作副本中的图像?版本系统如何处理此问题?

如果您希望在给定时间内查看站点的“快照”(跟踪历史中的外观)答案是肯定的:)。

SVN能够处理二进制文件,包括(但不限于)图像。您可以像使用普通文本文件一样使用它。唯一的区别是一旦更改,它就作为一个整体更改,而不是像普通文本文件那样作为补丁更改。

我们倾向于尝试不在SVN中包含“内容”类型的图像(或其他二进制文件),因为我们处理的许多网站都有大量高分辨率图像和PDF供用户下载。这使得SVN的签出对于一个只处理代码的开发人员来说是一项非常漫长的任务


一个想法是拥有两个独立的存储库;一个用于代码,一个用于“非代码”二进制文件(即一般内容)。然后为每个站点创建一个“发布”脚本,该脚本可以导出每个回购协议的适当部分,从而创建一个完整的站点。这也意味着我们的内容团队可以使用内容二进制文件,而不必冒让他们的手指粘在代码repo中的风险;)

当您将项目定义为“网站”时,我认为您应该保留。。您将知道,您的整个项目都在同一个位置,进行了版本控制和备份。您的图像也是项目的一部分。。他们也经常变化或由多人工作

SVN可以保存和版本不同类型的文件。。。当然,二进制文件有一些限制。但是,您仍然可以享受使用SVN在团队中轻松工作的乐趣


使用钩子脚本是在FTP主机或本地计算机上部署站点的好方法。通过使用简单的提交后脚本,您可以将站点复制到测试URL,避免在每次有人进行更改时复制站点。

因此,如果我想替换一批图像,我是否只需将工作副本中的图像替换为新图像,然后将工作副本提交到存储库?我问这个问题的原因是因为我不认为您可以在工作副本中创建新的文件和文件夹,而更新图像基本上需要您将一个图像替换为同名的新图像。SVN非常智能地检测到更改。您可以对文件执行任何操作,下次执行提交时,它将为您执行检测。注意,如果你想删除或添加文件/目录,你需要显式地调用特定的svn命令。因为每个站点都有不同的存储库,所以我必须为每个站点创建脚本。是的,这会有点痛苦。我们有一个单一的代码repo,每个项目都有子文件夹,因此我们可能会为内容(镜像文件夹结构)留出第二个代码repo,并编写一个工具,该工具将采用文件夹名称并自动完成其余的导出。