On Sat, Jun 06, 2020 at 11:59:47AM +0200, Thibaut Verron wrote: > > > > What I think is missing is not the description of a specific protocol, > > but a higher-level spec of basic capabilities needed for the > > collaborative editing support in Emacs. Is this available anywhere? > > If not, could someone please write it up? > > > > For example, one thing that strikes me is why "collaboration" via a > > dVCS is not a good solution, or at least the basis of a solution? Am > > I missing something? > > > > Collaborative editors usually show modifications done by other users in > real time. I don't know how major conflicts are resolved. My hunch is that conflicts aren't as heavy "in real time", because users can react to them in a more fine-grained fashion. But there's a whole body of theory dedicated to that. I'd start here [1]. Actually the problems are akin to (but possibly not as hard as) networked gaming, where you have several clients sharing a common model: you'll have to cheat a bit if you don't want to wait until you know the exact model's state, because that'd mean a full network round trip. Sometimes you can afford that, sometimes not. Balancing out that and fixing things to hide your cheating after the fact in a way that the user can cope with the fallout is, I think, the "interesting" part. > How would you emulate this with a VCS? Commit-push-pull with various > --force flags, on a timer run every second? I think network latency would kill you (or rather, your users might ;-) Cheers [1] https://en.wikipedia.org/wiki/Collaborative_real-time_editor#Technical_challenges -- tomás