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

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

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

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

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

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

4 ответа

Решение

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

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

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

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

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

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

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

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

Другие вопросы по тегам