[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