Currently if two people edit the same node, one can't save. That's not nice and does not scale. Let them save to a new revision --which is not the current one-- and provide tools for conflict resolution. You probably want to display the conflicting resolutions side-by-side and point out which fields differ (it's enough if you cover core and CCK) and provide some diff integration (probably in a popup?) for textfields. This would allow any number of people to edit nodes at the same time without much difficulty. If this is too easy (sounds easy to me...) then add patching to the mix: make a patch out of the diff and try to apply it, if succeeded then great if not then go back to manual conflict resolution above. Mediawiki does this to some extent. It'd be extremely nice if besides the Drupal 6 version a D7 version could be done as well.
Check David Strauss' and my talk about this at http://www.archive.org/details/DrupalconDc2009-TheNextDecade
I am willing to mentor this project.

Comments
Sounds like a good idea,
Sounds like a good idea, would we inform users that someone else is editing?
Absolutely not
This would create a false expectation. I start editing, someone else also starts, now do we use AJAX (pounding the server) that now someone else also edits? No, the point is to scale... I know Google Docs does this. I also suspect that's a very easy feature for another contrib to implement though.
Agreed
This would be best as a separate contrib, or at least as an option that defaults to off.
Diffs
Students, there are quite a few PHP diff implementations to get ideas from, eg. http://compsci.ca/v3/viewtopic.php?t=15705
It wouldn't be a huge leap to take this to the next level and provide a live interface, ala Google Docs... maybe in GSoC 2010.
Indeed
But which diff we use is a part of the project, the research phase... that forum post there is waay too simple.
Are you looking more for a
Are you looking more for a solution that runs natively on the host rather than something written in PHP?
~Chris
~Chris
Would it also offer tools to
Would it also offer tools to administrators to lock certain nodes? I remember an incident where a television show had massive numbers of people vandalizing certain pages on Wikipedia. Wasn't there a proposal somewhere that discussed storing different revisions of a node as diffs or am I making something up? I believe it was in a discussion about using a VCS as a backend for nodes.
Either way this definitely sounds like an interesting project.
~Chris
~Chris
Again not
Locking edits is another project, albeit much smaller. This is a conflict resolver.
Nice!
I'd like to work on this idea. This is something that would be a subtle yet important addition. But there's one thing I'm not clear on, aren't we focusing on non-core tasks for GSoC? Or is this idea not on "priority" for D7?
D6 is the important
Yes, the D6 version is the focus. Porting it to D7 is great if it fits into the GSoC schedule, if not, can be done later.
Proposed!
I have submitted a proposal on this idea along with a tentative roadmap at
http://groups.drupal.org/node/20605
Please feel free to let me know where it is lacking or could be enhanced.
~Chris
~Chris
Others are welcome, too
Note that other students are free to run for this project, too.
On the side note: Audion missing in the video!!
This looks like an awesome talk, I specially wanted to hear about document based databases and drupal. The audio is missing http://www.archive.org/details/DrupalconDc2009-TheNextDecade Too bad!! does someone have a working copy?
Dipen Chaudhary
http://dipenchaudhary.com
http://playdrupal.com
Dipen Chaudhary
Founder, QED42 http://www.qed42.com Drupal development