[docs] Мастерство беспромедлительной публикации
Денис Смирнов
mithraen на altlinux.ru
Чт Мар 23 00:01:43 MSK 2006
On Wed, Mar 22, 2006 at 01:17:33PM +0300, Kirill Maslinsky wrote:
KM> Кстати, Денис, а возможно ли с самим wiki работать напрямую как
KM> с репозиторием, а не через web? Там ведь всё в svn хранится?
К сожалению нет, там все в MySQL хранится.
svn backend это моя мечта.
KM> 1. Полуить исходный текст страницы (например, по опред. URL)
KM> 2. <Сделать изменения, сформировать патч>
KM> 3. Отправить патч
KM> Чтобы это работало, нужно разобраться со случаем, когда в процессе
KM> шага (2) исходный документ в wiki успел поменяться.
KM> Для этого можно вместе с исходным текстом получать некий идентификатор
KM> (любой природы: номер версии, контрольную сумму, timestamp), а при отправке
KM> патча сообщить имеющийся у нас идентификатор. Если он не совпадёт
KM> с идентификатором текущей версии, то нам просто вернут ошибку, что документ
KM> поменялся. Мы сможем скачать новую версию, и сформировать новый патч.
KM> /Мне особенно нравится вариант с контрольной суммой, тогда даже отдельного
KM> идентификатора не нужно/
То бишь некий интерфейс (SOAP, или что-либо аналогичное) к базе? Да, это
было бы очень хорошо.
KM> Что скажете? Вроде бы, довольно просто, а пользы из такого
KM> интерфейса к wiki может выйти много и разной. О безопасности надо подумать,
KM> правда. Но для этого типа интерфейса можно ввести отдельные средства
KM> авторизации, не совпадающие с web-паролями к wiki.
Скажу что реализовать серверную часть вполне реально. Но без userspace
утилит она не имеет смысла.
В идеале нужно что-то a-la svn workspace (когда локально хранится две
версии -- рабочая и последняя). Тогда логику update/commit с обработкой
конфликтов вполне возможно сделать.
Я подумаю о реализации такого механизма, он бы очень облегчил жизнь всем,
кто пользуется wiki.
Хотя все-таки это изобретение велосипеда, и правильнее делать wiki поверх
svn, а не svn-like поделку вокруг wiki.
С другой стороны wiki оперирует исключительно отдельными страницами, а не
транзакциями, поэтому реализовать скорее правильнее (да и проще) поверх
CVS.
--
С уважением, Денис
http://freesource.info/
Подробная информация о списке рассылки docs