0

我正在使用 docx4j 加载、操作和保存 Word 文件。一切都很完美,但有一件事我不知道如何实现它。我想要的是版本控制之类的东西——这意味着如果你保存一个文档,就可以恢复这个文档的早期版本(例如,只保存增量)。也许您可以将其描述为 SVN 或 Git 之类的东西,您可以在其中返回文件的早期版本。问题是我不知道有任何可能实现这一点。所以我希望你们中的任何人都可以帮助我。如果有人至少知道一个包或其他可以对一般文件执行此操作的东西,而不是特别是对 docx 文件,那将是很好的。谢谢你的帮助!

编辑:我很抱歉我的问题不准确。这是我在这里的第一篇文章,将来我会改进;)

4

5 回答 5

6

JGit是 Git 的 Java 实现,可以使用很少的依赖项。SVN 和 CVS 也存在类似的库。考虑到优质解决方案的存在,自制版本控制系统几乎可以肯定是一个糟糕的主意!

于 2012-11-09T20:04:29.753 回答
1

如果您想要一些纯 Java 实现文档版本控制,也许您可​​以选择:Jackrabbit

之前已经提出过类似的问题。这个问题的第一个答案(标记为正确的答案)也适用于 Jackrabbit:Using a version control system as a data backend

于 2012-11-09T20:05:27.090 回答
0

最简单的方法是使用工具diffpatch. 它们被用作 CVS 的核心。我假设您希望在未预装它们的 Windows 中运行您的应用程序。我不知道使用此工具的 Windows 版本是否容易/舒适,但您始终可以尝试自己编写类似的功能。在这里您可以找到关于查找文件之间的差异并修补它们的非常好的教程:http: //tuts.pinehead.tv/2012/09/18/introduction-using-diff-and-patch/当您知道功能时,这很容易自己写一些类似的东西。

于 2012-11-09T20:03:37.653 回答
0

我认为您应该为此使用 Git,我找到了一个名为JavaGit的 Java API ,因此您可以轻松访问存储库。使用 Git,您可以拥有一个本地存储库,您可以在其中提交文件和切换版本。如果需要,您还可以将数据推送和拉取到远程位置。

最好像 Gian 说的那样使用JGit !

于 2012-11-09T20:05:52.853 回答
0

自己实现这可能是一件棘手的事情,所以我不推荐它。

我对您的环境了解不多,但是如果您能够使用现成的版本控制存储库,您将省去很多麻烦。您可以尝试直接使用 Git 或 SVN,这可能是您的用例最简单的解决方案。

但是,由于您谈论的是 MS Office 文件,因此您可能正在实施某种形式的企业文档管理工具。在这种情况下,JCR 规范旨在提供对存储库中文件的访问,具有版本控制和其他元数据功能。这是规范

Apache Jackrabbit项目提供了该规范的开源实现,Alfresco的开发人员版本也是如此。

选择正确的解决方案实际上取决于您的用户尝试对这些文件做什么、您的部署环境是什么样的(不要尝试在 Windows 上托管 Git,k?)以及您当前的代码库的自定义程度(标准 Servlet容器?Java EE?自制?)。

祝你好运!

于 2012-11-09T20:07:01.983 回答