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).

Дополнительные настройки можно найти здесь:

http://www.selenic.com/mercurial/hgrc.5.html

Другие вопросы по тегам