December 4th, 2018 12:30

Versioning articles

Ana Gelez
Ana Gelez Public Seen by 46

A feature I have been thinking about for some time now, is article versioning.

Using a VCS would make collaborative edition easier to handle: if a person writes an article, then edits it, at the same time as another person, there will be a conflict between the two updated versions, we won't be able to tell which one to keep. With a VCS, we could easily display the conflict and allow it to be resolved.

I was thinking of pijul as a VCS, because even if it is uncommon and still a bit experimental, it has a great Rust API (it is itself written in Rust), and a model that is slightly different from Git for instance, that has some benefits (see

What do you think of this proposal?


roipoussiere December 4th, 2018 14:33

Imho adding a complex tool to manage conficts (ie. display diff etc.) will make the UI not very user-friendly.
Because several persons writing on the same article and publishing at the same time will not be a common scenario, a simple rule "first commit wins, second one fails and need to be edited" should be fine. This behavior is adopted in many online platforms such as Zeste de Savoir.

abdullah tarawneh

abdullah tarawneh December 9th, 2018 00:29

commits and changelogs can be limited only to the edited sentences or paragraphs, right? if two people edit unrelated sections of an article, then there should be no conflict between their edits.

Ana Gelez

Ana Gelez December 22nd, 2018 13:52

@roipoussiere I thought a bit about what you said, and indeed for a centralized website like ZdS it makes sense. But Plume is federated, so conflicts could quite easily happen I think, if federation fails once for instance.

@trwnh Yes, but we can't easily deal with two "concurrent" editions without a tool like pijul/git/whatever to merge them I think.

Marek Lach

Marek Lach April 26th, 2019 08:41

Perhaps there doesn't need to be a collaborative/federated article versioning just yet, but I am thinking article revisions (saving multiple versions of an article, or auto-saving in regular intervals...?) for each individual user could be achievable? The intention there would be to prevent accidental loss of data/allow for recovery on a per-user basis. Differenciation would not have to enter the scene with this.