[Pmwiki-users] Brainstorm (Page Locks)

Patrick R. Michaud pmichaud
Thu Apr 8 10:48:11 CDT 2004


On Thu, Apr 08, 2004 at 09:03:00PM -0700, Steven Leite wrote:
> 
>    When a  user click on Edit Page, the page get's locked (so nobody else
>    can  edit it).  PmWiki records the current time somewhere, and makes a
>    note  that this page can't be edited for x minutes (whatever amount of
>    time the admin decides on).

Many people have commented that they don't want locks that prevent
others from editing.  Plus it gets worse -- read on:

>    The  author  can  extend  their  edit  time  simply by clicking on the
>    Preview  button.  [...] 
>    If  a  page  lock  is  set  to a
>    reasonable 10 minutes, the longest time a person would have to wait is
>    10  minutes  for  the  lock  to  be  released.   

Actually, a person would have to wait until 10 minutes after the
previous person finishes editing -- i.e., if the original author
presses preview then the lock is extended by another 10 minutes.
Thus, the person waiting really doesn't know how long he/she will
have to wait.

Also, what happens if the original author takes longer than 10 minutes
to edit a page and forgets to press Preview within the 10 minute time
period?  Suddenly that author may discover that someone else has grabbed
the lock.  Worse, this occurs after having spent at least 10 minutes
writing/and editing, which would be really annoying.  A similar problem
can arise if an author starts to edit a page and accidentally closes/
leaves the edit page in the browser--that author might not be able to 
return to edit the page for 10 minutes because it's currently locked.
(Cookies are not a true solution here, because not all browsers or programs
used to edit wiki pages support cookies.)

>    You could go one step
>    further,  and  instead  of giving an error message during a page lock,
>    you can say "Sorry, $Author is currently editing that page.  Try again
>    after x minutes". 

To me, all of this violates the spirit of PmWiki Philosophy #2, which 
is to make things as easy on authors as possible.  

The scheme above is a form of "conflict prevention" -- trying to make it
impossible for conflicts to occur.  Unfortunately, such prevention may
inconvenience authors unnecessarily--i.e., by preventing access to a
page when a conflict was not actually about to occur.

I believe that what we really need is "conflict resolution" -- 
making it easy to detect/resolve/recover from a conflict when it
occurs.  Since conflicts are relatively uncommon, it makes much more 
sense to create mechanisms to fix problems when they occur,
rather than to try to prevent them in the first place.  Indeed, the
philosophies of both wiki and open source development are based on the
idea that it's often better/cheaper/easier/more robust to have 
mechanisms to easily find and fix mistakes that occur rather
than to try to prevent them from ever occurring.

Pm



More information about the pmwiki-users mailing list