使用版本控制系统作为数据后端

Jac*_*son 3 java version-control

我参与了一个项目,其中包括存储对大型分层文档(HTML格式文本)的编辑和更改.我们希望包括文本更改和结构更改的版本控制.

目前我们在关系数据库中维护文档部分树,但是当我们开始研究如何管理结构更改的版本时,很明显我们必须编写许多版本控制的功能系统提供.

我们不想重新发明轮子.是否有可能我们可以使用现有的版本控制系统作为数据存储,至少对于文档本身?据推测,我们可以通过向文件系统写出新版本,并将该目录保持在版本控制下(并以编程方式执行提交等)来实现,但如果我们可以通过代码直接与存储库进行交互会更好.

我们最熟悉的VCS是Subversion,但我对Subversion如何表示对目录结构的更改并不感到兴奋 - 如果我们能够看到特定的修订包括将章节从第2章移到第6章,那将会很好.而不是仅仅看到树的新版本.这听起来更像是像Mercurial这样的系统处理结构变化的方式.

有什么建议?VCS是否有公共API等等?如果重要的话,该项目采用Java(使用Spring).

Pas*_*ent 6

也许您可以使用像Jackrabbit这样的JCR(JSR-170)兼容存储库.对我来说,你所描述的正是JCR的用途.看看这篇文章.