代码之家  ›  专栏  ›  技术社区  ›  Jacob Mattison

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

  •  3
  • Jacob Mattison  · 技术社区  · 16 年前

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

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

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

    我们最熟悉的VCS是Subversion,但我对Subversion如何代表目录结构的变化并不感到兴奋——如果我们能看到一个特定的修订包括将一个部分从第2章移动到第6章,而不仅仅是看到一个新版本的那棵树。这听起来更像是像Mercurial这样的系统处理结构更改的方式。

    有什么建议吗?风投有公共API等吗?这个项目是Java(带有Spring),如果它很重要的话。

    4 回复  |  直到 14 年前
        1
  •  6
  •   Pascal Thivent    16 年前

    也许您可以使用类似JCR(JSR-170)的兼容存储库 Jackrabbit 相反。对我来说,你所描述的正是JCR的目的。看看 this article .

        2
  •  2
  •   Brian Agnew    16 年前

    您当然可以通过API编程SCM。退房 SVNKit 对于Java和颠覆,或者 JGit 对于Java和Git。Mercurial似乎没有提供这种API。

    无论您做什么,都要用一个合适的API包装您的实现,这样您就可以将一个SCM换成另一个,或者在将来的某个阶段将一个SCM的概念放在垃圾箱中。不过,这很可能是解决你的问题的一个务实的办法,值得更多的调查。

        3
  •  0
  •   Keith Adler    16 年前

    尝试 http://svnkit.com/ 为了颠覆。

        4
  •  0
  •   Rickard von Essen    16 年前

    这里有一个纯java库 SVNkit EclipseSVN集成可以使用它,因此它应该相当稳定。