cSvn — это web-интерфейс к Subversion-репозиториям. Основу cSvn представляет CGI-скрипт написанный на языке С.
 В мае 2020 года был опубликован релиз очередной версии Apache Subversion 1.14.0. В свете этого события, был создан новый, современный web-интерфейс для просмотра Subversion-репозиториев на любых устройствах. Это весьма позитивная новость для тех, кто использует централизованные системы версионного контроля по тому, что до вчерашнего дня существовал лишь один достойный web-UI (WebSVN), написанный на PHP и, к сожалению, отстающий от современных требований.
 В данной статье рассматривается установка и настройка cSvn для работы с использованием Nginx + uWsgi. Настройка серверных компонентов достаточно проста и практически не отличается от настройки cGit.
 На стороне клиента работает элементарный JavaScript составляющий не более 350 строк и таблица стилей размером 24K в распакованном виде. Markdown-тексты обрабатываются на стороне сервера с помощью библиотеки md4c, которая успешно зарекомендовала себя в проекте KDE Plasma.
 Вместо screenshot-ов, лучше посмотреть на работающий cSvn-сервер. 
 Стоит заметить, что с помощью cSvn можно просматривать не только собственные репозитории, но и настроить просмотр сторонних ресурсов по протоколам HTTPS и SVN.
 cSvn использует библиотеки libpcre2, md4c, libmagic, входящую в состав пакета File и libxml2. На сервере должны быть установлены: HTTP-сервер Nginx, сервер uWsgi и, разумеется Apache Subversion.
 cSvn пакет состоит из двух частей. Первая представляет собой обычный Linux демон, который отвечает за разбор конфигурационного файла /etc/csvnrc. Вторая – непосредственно является CGI-скриптом, отвечающим на HTTP-запросы клиента. Обе части устанавливаются одновременно.
 Получить исходный пакет cSvn можно двумя способами: загрузить с FTP-сервера или с помощью Subversion:
 Если использован второй способ, то перед сборкой пакета необходимо приготовить исходные тексты для их последующего конфигурирования. Для этого нужно воспользоваться скриптом bootstrap:
 который установит Autotools средства, соберет коллекцию aclocal.m4 и создаст configure скрипт.
 Сборка и установка cSvn ни чем не отличается от любых других продуктов, использующих средства Autoconf, Automake:
 Здесь, параметр --with-scriptdir определяет место установки CGI-скрипта и связанных с ним файлов, необходимых для работы сервера cSvn. Далее, в описании настроек сервера Nginx, мы будем использовать именно этот каталог. Разумеется, пользователи могут настроить работу cSvn и виртуального HTTP сервера относительно любого другоро каталога.
 После инсталляции пакета cSvn необходимо отдать права на каталог /var/www/htdocs/csvn пользователю, от имени которого работает Nginx:
 Перед первым запуском сервера cSvn необходимо создать конфигурационный файл /etc/csvnrc, в котором должны быть определены все обязательные переменные и описан хотя бы один репозиторий.
 На странице руководства csvnrc(5) приведен рабочий файл конфигурации сервера:
 Его можно использовать как начальный шаблон.
 После создания конфигурационного файла /etc/csvnrc можно проверить работу csvnd(8) демона.
 В случае работы на системе с BSD-like инициализацией, для запуска csvnd(8) демона достаточно выполнить команду
 Для систем использующих systemd, необходимо воспользоваться утилитой systemctl:
 При сборке и установке исходного пакета cSvn, устанавливается start/stop-скрипт /etc/rc.d/rc.csvnd. Если же речь идет о системах использующих systemd, то для установки cSvn лучше использовать бинарный RPM или pacman пакет, поскольку в таких пакетах файл /etc/rc.d/rc.csvnd заменяется на Systemd Unit,
 устанавливаемый в каталог /usr/lib/systemd/system.
 Если для используемой вами системы еще не создан пакет cSvn, то вы его можете приготовить самостоятельно, по инструкциям, приведенным к каталоге doc/build-packages.
 Если же вы не хотите создавать пакет для вашей системы, то вы можете просто поместить файл csvnd.service в каталог /usr/lib/systemd/system/ и выполнить запуск демона самостоятельно.
 После запуска csvnd(8) демона надо убедиться в существовании файла /dev/shm/csvn.bcf и, в случае его отсутствия посмотреть на ошибки приведенные в /var/log/csvnd.log файле.
 Поскольку на этапе конфигурирования мы выбрали для инсталляции cSvn CGI-скрипта каталог /var/www/htdocs/csvn/, файл /etc/uwsgi/csvn.ini должен ваглядеть следующим образом:
 Здесь переменная cgi устанавливает полное имя CGI-скрипта cSvn.
 Для запуска uWsgi демона на системах с BSD-like инициализацией, такой как Slackware, необходимо создать start/stop скрипт следующего вида:
 Дать ему права на выполнение
 и добавить следующие строчки в файлы /etc/rc.d/rc.M, /etc/rc.d/rc.6, соответственно:
 Конфигурационный файл, для выбранного нами каталога установки и домена csvn.example.org должен выглядеть следующим образом:
 После создания файла /etc/nginx/vhosts/csvn.example.org.conf его необходимо включить в основной конфигурационный файл Nginx:
 После запуска uWsgi и Nginx можно заняться настройкой репозториев используя руководство csvnrc(5).
 Все необходимые файлы для работы на стороне web-клиента находятся в каталоге /var/www/htdocs/csvn/.csvn/. Редактируя файл /.csvn/html/header.html и меняя значения переменных в файле /etc/csvnrc, пользователь может сменить favicon.ico, поменять тему подсветки синтаксиса, выбрать изображения для собственных репозиториев, задать ключевые слова для поисковых систем, а также выполнить множество других настроек своего сервера.
 Внешний вид интерфейса определяется единственным CSS-файлом и поэтому, пользователь может поменять тему web-интерфейса так, как ему будет необходимо.
 Посмотреть на рабочую копию cSvn сервера можно здесь.