A configurable framework for document version control
Results
VControl .NET FrameworkOverview
BackgroundNNIT A/S manages a large collection of documents for use in the company. Documents exist in multiple versions reflecting their temporal development and their publication status. There is presently no version control system in place at NNIT A/S to support version control and concurrent editing of documents.
Goals
The goals of this project are:-
To design a configurable framework for version control and concurrent editing of documents.
-
To implement a prototype for client/server implementation with focus on a specific filetype.
-
To ensure that the implemented system supports extension of any filetype and the corresponding merge and diff operators.
-
To design and implement access control and metadata search functionality.
-
To add NNIT A/S document version states/version numbers and extend the model and implementation correspondingly.
-
To collect results, discuss general applicablity of architecture, use the version control system in a NNIT A/S specific setting, and discuss the realizability in NNIT's context.
Method
Phase 1 (Baseline):
-
Develop a (data) model for documents, versions, attributes (metadata) and associated client and server functionality (check-in, check-out, merging, associating and searching metadata) for a simple linear state based version control (no branches). [completed]
-
Develop a basic model/design of the client and server functionalities. [completed]
-
Identify an interesting class of documents and select a suitable, existing merge operator for that class. Justify why the merge operator is suitable for the class of documents and the way it is edited. [completed]
-
Implement the basic model as a (prototype) client/server system with the given merge operator, apply it to example/test documents from the identified class and evaluate your system with respect to. (Ignore at this point enforcement of access priviledges and metadata manipulation, but focus on support of user work processes and desired functionality.) [completed]
-
Based on the results of the evaluation, plan next phase. In particular, prioritize goals according to their relevance to the application context on the one hand and to realizability on the other hand. Aim for generating most (insight, results) given allocated remaining time. [completed]
Phase 2 (Extensions/variations, all optional and depending on results of Phase 1):
-
Extend model and implementation with access control and test to ensure that the access control model is restrictive enough to restrict disallowed. [simple access control implemented]
-
Add 'official' NNIT A/S version states/version numbers and extend model and implementation correspondingly; e.g., check-out should support 'check out published version' and the like. [partly implemented]
-
Add other desirable metadata and add a search facility for querying and retrieving documents/versions on the basis of meta-data. [metadata support implemented]
-
Investigate another document class with other merge operators. [Araxis third part merge implemented]
-
Add branches (nonlinear document states) if desired. [not implemented]
-
Consider efficient storage schemes for document states to reduce memory requirements under naive representation. [not implemented]
Phase 3:
-
Collect results. Discuss general applicablity of architecture, use in specific setting, realizability in NNIT's context (w.r.t. implementation platform; software development policies).
Milestones & Dates
Milestones in the project:
- Complete the data model, client/server model and the file type analysis.
01.03.2004 - 25.03.2004
- The completion of phase 1, including test and development.
25.03.2004 - 08.04.2004
- Phase 2: The completion of the design.
08.04.2004 - 15.04.2004
- Phase 2: Implementation.
15.04.2004 - 29.04.2004
- Phase 3
29.04.2004 - 6.05.2004.
Literature
Differencing- Zan Ouyang et al.; Cluster-Based Delta Compression of a Collection of Files
- Hunt, Vo and Tichy; Delta Algorithms - An Empirical Analysis
- Burns, Randal C. and Long, Darrell D. E.; A Linear Time, Constant Space Differencing Algorithm
- C. Burns, Randal; Differential Compression - A Generalized Solution For Binary Files
- MacDonal, Joshua P.; File System support for Delta Compression
- MacDonal, Joshua P.; Versioned File Archiving, Compression and Distribuation (unfinished paper!)
- Lindholm, Tancred; 3-way merging algorithms for synchronizing ordered trees (3DM)
- Suzuki, Nobutaka; On Merging Structured Documents with Move Operation
- Zündorf, Albert et al.; Merging graph-like object structures
- La Fontaine, Robin; Merging XML files: a new approach providing intelligent merge of XML data sets
- Monsell EDM Ltd.; Merging XML-changes with DeltaXML
- Jørgensen, Lars Georg Techau; Merging of ordered trees
- Cormen, Thomas H, et al.; Introduction to Algorithms
- Vesperman, Jennifer; Essential CVS
- Asklund, Ulf et al.; The Unified Versioning Model
- Dart, Susan et al.; Concepts in Configuration Management
- Bendix, Lars; Configuration Management and Version Control Revisited
- Chiien, Shu-Yao; Efficient Management of Multiversion Documents Versions by Object Referencing
- Christensen, Thomas Hjort et al.; Integrate version control and configuration management in a structure based editor
- Magnusson, Boris et al.; Fine-Grained Revision Control for Collaborative Software Development
- Allison, John; Parallel (Concurrent) Code Development or How to Develop Software in a Distributed Workgroup or The Concurrent Verisons System, CVS
- Hunt, James J. et al.; Selected Patterns For Software Configuration Management
- Bendix, Lars and Vincenzo, Ambriola et. al.; The Evolution of Configuration Management and Version Control
- Tichy, Walter F.; RCS—A System for Version Control
- Collins-Sussman, Ben et al.; Version Control with Subversion
- Conradi, Reider and Westfechtel, Bernhard; Towards A Uniform Version Model for SCM
- Weber, Darcy Wiborg; Change Sets Versus Change Packages
- P. Munch, Bjørn et. al.; Uniform Versioning: The Change-Oriented Model
- Gulla, Bjørn; Change-Oriented version descriptions in EPOS
- Franck, Morten et al.; .NET (bachelorprojekt foråret 2002 v. RUC)
- Liberty, Jesse; Programming C#
- Troelsen, Andrew; C# and the .NET Platform
Links
- Version Control System Comparison
- Space-efficient version storage
- PRCS
- Official RCS Homepage
- How does CVS differ from other, similar software?
- The "3DM" XML 3-way Merging and Differencing Tool
- The [NEL] Newline Character
- XCVS - unfinished page with more links
- Araxis Merge 6.5 (API for windows used in VControl)
People
Stefan Daugaard, stud.scient
Martin Tegner, stud.scient
Supervisor: Prof. Fritz Henglein, Department of Computer Science, Copenhagen University.