I participate in a project, which, among other things, includes saving changes and changes in a large hierarchical document (text in HTML format). We want to enable version control of text changes and structural changes.
We currently maintain the document tree in a relational database, but as we begin to work on version control of structural changes, it is clear that we are threatened to write many functions that the version control system has.
We do not want to reinvent the wheel. Is it possible that we can use the existing version control system as a data warehouse, at least for the document itself? Presumably, we could do this by writing new versions to the file system and keeping this directory under version control (and committing programmatically, etc.), but it would be better if we could interact directly with the repository through code.
The VCS we are most familiar with is Subversion, but I'm not thrilled with how Subversion introduces changes to the directory structure - it would be nice if we could see that the particular revision involved moving the section from chapter 2 to chapter 6, and not just see the new version of the tree. This is more like the way Mercurial handles structural changes.
Any tips? Does VCS have public APIs, etc.? The project is in Java (with Spring), if that matters.
source
share