Возможно, всё о чём я сейчас буду рассказывать делается проще, правильнее, уже сделано, придумали ещё австралопитеки. Возможно это даже будет воспринято как издевательство над всем упомянутым, а вы зря потратите несколько минут своего драгоценного времени. Знайте — я предупреждал!
Если ещё не закрыли статью — обрисую ситуацию:
Что у нас есть
У нас есть nginx, mercurial несколько самостоятельных проектов, на каждый из которых имеется 3-4 репозитория. Ещё у нас иногда могут появляться сторонние разработчики, которым часть этих проектов показывать совершенно не обязательно.
Что предлагается: web интерфейс управления репозиториями и пользователями mercurial — hGate. Кому полезно: тем, кто использует связку Mercurial+HgWebDir и создает репозитории или пользователей чаще, чем раз в пару месяцев. Где скачать и как установить: bitbucket.org/shedar/hgate
Если Вам интересно, зачем это было делать, подробный перечень возможностей и что будет дальше — продолжаем.
Думаю, почти все читающие знают, что такое Mercurial — это распределённая система контроля версий, для исходного кода и других (преимущественно текстовых) файлов. Многие ей пользуются, и знают основные команды, как то удаление/добавление файлов, создание коммита и отправка локальных изменений в другие репозитории. Однако, Mercurial имеет множество не столь известных функций и команд, которые часто достаточно полезны и удобны. Некоторые из них можно использовать сразу после установки по-умолчанию, некоторые нужно включить в настройках, а для других может потребоваться скачать дополнительное расширение.
Краткий список того, о чём пойдёт речь в статье:
hg serve (hgweb) — встроенный веб-сервер
расширения pager, progress и color
hg [c]record — выбор отдельных изменений для коммита
revsets и filesets — поиск коммитов и файлов с запросами любой сложности
hg evolve — Changeset Evolution или же «изменяемая история»