Как лучше всего настроить центральный репозиторий/несколько центральных хранилищ для Mercurial?

Я новичок в Mercurial и пытаюсь выяснить, сможет ли он заменить SVN. Все, с кем я работаю, использовали SVN, CVS и VSS (дрожь), так что это может быть довольно большое изменение. Мне очень интересно узнать о возможностях слияния и ветвления, но у вас есть несколько оговорок.

В настоящее время мы находимся на SVN и имеем один центральный репозиторий. Из моего чтения кажется, что нет единого централизованного репозитория для всех проектов при использовании Mercurial. ПРИМЕЧАНИЕ. Мы рассматриваем каждый проект как отдельный логический набор кода, так и решение Visual Studio. Он работает сам по себе.

В нашем одном центральном репозитории SVN имеется около 60 отдельных проектов. Прочитав о Mercurial, мне кажется, что я должен создать 60 отдельных центральных хранилищ для каждого из этих проектов на сервере. ВОПРОС № 1: Должен ли я создать единый репозиторий для каждого проекта?

Если да, то я беспокоюсь о настройке и размещении 60 отдельных центральных серверов Mercurial. Я начал думать, что могу настроить один файл, но кажется, что каждый репозиторий должен быть индивидуально настроен с использованием файла "C:...\MyRepository.hg\hgrc" (установка Windows). Также кажется, что мне нужно запустить 60 серверов ( > hg serve), я бы предположил, что на разных портах. ВОПРОС № 2: Если ответ на вопрос 1 "да", для каждого проекта должно быть одно центральное хранилище, то как люди могут управлять множеством репозиториев?

Наконец, я havent заглянул в перемещение всей истории и изменений из одного репозитория SVN в кучу отдельных хранилищ Mercurial, но был бы благодарен за любые комментарии от того, кто это сделал (или даже если это возможно).

Ответ 1

Mercurial поддерживает "центральные репозитории" просто отлично, но делает это скорее по соглашению, а не по fiat.

Вам нужно запустить только один сервер, чтобы запустить все шестьдесят репозиториев, и вы не использовали бы hg serve для него. Вместо этого вы выбираете один из методов качества производства из среди параметров публикации. Вероятно, вы запустите hgwebdir за Apache, Nginx или IIS в зависимости от ваших предпочтений.

После этого вы можете создавать новые репитеры с помощью hg init или hg clone в вашем каталоге репозиториев. У предыдущего работодателя у нас было пять продуктов с "центральным" хранилищем для каждого и от десяти до двадцати клонов каждого для разных команд и функций, все из которых выполнялись на одном сервере. Центральное репо определяет "какое должностное лицо", но вы обнаружите импровизированные репо для неофициальных функций, возникающих все время.

hg serve предназначен для двух разработчиков, чтобы спешить с некоторыми наборами изменений, но опубликованные репозитории требуют немного больше лесов.

Ответ 2

Вы создадите 1 центральный репо для каждого проекта. Если бы я был вами, я бы подумал о размещении через Kiln. Он обертывает очень хорошие инструменты обзора и хороший веб-интерфейс вокруг Mercurial с неограниченными хранилищами и хранилищем. Они заботятся обо всех неприятных кусках хостинга и резервного копирования для вас. Я также очень рекомендую учебник Joel Mercurial.

Ответ 3

Если вы ищете что-то самостоящее, посмотрите http://rhodecode.org, это намного мощнее чистого hgweb. Это похоже на маленький битбакет, который только что принимал.

Ответ 4

Проще всего вам понадобится 60 центральных "репозиториев", все из которых могут быть использованы с использованием одного контента/веб-сервера. Каждый репозиторий можно рассматривать как каталог с пути от корня контейнера сервера.

Подумайте о bitbucket или github. Они обслуживают тысячи репозиториев под одним сервером (или, скорее всего, с одной фермой серверов), но все они независимы друг от друга, в отличие от SVN, где все находится под одним гигантским репозиторием и обменивается изменениями в версиях.