Управление большим количеством ртутных репозиториев на сервере
Я читал о подходе "один центральный репозиторий против нескольких репозиториев" в Mercurial (например, эти вопросы SO), и совершенно ясно, что небольшие репозитории (по одному на отдельный проект) - правильный подход.
Но это подразумевает большое количество репозиториев, где под "большим числом" я подразумеваю достаточно того, что трудно отследить, что содержит что. Я в небольшой команде (< 7 разработчиков), и с количеством проектов, над которыми мы работаем, различными ветками / версиями и т. Д., Я вижу, что у нас есть 50 или 60 репозиториев.
Существуют ли какие-либо инструменты для каталогизации / управления сервером Mercurial с десятками или сотнями хранилищ?
редактировать: я использую и SCM-Manager (в нашем межсетевом экране) и bitbucket (вне нашего межсетевого экрана). О, и, конечно, у каждого разработчика будут свои собственные локальные клоны.
Проблема не в том, как разместить большое количество ртутных репозиториев на сервере, а в том, как отслеживать их все.
2 ответа
Как предложил @Steve, веб-подход очень хорош. Таким образом, я управляю 50+ репозиториями.
У меня есть процесс запуска hg serve
в пакетном файле:
hg serve --prefix mercurial --address my-hg-server --port 8000 --web-conf hg-web.conf --accesslog hg-access.log --errorlog hg-error.log
Hg-web.conf выглядит так:
[web]
style = default
allow_push = *
push_ssl = false
[paths]
repos1 = \\hg-repos-server\repos1
repos2 = \\hg-repos-server\repos2
....
затем, получив доступ к:
http: // my-hg-server: 8000 / mercurial
Я получаю страницу со ссылками на все мои репозитории. Ссылка может быть скопирована и клонирована пользователем.
Это очень простая установка и отлично работает для нас.
Вы можете обернуть пакетный файл hg serve или сценарий оболочки для запуска в качестве службы, и вы можете поместить все это за веб-сервер Apache для управления большей безопасностью.
надеюсь, это поможет
Как вы обслуживаете эти хранилища? Если вы используете hgweb
тогда самый простой способ - добавить описания к вашему hgrc
файлы на сервере. Вы делаете это в [web]
раздел, как это:
[web]
description=Description goes here
Это добавляет описания к веб-интерфейсу, что хорошо для нас (у нас есть около 30 хранилищ)
Кроме этого, я думаю, что большинство вариантов, которые у вас есть, включают в себя выбор метода публикации на основе Интернета, который включает в себя такие функции, как Rhodecode. Другие методы публикации доступны здесь.