Впечатления от Fossil SCM

2013.11.26

Fossil SCM — распределённая система управления проектами (DVCS).  На мой взгляд, она идеально подходит для использования в качестве личного органайзера.  В одном репозитории содержатся файлы с контролем версий, баг-трекер и вики (markdown), причём весь репозиторий хранится в одном файле и является базой данных SQLite.  Для работы с репозиторием нужен всего один исполняемый файл, который можно развернуть за минуту на любом сервере путём копирования, причём файл этот сразу готов обслуживать и CLI, и веб-интерфейс.

Я совершенно не использую Fossil для контроля версий файлов.  Я использую его преимущественно как wiki, меньше — как баг-трекер.  Из коробки он очень прост и ограничен в функциях, например, баг-трекер не умеет слать уведомления об изменении, а вики не умеет показывать обратные ссылки.  Но за счёт простого программного доступа ко внутренностям репозитория, это всё легко сделать внешними скриптами.

Некоторые рецепты

В основном навороты на Fossil работают по принципу внешних роботов, как это принято, например, в Википедии.  Часть этих функций можно переложить на клиентские скрипты, например, корректировку типографики на страницах вики.

Уведомления об изменениях в трекере

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

Вывод обратных ссылок в вики

Встроенной функции такой нет, однако она легко добавляется снаружи.  Я написал специальный скрипт, который раз в 5 минут вытаскивает из репозитория все страницы (wiki list, wiki export), форматирует их с помощью библиотеки Markdown, находит ссылки и сохраняет их в JSON файл.  Шкура моего сайта содержит другой скрипт, который добавляет в меню всех wiki страниц пункт «обратные ссылки», при клике в него загружает созданный ранее JSON файл, выбирает нужные ссылки и форматирует выпадающее меню.  Довольно просто.

Коррекция типографики в вики

См. простой скрипт.

Следить за развитием событий можно через RSS ленту или почтовую рассылку.