Нажмите несколько удаленных репозиториев из одного локального репо в Mercurial
Я рассматривал возможность использования AppHarbor для размещения облегченного сайта и изучения их интеграции Mercurial.
В настоящее время я использую Kiln для своих удаленных репозиториев, но в настоящее время AppHarbor поддерживает только поддержку BitBucket.
Возможно ли иметь 2 удаленных репозитория для одного локального репозитория? Поэтому, когда я нажимаю на себя из своего локального, они оба получают нажатие?
Я никогда не хочу вытаскивать из BitBucket, просто нажмите, чтобы его можно было захватить AppHarbor и развернуто.
Ответы
Ответ 1
Вы можете установить несколько псевдонимов удаленного репозитория в разделе [paths]
файла конфигурации репозитория. Этот файл находится в .hg/hgrc, и вы добавили бы пути, подобные этому
[paths]
default = http://kilnhg.com/repo
bitbucket = http://bitbucket.org/repo
Затем вы запустите hg push bitbucket
, чтобы нажать на битбакет и hg push
, чтобы нажать в печь, что также по умолчанию здесь. Псевдоним default
- это тот, который используется, когда вы ничего не указываете. Таким образом, нажатие и выключение без аргументов будет использовать ваш предпочтительный удаленный хост, печь.
К сожалению, вы не можете выполнить команду типа hg push *
для одновременного нажатия на все удаленные хосты, вы должны указать каждый пункт назначения по одному.
Ответ 2
Я не уверен, что вы можете редактировать файл hgrc на Bitbucket/Kiln. Если возможно, вы можете сделать это автоматически. Если нет, вы можете нажать на другую локальную копию, которая затем подталкивает к Битбакет и Килну с помощью Крюков. См. этот ответ Тон (см. Ниже для удобства):
На центральном сервере вы создаете крюк changegroup.
Таким образом, ваш центральный сервер будет иметь следующий hgrc:
[paths]
server2=http://server2
server3=http://server3
[hooks]
changegroup.server2 = hg push -f server2
changegroup.server3 = hg push -f server3
У вас может быть несколько крючков для одно и то же событие, так что это не должно быть вопрос. Преимущество changegroup перехватить набор изменений крюк в том, что он работает намного реже.