Как вики обрабатывает несколько одновременных изменений?
Это зависит от реализации вики.
Существует ли алгоритм сравнения / слияния, которыйможно использовать для этого?
Подойдет любой алгоритм слияния, отвечающий вашим требованиям.
Как правило, это зависит от поведения, которое вам нравится в вики.Например, вы можете решить реализовать свою вики таким образом, чтобы изменение Person Two не было зафиксировано, поскольку статья была изменена, а Person Two работает над устаревшей базовой копией.Потенциально Человек Два вошел бы во что-то совершенно другое, если бы он / она знал об измененияхВ этом случае вы можете отказаться от внесения изменений в лицо Два.Это может быть достигнуто с помощью транзакционного механизма, упомянутого Куртом Дюбуа в своем ответе.
Другой вариант - реализовать подход, который всегда позволяет сохранить статью в вики.В этом случае вы можете потерять изменения Person One, в то время как при первом подходе вы потеряете изменения Person Two.
Третий подход - представить обе статьи рядом друг с другом в окне слияния.Я не знаю о вики, которая поддерживает это.Если бы это было так, мне было бы интересно, что произойдет, если одновременно три (или более) человека изменят один и тот же документ.
Так что, если вы используете вики, я бы посоветовал сохранить небольшие изменения.
Если вы реализуете вики, у вас есть выбор, как вы хотите, чтобы ваша вики-система работала.