Hi,
We are working on a proposal to have a basic versioning on published
metadata. We are working over some design we made two years ago in
Bolsena with Jesse's colaboration, but as we know that not everyone
participated, we thought it might be useful to share it here.
The idea is simple:
When a published metadata is edited, a new copy is saved on both the
database and the index marked with the draft flag. This way a user
with enough privileges can view, search and edit published metadata
without modifying what the rest of the users see about this metadata.
This is specially useful for long editings (that last more than one
session) or edits that need some kind of review from several users
before getting published.
This draft is blocked while a user is editing it to prevent other
concurrent editing with other users. This block is released either
when the editor is closed or after a timeout of inactivity.
Once the draft copy is published, the original published metadata gets
replaced with the draft copy and the draft is removed from the system.
We will probably extend the blocking system to the normal metadata
editing, as right now it can be very confusing if more than one user
edit the same metadata at the same time.
Drafts will be saved on a different table on the database, so we can
keep a unique identifier by uuid on the metadata table. The lucene
index will be the same, just adding the "draft" flag.
All this draft thing will be enabled by configuration, so you can keep
the current implementation if you want. Unless there is consense that
it should be defaulted because it doesn't make sense what we have now.
Should we make the locking over editing also configurable?
So this is the time for brainstorm. Any ideas? Any parallel
implementation? Paul remembers Simon saying something about using svn
for this, but I am not sure what was the idea and he didn't remember
it completely, so if you remember something about it, this is the time
and place.
Kind regards,
María Arias de Reyna Domínguez
Veenderweg 13
6721 WD Bennekom
The Netherlands
T: +31 (0)318 416664
Please consider the environment before printing this email.