Краткая версия
Что предлагается: web интерфейс управления репозиториями и пользователями mercurial — hGate.Кому полезно: тем, кто использует связку Mercurial+HgWebDir и создает репозитории или пользователей чаще, чем раз в пару месяцев.
Где скачать и как установить: bitbucket.org/shedar/hgate
Если Вам интересно, зачем это было делать, подробный перечень возможностей и что будет дальше — продолжаем.
Предыстория
В последнее время Mercurial прочно вошел в ту часть моей жизни, которая связана с программированием. Все рабочие проекты по умолчанию отправляются в систему контроля версий, личные, тестовые и экспериментальные – тоже, если они живут больше нескольких дней или имеют практическую ценность. Для доступа к репозиториям был настроен HgWebDir в связке с nginx.Всё было бы хорошо, если бы не одно «но» – HgWebDir позволяет просматривать список репозиториев и изменений, но он не предназначен для управления репозиториями и пользователями. Для создания нового репозитория, для настройки прав доступа, создания пользователя или смены пароля приходилось заходить на сервер консолью и выполнять соответствующие действия.
В поисках готового решения
Опыт подсказывал, что если проблема существует не первый день, то кто-то её пытался решать. Впечатление наиболее завершенного из найденных производил скрипт phpHgAdmin. Но радость длилась недолго. Установив его на двух разных серверах, получил одинаковый результат. Основные проблемы:— Группы и репозиории смешивались в странном порядке;
— Группы не открывались;
— Настройки репозиториев, созданных не им, редактировались с проблемами;
— Решающая проблема – проект не развивается, автор на связь выходит, но не более того.
Свое решение
Прикинув «за» и «против» доработок phpHgAdmin и создания своего решения, было решено создать своё. К счастью, нашлось еще два человека, готовых поучаствовать, которых заинтересовала идея. К несчастью, одного из них почти сразу засосала работа. Огромное спасибо Андрею (gavaec) за то, что взял на себя большую часть работы по проекту.Технические особенности
Язык: python;Фреймворк: django;
OS: Linux
Сайт: bitbucket.org/shedar/hgate
Функциональные возможности
— создание репозиториев— управление пользователями (создание, удаление, смена пароля)
— создание, удаление, изменение групп репозиториев
— редактирование основных параметров файла настроек hgwebdir
— настройка прав доступа репозиториев
— редактирование основных параметров репозиториев
— просмотр прав доступа пользователя — показывает матрицу прав на различные репозитории
Как это выглядит
Главная:
Редактирование настроек репозитория:

Управление пользователями:

Известные недоработки
— Не поддерживается авторизация, ограничение доступа нужно делать средстваним web сервера— поддерживается редактирование не всех параметров файлов настроек
— коллекции репозиториев должны задаваться через секцию paths, как рекомендуется в руководстве, секция collections на текущий момент не поддерживается.
План развития
Что планируется в ближайшем будущем, помимо причесывания и повышения надежности существующего кода:— Контроль правильности всех настроек hGate для облегчения установки и поиска проблем
— Более полная поддержка параметров конфига
— Поддержка нескольких профилей. Когда на одном сервере крутится несколько независимых экземпляров mercurial, хочется, чтобы все они управлялись через hGate
— Собственная авторизация
— Полная поддержка групп с высокой вложенностью (вида /home/hg/demo/**)
— Локализация
Если у Вас есть пожелания и предложения – пишите. Для ошибок и проблем открыт багтрекер.