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

Я новичок в 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 ]

11 голосов
/ 01 мая 2010

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

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

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

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

6 голосов
/ 01 мая 2010

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

2 голосов
/ 11 июля 2011

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

0 голосов
/ 02 мая 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...