Как продвинуть код к нескольким серверам Подвижным?

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

12
задан Akshay 21 July 2010 в 10:25
поделиться

3 ответа

На центральном сервере вы создаете changegroup хук.

Таким образом, ваш центральный сервер будет иметь следующий hgrc:

[paths]
server2=http://server2
server3=http://server3
[hooks]
changegroup.server2 = hg push -f server2
changegroup.server3 = hg push -f server3

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

19
ответ дан 2 December 2019 в 18:17
поделиться

Я предполагаю, что один из серверов является мастер-репо, остальные - развертывания. В такой ситуации я бы взаимодействовал только с мастером и оставил развертывания на усмотрение cron:

cat >$HOME/bin/dist <<'EOM'
#!/bin/sh
cd ${1:?}
tip=$(hg tip --template '{node}')
for r in $remotes; do
  hg push -r $tip $r
done
EOM

chmod +x $HOME/bin/dist
(crontab -l; echo '*/5 * * * * $HOME/bin/dist /var/repos/master') | crontab -
0
ответ дан 2 December 2019 в 18:17
поделиться

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

[paths]
default = http://server1
server2 = http://server2

И затем сделать:

hg push default
hg push server2
1
ответ дан 2 December 2019 в 18:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: