Траблы с ртутью 1.9 и ssh - PullRequest
10 голосов
/ 18 июля 2011

В прошлые выходные (16. июля 2011 г.) наши пакеты mercurial автоматически обновлялись до новейших 1.9 mercurial двоичных файлов с использованием ppa mercurial-stable на ubuntu lucid.

Теперь извлечение из хранилища через SSH больше не работает.Отображается следующая ошибка:

remote: Traceback (most recent call last):
remote:   File "/usr/share/mercurial-server/hg-ssh", line 86, in <module>
remote:     dispatch.dispatch(['-R', repo, 'serve', '--stdio'])
remote:   File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 31, in dispatch
remote:     if req.ferr:
remote: AttributeError: 'list' object has no attribute 'ferr'
abort: no suitable response from remote hg!

В mercurial 1.9 заметки об обновлении есть "интересная" заметка:

contrib/hg-ssh from older Mercurial releases will not be compatible with version 1.9, please update your copy.

У кого-нибудь есть идея, как обновить(если уже есть версия) пакет mercurial-server?Или нам нужно обновить что-то еще?(Новые скрипты на python?)

Если новой версии необходимых пакетов еще нет, как перейти на предыдущую версию 1.7.5 (ubuntu lucid)?

Любая помощь действительно ценится какнаш процесс развития действительно замедлен этим фактом.: S

Спасибо

Ответы [ 2 ]

17 голосов
/ 18 июля 2011

Хорошо, нашли (обходное решение), отредактировав скрипт на python.

Отредактируйте скрипт / usr / share / mercurial-server / hg-ssh В конце скрипта замените строку:

dispatch.dispatch(['-R', repo, 'serve', '--stdio'])

со строкой:

dispatch.dispatch(dispatch.request(['-R', repo, 'serve', '--stdio']))

Замените также:

dispatch.dispatch(['init', repo])

на строку:

dispatch.dispatch(dispatch.request(['init', repo]))

Это работает для нас.

Надеюсь, это сэкономит кому-то еще, потратив 4 часа работы с Google и изучая основы Python.: S

0 голосов
/ 21 апреля 2012

Более свежие версии mercurial-server обновлены для поддержки изменений API, но может потребовать повторного запуска сценария refresh-auth для обновляемых установок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...