Mercurial Server является обязательным для использования Mercurial? - PullRequest
5 голосов
/ 22 сентября 2011

Я пытаюсь выбрать программное обеспечение для контроля версий для нашей команды, но у меня не было большого опыта для этого раньше. После поиска и поиска в Google, кажется, Mercurial - хорошая попытка. Тем не менее, я немного запутался в некоторой общей информации об этом. По сути, в нашей команде всего 5 человек, и мы все подключаемся к серверу, который будет использоваться для хранения репозиториев. Сервер представляет собой систему Redhat Linux. Мы, вероятно, используем много централизованного рабочего процесса. Поскольку мне нравится идея локального коммита, я все еще предпочитаю программное обеспечение типа DVCS. Сейчас я пытаюсь установить Mercurial. Вот мои вопросы.

1) Всегда ли на сервере, используемом для репозиториев, должно быть установлено программное обеспечение "mercurial-server"? Или это зависит от того, какой рабочий процесс он использует? Другими словами, правда ли, что если для работ не используется централизованный рабочий процесс, то сервер может быть установлен "Mercurial Client"?

Меня смущает термин "mercurial-сервер". Или это означает, что Mercurial, установленный на сервере, всегда называется «Mercurial Server», и это имеет значение, если он централизован или нет. Кроме того, поскольку мы все работаем на этом сервере, означает ли это, что для установки на нем требуется только одна копия Mercurial? У всех нас есть свой собственный каталог пользователя, такой как / home / Cassie, / home / John, ... и /home/Joe.

2) Является ли SSH обязательным? Или это зависит от того, какая связь между пользователями и сервером? Так как мы все работаем на сервере, SSH не требуется, верно?

Большое спасибо,

Ответы [ 3 ]

8 голосов
/ 23 сентября 2011

Есть две вещи, которые можно назвать «ртутными серверами».

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

Второй может быть конкретное программное обеспечение, которое позволяет Mercurial для удаленного подключения. Есть много опций для самостоятельной настройки, а также опции для других удаленных хостингов .

Посмотрите на первую ссылку для списка различных вариантов подключения. Но в качестве конкретного ответа на вопрос № 2: Нет, вам не нужно использовать SSH, но это часто самый простой вариант, если вы в любом случае используете его в среде.

Термин, который вы, вероятно, хотите использовать, а не «mercurial server», называется «удаленное хранилище». Этот термин используется для описания «другого хранилища» (того, от которого вы не выполняете команду) для команд push / pull / clone / входящий / исходящий / others-that-i-am-забываю. Удаленный репозиторий может быть либо другим репозиторием на том же диске, либо чем-то другим по сети.

4 голосов
/ 23 сентября 2011

Обычно вы используете один общий репозиторий для совместного использования кода разными разработчиками.Хотя технически вам это не нужно, у него есть преимущество в том, что его легче синхронизировать, когда есть место для свежего программного обеспечения.

В простейшем случае это может быть репозиторий на простом общем ресурсегде возможна блокировка файлов (NFS или SMB), где у каждого разработчика есть доступ на запись.В этом сценарии нет необходимости устанавливать Mercurial на сервере, но есть недостатки:

  • У каждого разработчика должна быть установлена ​​версия Mercurial, которая может обрабатывать версию репо на общем ресурсе (какНапример, когда репо на общем ресурсе создается с помощью Mercurial 1.9, разработчик с версией 1.3 не может получить доступ к этому репо)
  • Каждый разработчик может выполнять разрушительные операции с общим репо, включая удаление всего репо.
  • Вы не можете надежно запускать перехваты в таком репо, поскольку перехваты выполняются на машинах разработчика, а не на сервере

Я предлагаю использовать http или sshметод.Для этого на сервере должен быть установлен Mercurial (я не принимаю во внимание метод http-static, поскольку вы не можете использовать http-статический путь), и получите следующие преимущества:

  • версия mercurial на сервере не обязательно должна совпадать с версией клиентов, так как mercurial использует независимый от версии проводной протокол
  • вы не можете выполнять деструктивные операции через эти протоколы (вы можете толькодобавить новые ревизии в удаленный репозиторий, но ни в коем случае не удалять их)

Выбор между http и ssh зависит от вашей локальной сетевой среды.Преимущество http в том, что он обходит многие корпоративные брандмауэры, но вам нужно позаботиться о безопасной аутентификации, когда вы хотите перенести материал через http обратно на сервер (или не хотите, чтобы все видели контент).С другой стороны, у ssh есть недостаток, который может потребоваться для защиты сервера, так что клиенты не могут запускать там произвольные программы (это зависит от того, насколько надежны ваши клиенты).

2 голосов
/ 05 октября 2011

Я второй ответ Руди, что вы должны использовать http или ssh доступ к главному хранилищу (мы используем http на работе).

Я хочу ответить на ваш вопрос о "mercurial-сервере".

Базовое программное обеспечение Mercurial предлагает три режима сервера:

  1. Использование hg serve;это обслуживает один репозиторий, и я думаю, что он больше используется для быстрых взломов (когда основной сервер не работает, и вам нужно получить некоторые изменения, например, от коллеги).
  2. Использование hgwebdir.cgi;это скрипт cgi, который можно использовать с HTTP-сервером, например Apache;он может обслуживать несколько репозиториев.
  3. Использование доступа по ssh (Secure Shell);Я не знаю много об этом, но я считаю, что его сложнее настроить, чем вариант hgwebdir

Существует также отдельный программный пакет, называемый "mercurial-server".Это обеспечивается другой компанией;его домашняя страница http://www.lshift.net/mercurial-server.html. Насколько я могу судить, это интерфейс управления для варианта 3, сервера Mercurial SSH.

Итак, нет, вам не нужен сервер Mercurial.установлены;пакет mercurial уже предоставляет сервер.

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