[Radiant] Conflicting updates
Brian Gernhardt
benji at silverinsanity.com
Tue Mar 20 09:39:50 CDT 2007
On Mar 20, 2007, at 8:13 AM, Jacob Burkhart wrote:
> Jacob Burkhart wrote:
>> Don't know if this is a good idea, just throwing it out there...
>>
>> Some CMSs use the concept of "checked out" and "checked in"
>> content. As
>> soon as a user starts editing a page it becomes "checked out" and
>> nobody
>> else can edit it. You can even save your changes without checking-in
>> the file. Then, you can display in the tree view who has what files
>> "checked out". And, perhaps an admin would have the ability to
>> "force
>> check in" for a page.
As a developer who has used multiple SCMs that have that
"feature"... Oh please no. Dear god, that's horrid. Having that
kind of locking is a huge mess and tends to create more problems than
it solves. Not the least of which is "how does the admin know if he
should force the check in".
> Or, Maybe it's time to consider addding versioning and history
> tracking.
> If we detect a simulatneous edit, we simply save both versions..
> one of
> those versions is the later version and one of them is the earlier
> version. The User saving the later version would be notified of the
> conflict and be able to use the history and rollback functionality to
> resolve the conflict...
Yes. True version control is probably the way to do. Attempting a
three-way merge and showing conflicts (at least on page parts, a la
Wikipedia) is even better than simply notifying of the issue.
Version control is non-trivial, but extremely useful.
I believe there are functions to find the differences between objects
in ActiveRecord, which could help, although I don't know how to make
a good API for that to the user. We also do run into issues with
extensions adding fields and possibly new associations. Blarg.
~~ Brian
More information about the Radiant
mailing list