In a collaborative project with dozens of contributors it is very important to be able to keep track of changes. For this reason, a complete versioning architecture is built into Muscat. For all resources that are mapped to a MarcXML record, all changes made to the data are preserved and previous versions of the records are stored in the system.
For each entry in Muscat it is possible to see the list of changes, with the date, the author, and the type of change. There is also a bar indicating approximately how much data was modified.
For each stage stored it is possible to see a so-called diff that shows the differences with the previous stage. The diff uses a dynamic programming algorithm for aligning and comparing the MarcXML records, implemented specifically for Muscat. It allows the changes to be highlighted. Insertions and deletions are displayed in green and red respectively, and a modification is displayed in yellow in the side bar.
For each stored stage it is possible to perform various actions, including restoring a stage or removing it from the history. A restored stage will create another stage in the history, which means that it will remain trackable in the history of the data.