Как добавить удаленные репозитории в Mercurial?
Я работаю с репозиториями Git следующим образом:
- У меня есть главный репозиторий и несколько пультов на разных производственных машинах.
- Я нажимаю производственный код на пульты дистанционного управления и перезапускает службы, чтобы изменения вступили в силу.
Я собираюсь перейти от Git к Mercurial, и я хотел бы знать, как я могу добиться чего-то подобного.
Ответы
Ответ 1
Вы добавляете записи в раздел [paths]
вашего локального файла clone .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
Не все - большой поклонник удаленного репозитория, автоматически обновляющего свои рабочие каталоги при нажатии, и это, конечно, не по умолчанию.
Ответ 2
Вы можете посмотреть hg- git Плагин GitHub:
![hg-git general idea]()
добавление возможности нажатия и выгрузки из репозитория сервера Git от Mercurial.
Это означает, что вы можете сотрудничать с проектами на основе Git от Mercurial или использовать сервер Git в качестве точки совместной работы для команды разработчиков с использованием как Git, так и Mercurial.
Примечание. Я не тестировал этот инструмент с последними версиями Mercurial.
Ответ 3
если вы хотите добавить путь по умолчанию, вам нужно работать с default
в вашем файле ~project/.hg/hgrc
. Как следует:
[paths]
default = https://path/to/your/repo
Удачи.
Ответ 4
Если вы используете 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)
.