How can I compare arbitrary revisions of a post?

Revision history is useful.

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.

7 лайков

There is no way to do this at the current time.

1 лайк

That’s exceedingly disappointing. Might it be on a roadmap somewhere?

It is not on any roadmap at the moment. I don’t think it would be super difficult to do, so there are some options:

  1. sponsor the feature by proposing a goal and budget in marketplace
  2. work on building the feature and submitting a PR yourself
  3. sponsor the feature with a business or enterprise class hosting subscription at Discourse pricing | Discourse - Civilized Discussion
7 лайков

Это всё ещё так? Я хотел бы сравнить версии сообщений, чтобы исследовать «спам редактирования» на нашем форуме в Data Explorer.

2 лайка

Сегодня я сам столкнулся с этой проблемой, читая длинную тему базы знаний на нашем внутреннем форуме. Мы также активно используем Discourse Policy, и каждый член команды должен подтвердить, что ознакомился с изменениями в темах политики базы знаний и принял их, когда увеличивается номер версии политики. Функция «Политика» очень удобна!

К сожалению, как указал автор оригинального поста ещё в 2018 году, похоже, что нет способа сравнить конкретные версии темы. Это означает, что если между версиями политики было несколько правок, вам приходится прокручивать весь документ для каждой версии, чтобы сравнить изменения с соседними.

Исторически сложившаяся функциональность работала отлично, потому что темы почти полностью посвящены обсуждениям, и редактирование постов не нужно или даже нежелательно поощрять — хотя для модерации всё же требуется история правок. Однако за годы мы добавили функции, чтобы сделать темы подходящими для совместного создания базы знаний документации. Это включает возможность превращать первый пост в вики-страницу, DiscoTOC — автоматическое оглавление, Discourse-docs: плагин управления документацией, Discourse Shared Edits, и, конечно же, политику.

Поэтому я выступаю за улучшение интерфейса для сравнения и управления версиями.

Вот как это выглядит сейчас: вы можете сравнить предыдущую версию (слева) с следующей более новой версией (справа). Навигация по версиям в нижнем левом углу позволяет переключаться на предыдущую/следующую версию или перейти к первой или последней версии.

Очевидное место для поиска существующих решений — Википедия, так как с ней знакомы люди, редактирующие вики-страницы. Страница Help:Page history - Wikipedia содержит видео, демонстрирующее всю систему версий Википедии, которая невероятно мощная, запутанная и одновременно ошеломляющая. Я мог бы представить, что реализация подобного функционала стала бы интересным проектом для тех, кто хочет внести вклад, особенно для сайтов, которые сильно полагаются на вики-темы и где приоритетом является версионирование. Неужели это может быть плагин?

Для ядра системы более простое улучшение для решения проблемы автора оригинального поста — реализовать страницу «Разница между версиями» — см. скриншот ниже. Она довольно похожа на Discourse. Обратите внимание, что навигация находится в заголовке и позволяет независимо перемещаться по левой и правой сторонам для сравнения разных версий. Кроме того, отображаются точное время и дата версии, тогда как в Discourse вам нужно навести курсор, чтобы увидеть точное время и дату.

1 лайк

Просто напоминаю о давно ожидаемом пожелании по улучшению. К сожалению, предложенные @codinghorror варианты мне не подходят, потому что…

  1. спонсировать функцию, предложив цель и бюджет в Marketplace
    У меня нет на это бюджета.
  2. самостоятельно реализовать функцию и отправить pull-запрос
    Мой основной язык программирования — английский, и я практически не пишу код на языках программирования.
  3. спонсировать функцию, оформив бизнес-подписку или подписку для предприятий на discourse.org/buy
    Опять же, у меня нет на это бюджета.

Я уверен, что эта функция была бы полезна в целом. Возможно, стоит провести какой-то опрос по популярности, чтобы помочь в приоритизации запросов на новые функции, сообщений об ошибках и т. д.?

К сожалению, Теда, вам придется подождать здесь чуть дольше, пока больше людей (а в идеале — клиентов) не попросят об этом. Полностью понимаю, что финансирование этого проекта для вас нецелесообразно.

3 лайка

Эта функция была бы полезна и для нас.

Мы используем Discourse как для документации, так и для обсуждений. Для таких компаний, как наша, возможность сравнивать две предыдущие версии является ожидаемой функцией для письменной документации.

Кроме того, наше внутреннее сообщество ориентировано на разработчиков. Для них, в частности, может быть полезно сравнивать произвольные версии.

Это отнюдь не критично, но если бы я проводил свежий анализ платформ друг против друга, это стало бы дополнительным плюсом в пользу Discourse.

2 лайка