Documentation on how Cache Studio, and Atelier locks their Routine or Class file
I am trying to find documentation on how Cache Studio locks a Routine/Class a developer is editing.
On the flip side, I am looking for documentation on how Atelier does the same.
Ultimately I am looking for the differences and what happens if both Studio and Atelier through different developers go after the same Routine/Class.
I am not asking for an answer (however that would be nice), I am looking for pointers to documentation.
Documentation now looks quite pure about Atelier.
As far as I know, Studio does lock for any files which in edit mode, not just opened but after some changes. While Atelier does not. When you save the file in Studio, it does not care what did you have before it just overrides. When Atelier checks if server's version was changed it offers to compare and choose what should be stored on server.
Before making any change Studio will lock document. If lock fail document will not be edited and marked as "read only". All edits local. Save file will release lock on the server after save complete.
It's OK.
The winner takes it all !
Dmitry was faster.
Thank you, Mike! Indeed the results are odd sometimes. We'll investigate the case.
Sorry, I don't have any Doc reference at hands.
Eventually someone of the Atelier team has.
Out of practical observation
there is a quite fundamental shift in the editing paradigm between Studio and Atelier.
Studio does Server based editing. What you change is there and during your changing session
you lock the Class, Routine, ... So you act as single owner at that time and
anyone else trying to change something gets an immediate alert.
It's the "Highlander Principle" (according to the film) "There can be only One" http://wiki.c2.com/?HighlanderPrinciple
It's based on classical LOCK logic. "Pessimistic Locking"
Atelier acts on your local copy and no one else might know unless you use some source control. !!
At compile time your copy is checked and if it was changed you get a nice Text-Diff to decide how to to proceed.
So we see "Optimistic Locking" or "Versioning".
You can easily reproduce this:
- open some Class or Routine in Studio and do any change (e.g. Comment) but no compile or save
- open the same with Atelier. - no alert
- change it in Atelier. - no alert
- save it in Atelier. NOW you get your alert from server but you keep your local copy.
- save your copy in Studio. - you are the winner
next:
- do some dummy change in Atelier (I found no other way)
- save it in Atelier and you get the Text-Diff with your version and the actual server version
but as in past you get no hint how many changes you may have missed.
personal remark:
I think at that point latest anyone should have understood the importance of source control.
to know of an intended change in advance and his history later.
Thank you both for your answer.
Unfortunately, I cannot click on or acknowledge both answers, what a shame, it would be nice to have that capability.
Humm, just noticed that the (so called) relevant articles really have nothing to do with my question.