It’s nice to be able to see the diff between any 2 adjacent revisions (revs 3 and 4, or revs 8 and 9), but this is really insufficient when a post has been changed substantially over time, or if someone makes a bunch of small changes saving each as they go, especially if they multiply revise those changes.
I very much need to be able to see the diff between, for instance, rev 3 (which I produced) and rev 9 (which is the current, having been changed by multiple edits by one or more colleagues) … because it doesn’t matter who made what changes, nor when (especially if later intervening edits undid some earlier edits); it only matters that I can see what now differs from when I last touched the post.
I just came across this issue myself today, when reading a long knowledge base topic on our internal forum. We also use Discourse Policy extensively and everyone on the team must acknowledge they’ve read and accept changes to poliy topics in the knowledge base when the policy version number is increased. Policy is a super handy feature!
Unfortunately, as the OP pointed out back in 2018, there appears to be no way to compare specific topic revisions. This means that if there have been multiple revisions between policy versions, you have to scroll through the entire document for each revision to compare changes with adjascent changes.
Historically, the current functioning has worked perfectly because topics were almost entirely about discussion and you don’t really need to or want to encourage editing of posts - though you do need some revision history for moderating purposes. But over the years we added features to make topics suitable for collaboratively creating a knowledge base of documentation. This includes the ability to wikify the OP, DiscoTOC - automatic table of contents, Discourse-docs: Documentation Management Plugin, Discourse Shared Edits, and of course policy.
So I would advocate for improving the UI around comparing and managing revisions.
Here’s what it looks like now, allowing you to compare a previous revision (left side) with the next newer revision (right side). The revision nav in bottom left corner lets you switch to the previous/next revision, or jump to the first or last revision.
Wikipedia is the obvious place to look for prior art because that’s also what people who edit wikis are familiar with. Help:Page history - Wikipedia has a video walking through the entire wikipedia revision system, which is crazy powerful, arcane and also overwhelming. I could see replicating this being an interesting project if someone wanted to contribute it, for sites that are really leaning heavily on wiki topics and where versioning is prioritized. Could it be a plugin?
For core, a smaller improvement to solve the OP is to replicate the “Difference between revisions” page - see screenshot below. It’s quite similar to discourse. Note the nav is in the heading and lets you navigate the left and right side independently to compare different versions. Also, the precise time and date of the revision is displayed whereas in discourse you have to mouseover to see the precise time and date.
Just a bump for this long-languishing feature wish. Sadly, the options provided by @codinghorror are not viable for me, because…
sponsor the feature by proposing a goal and budget in marketplace
I have no budget for this.
work on building the feature and submitting a PR yourself
My primary coding language is English, and I do virtually no coding in computer languages.
sponsor the feature with a business or enterprise class hosting subscription at discourse.org/buy
Again, no budget for this.
I’m pretty confident this would be a generally useful feature. Maybe there ought to be some sort of popularity poll, to help triage feature requests, bug reqports, etc?
Sadly Ted you are just going to have to wait here longer for more people (or ideally customers) to ask for this. Totally understand that funding this is not viable for you.
This feature would be nice for us to have as well.
We use Discourse for documentation as well as discussion. For companies like us the ability to compare two previous versions is expected for written documentation.
Further, our internal community is very developer focussed. For them in particular it can be useful to compare arbitrary versions.
It’s by no means critical but, if I was doing a fresh platform vs platform analysis, it would be an extra green tick next to Discourse.