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
_______________________________________________
Radiant mailing list
Post:   Radiant@lists.radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to