Mercurial (hg) на толчке GoDaddy убивается удаленно
Я установил Mercurial на учетную запись общего хостинга GoDaddy, и все, кажется, работает нормально. Я могу клонировать свою локальную машину и даже получить правильный ответ с hg outgoing
когда я буду готов подтолкнуть
Тем не менее, когда я на самом деле hg push
(это по SSH), он останавливается на "поиск изменений" на пару минут и затем умирает с remote: killed!
,
У меня нет других проблем с Mercurial ни на локальном, ни на удаленном компьютере.
Любая идея, что может быть причиной этого, или как я могу получить больше информации?
2 ответа
Я немного искал и нашел сообщение в блоге от 2007 года, в котором описывается, как процессы на GoDaddy были убиты после использования 20 секунд процессора. Когда Mercurial говорит remote: killed!
, то это обычно означает именно это: удаленный процесс был неожиданно убит.
Я вижу, вы загрузили файлы с FTP и сделали коммит на сервере, но есть лучший способ: использовать пакет Mercurial. Такой "пакет" представляет собой сжатый файл, который содержит то, что Mercurial обычно отправляет по сети в режиме push или pull.
Таким образом, вы можете запустить
you@local$ hg bundle outgoing.hg
в вашем локальном репозитории, и Mercurial сохранит исходящие наборы изменений в outgoing.hg
, Затем вы можете загрузить этот файл на свой сервер, используя FTP или любым другим способом. Когда он находится на сервере, вы можете использовать
you@server$ hg pull outgoing.hg
вытащить наборы изменений из комплекта в ваш репозиторий.
Преимущество перед FTP заключается в том, что это позволяет загружать столько наборов изменений, сколько вы хотите! Пакеты содержат все метаданные о наборах изменений (даты фиксации и сообщения, авторы, информация о слиянии и т. Д.), Поэтому, загружая и применяя пакет, вы точно передадите историю.
Вы не говорите, используете ли вы http(s):// или ssh:// URL, которые являются совершенно разными механизмами. Я отвечаю, если вы используете http(s)://, но если это не так, дайте мне знать, и я переделаю это для ssh: //:
По умолчанию push требует ssl. Если у вас нет настроенного SSL в вашей размещенной учетной записи, вам нужно запустить сервер с параметром конфигурации, который ослабляет это требование:
[web]
push_ssl = False
Также по умолчанию hgweb не разрешает нажатия от кого-либо. Если у вас нет настройки аутентификации, вам понадобится такая запись:
[web]
allow_push = *
и если вы используете настройку аутентификации, вам понадобится что-то вроде:
[web]
allow_push = you,me,them
Они идут в вашем hgweb.conf или в hgrc для репозитория или пользователя, работающего с сервером (который иногда вместо вас - apache или wwwuser или noone).
Дополнительные настройки можно найти здесь: