Как добавить удаленные репозитории в Mercurial? - PullRequest
97 голосов
/ 10 февраля 2011

Я работаю с репозиториями Git следующим образом:

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

Я собираюсь перейти с Git на Mercurial, и я хотел бы знать заранее, как я могу достичь чего-то подобного.

Ответы [ 4 ]

127 голосов
/ 10 февраля 2011

Вы добавляете записи в раздел [paths] файла .hg/hgrc вашего локального клона. Вот пример раздела, который будет помещен в файл .hg/hgrc:

[paths]
remote1 = http://path/to/remote1
remote2 = http://path/to/remote2

Затем вы можете использовать такие команды, как hg push remote1 для отправки изменений в этот репозиторий. Если вы хотите, чтобы удаленное хранилище обновлялось как рабочий каталог, вам нужно установить хук changegroup в том удаленном местоположении, которое выполняет обновление. Это будет выглядеть примерно так:

[hooks]
changegroup = hg update 2>&1 > /dev/null && path/to/script/restart-server.sh

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

6 голосов
/ 23 августа 2016

Если вы хотите добавить путь по умолчанию, вам нужно работать с default в вашем файле ~project/.hg/hgrc.Как следует:

[paths]
default = https://path/to/your/repo

Удачи.

5 голосов
/ 10 февраля 2011

Вы можете взглянуть на hg-git плагин GitHub :

hg-git general idea

, добавляющий возможность вставлять и извлекать Gitсерверный репозиторий от Mercurial.
Это означает, что вы можете сотрудничать в проектах на основе Git из Mercurial или использовать Git-сервер в качестве точки сотрудничества для группы разработчиков, использующих как Git, так и Mercurial.: Я не тестировал этот инструмент с последними версиями Mercurial.

0 голосов
/ 19 августа 2016

Если вы работаете в Unix и у вас установлен Git, вы можете использовать эту функцию bash, чтобы легко добавить путь к пультам без текстового редактора:

add-hg-path() {
    git config -f $(hg root)/.hg/hgrc --add paths.$1 $2
    awk '{$1=$1}1' $(hg root)/.hg/hgrc > /tmp/hgrc.tmp
    mv /tmp/hgrc.tmp $(hg root)/.hg/hgrc
}

Затем вызовите его с помощью:

$ add-hg-path remote1 https://path.to/remote1

Если кто-то хотел бы создать эквивалент Powershell, я бы тоже включил это. Другие потенциальные улучшения включают в себя проверку ошибок параметров и факторизацию вызова на $(hg root).

...