Refactor Collaborative Editor
Based on the Refactor revisions to use a version control system proposal changed, I post this proposal.
The problem
Core only allows the first user that sumbit the node form to save the changes; so the others have to see the saved node again and manually make the changes, hoping no other user save it before he does it. Clearly, it's a really slow way to make a contributed document.
In 2006's edition of Google Summer of code a student made collaborative_editor module, giving this facility. But I think it's not so good managing revisions.
During this Summer of Code, I want to make the simultaneous editing better, using the better tool I found in my research. The initial list of posibilities to handle the changes include: some VCS, COMET, AJAX(used in the module).
Why?
Drupal is growing up and it is being used to different kind of websites, but it's not widely used by wikis. So it is a potentially new group of users who can make grow up Drupal still more.
Simultaneous editing improve user interaction inside a web, which is a notably a usability feature, which is one of the planned improvements goals in Drupal 7.
Reactivate the life of the collaborative_editor module developed on GSOC 2006, that actually has no activity.



do you want feedback?
I was looking into this myself, and there are a few things that I find unclear in your proposal. First question I have is, what is the better tool?
I think there are several challenges that I ran into on this project, and I would be happy to go over them with you. I think it would suck that you engage on this project for awhile, and then just discover that your original goals were ill defined, and that the goals you have chosen are in fact quite challenging.
I never saw the collaborative editor as trying to be a wiki. I think of those things as different things, and thats really the main issue I see with your proposal. It seems like you have set your goal is to combine 3 things, real time, wiki, and drupal. Trying to combine any 2 of those has yet to be done (I think) and is a project in and of themselves.
I actually have no idea how the SoC works, so I don't know what you are looking for atm.
Why not?
Why not just do some collision detection and alert someone when another is doing editing?
Could also have a time out so if someone walked away for too long it would pop up a warning to them and in another bit of time log them out of the edit form and then notify others waiting in the cue?
Seems simple to me! Though admittedly I've not installed the wiki module in question ... this is just a quick thought!
Maybe for a more live interface you can treat the different tags or classes... etc with collision detection, so any given user only has control of the paragraph or lines they are editing.
What is the granularity of
What is the granularity of changes you want to track? Paragraph? Sentence? Line?
Simultaneous editing is rather cool and definitely useful, but using a VSC is an overkill (IMHO), even if you want to support a distributed undo.
Some collision detection and signalling between different editors + the current or improved revision system should be sufficient.
Having said that, the current collaborative editor is stale, needs lots of tlc, which probably will make it smaller and simpler, since drupal has jquery on the client side now.