Mercurial создает процесс сервера при создании локального хранилища? - PullRequest
3 голосов
/ 21 января 2010

Сайт Mercurial говорит о создании проекта следующим образом:

Создать проект и зафиксировать

$ hg init (project-directory)
$ cd (project-directory)
$ (add some files)
$ hg add
$ hg commit -m 'Initial commit'

Мне нужен один пользователь, локальный репозиторий. Я предполагаю, что это делает трюк, верно? Вещь, которую я не понимаю, это: откроет ли он процесс сервера, или двоичный файл hg выполняет всю работу каждый раз, когда его вызывают?

Ответы [ 3 ]

10 голосов
/ 21 января 2010

Двоичный файл hg выполняет всю работу при каждом вызове.

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

Mercurial долгое время выживал с сервером, который не разрешал доступ для записи. Децентрализованная система VC действительно не нуждается в ней, или, по крайней мере, она не соответствует абсолютному требованию, которое было бы с централизованной системой. Все просто пишут в свой локальный репозиторий, а затем рекламируют свои изменения для других людей (например, хранитель «официального» дерева).

На самом деле, даже если есть центральный сервер, на который вы можете перейти, вы всегда фиксируете свои изменения в своем локальном репозитории, прежде чем отправлять их. Толчок больше похож на синхронизацию базы данных, чем на коммит, о котором вы могли бы подумать, если вы привыкли к таким вещам, как Subversion или Perforce.

Mercurial ищет каталог с именем .hg в текущем каталоге, или родительский каталог, или родительский элемент родителя и т. Д., Чтобы определить, находится ли он в репозитории Mercurial. Команда hg init будет работать для пользователей без каких-либо административных привилегий.

3 голосов
/ 21 января 2010

Нет серверного процесса, бинарный файл действительно выполняет всю работу. Это DVCS: вы работаете локально; каталог вашего проекта является рабочим каталогом и хранилищем одновременно.

Пока вы не начнете делиться своим кодом, нигде нет сервера.

0 голосов
/ 21 января 2010

Это в значительной степени делает свое дело. Но на какой серверный процесс вы ссылаетесь?

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