Version control 如何对web应用程序实施修订/版本控制';数据

Version control 如何对web应用程序实施修订/版本控制';数据,version-control,Version Control,我相信Wordpress会将多个帖子条目存储为“修订版”,但我认为这是非常低效的空间使用 有更好的办法吗?我认为是一个使用GIT进行版本控制的Wiki,但它是如何做到的呢?我的应用程序是用PHP编写的,我必须让它与GIT对话才能提交和检索数据 那么,在web应用程序中实现版本控制的好方法是什么(例如,在博客中,它可能是帖子内容)将文章的最新版本保存在一个表中 保存新版本时,将当前版本移到存档表中,并在其上添加版本号,同时将最新版本保留在第一个表中 存档表可以使用属性ROW_FORMAT=COMP

我相信Wordpress会将多个帖子条目存储为“修订版”,但我认为这是非常低效的空间使用

有更好的办法吗?我认为是一个使用GIT进行版本控制的Wiki,但它是如何做到的呢?我的应用程序是用PHP编写的,我必须让它与GIT对话才能提交和检索数据


那么,在web应用程序中实现版本控制的好方法是什么(例如,在博客中,它可能是帖子内容)

将文章的最新版本保存在一个表中

保存新版本时,将当前版本移到存档表中,并在其上添加版本号,同时将最新版本保留在第一个表中

存档表可以使用属性ROW_FORMAT=COMPRESSED(MySQL InnoDb示例)来占用更少的空间,并且不会造成性能问题,因为很少访问它。是的,不仅仅是存储变更集,而且如果你做一些计算,你可以在几乎没有空间的情况下保留大量的修改,因为你的文章是高度可压缩的文本


在示例中,整个页面的源代码是11Kb压缩的。这为您提供了1Mb上的近100个版本。相比之下,普通文章要小得多,在1Mb上平均可以提供500-1000篇文章/版本。你可能负担得起。

我最近刚刚实现了这样一个系统——它使用了被取代记录的概念,以及以前和当前的链接。我对如何最好地实现这一点做了大量的研究——最终我得到的模型类似于Wordpress(和其他系统)——将更改存储为新记录并使用它

考虑到所有可用的选项,空间实际上是像帖子这样的创作内容的最后一个问题——媒体文件占用了更多的空间,而且这些文件无论如何都不能存储为增量

在任何情况下,Git的工作方式实际上都是相同的,它存储每个修订版的全部内容,只是它最终会打包成增量(或者当您要求它打包时)

回溯到1990年,我们使用的是SCC或RCS,有时只有30mb的可用磁盘空间,我们确实需要版本控制来有效地避免存储耗尽

考虑到现代系统的平均可用存储量,使用增量来节省空间并不值得所有相关的恶化。你可能会说这是浪费空间,但我会说,从长远来看,以原始形式存储未压缩的内容要有效得多

  • 更快
  • 搜索旧版本更容易
  • 看电影比较快
  • 不需要处理大量的增量,就可以更容易地跳转到一组更改的中间
  • 它更容易实现,因为您不必编写增量生成算法

此外,标记的表现不如带有delta的纯文本,尤其是在使用所见即所得编辑器进行编辑时

也许您需要指定一个您希望拥有VCS的级别。只需存储两个post版本,或者记住每个被按下/删除的字母作为单独的修订版本?@KromStern,我想我首先要存储两个post版本,如果可能的话,最好只存储更改。否则,存储2个职位将是琐碎的。具有差异功能将是一个有用的补充