Помогите запустить Mercurial в Media Temple (gs) - PullRequest
1 голос
/ 07 апреля 2010

Я установил Mercurial для файла базы знаний MT здесь .

Работа с ним на стороне сервера с использованием ssh с моего Mac работает нормально.Я могу инициализировать репозитории и тому подобное, но при извлечении с сервера или при запуске с моего Mac выдается ошибка, которую я не понимаю.

Вот что я получаю, когда вызываю hg push из моей локальной установки (хэш-метки представляют собойномер сервера):

remote: Traceback (most recent call last):
remote:   File "/home/#####/users/.home/data/mercurial-1.5/hg", line 27, in ?
remote:     mercurial.dispatch.run()
remote:   File "/nfs/c05/h01/mnt/#####/data/mercurial-1.5/mercurial/dispatch.py", line 16, in run
remote:     sys.exit(dispatch(sys.argv[1:]))
remote:   File "/nfs/c05/h01/mnt/#####/data/mercurial-1.5/mercurial/dispatch.py", line 21, in dispatch
remote:     u = _ui.ui()
remote:   File "/nfs/c05/h01/mnt/#####/data/mercurial-1.5/mercurial/ui.py", line 38, in __init__
remote:     for f in util.rcpath():
remote:   File "/nfs/c05/h01/mnt/#####/data/mercurial-1.5/mercurial/util.py", line 1200, in rcpath
remote:     _rcpath = os_rcpath()
remote:   File "/nfs/c05/h01/mnt/#####/data/mercurial-1.5/mercurial/util.py", line 1174, in os_rcpath
remote:     path = system_rcpath()
remote:   File "/nfs/c05/h01/mnt/#####/data/mercurial-1.5/mercurial/posix.py", line 41, in system_rcpath
remote:     path.extend(rcfiles(os.path.dirname(sys.argv[0]) +
remote:   File "/nfs/c05/h01/mnt/#####/data/mercurial-1.5/mercurial/posix.py", line 30, in rcfiles
remote:     rcs.extend([os.path.join(rcdir, f)
remote:   File "/nfs/c05/h01/mnt/#####/data/mercurial-1.5/mercurial/demandimport.py", line 75, in __getattribute__
remote:     self._load()
remote:   File "/nfs/c05/h01/mnt/#####/data/mercurial-1.5/mercurial/demandimport.py", line 47, in _load
remote:     mod = _origimport(head, globals, locals)
remote: ImportError: No module named osutil
abort: no suitable response from remote hg!

Mercurial на моем Mac настроен следующим образом

[ui]
username = John Smith
editor = te -w
remotecmd = ~/data/mercurial-1.5/hg

Мой локальный репо настроен следующим образом (хеш-метки представляют номер моего сервера):

[paths]
default = ssh://mysite.com@s#####.gridserver.com/domains/mysite.com/html

Mercurial на сервере настроен только с именем пользователя:

[ui]
username = John Smith

Сервер .bash_profile настроен следующим образом (согласно руководству по установке):

# Added this as suggested by the MediaTemple guide
export PYTHONPATH=${HOME}/lib/python:$PYTHONPATH
export PATH=${HOME}/bin:$PATH

Я понимаю, что это, вероятно, не проблема MediaTemple, а скорее проблема установки.Я был бы очень признателен за любую помощь в этом.Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 07 апреля 2010

Ваша установка mercurial не завершена, вы не скомпилировали модуль osutil (где-то должен быть osutil.so).

0 голосов
/ 12 апреля 2010

@ тонф

hgdebuginstall не выдало ошибок, поэтому проблема, с которой я столкнулся, была такой странной.

Благодаря вашему ответу я немного покопался и обнаружил модуль в ~/lib/python/mercurial, поэтому скопировал файл osutil.so в мою директорию ~data/mercurial-1.5/mercurial и все ... но потом все больше и больше модулей не могли Не удалось найти, поэтому я решил скопировать все содержимое одного каталога в другой, например:

$ rm -R ~/data/mercurial-1.5/mercurial/*
$ cp -r ~/lib/python/mercurial/* ~/data/mercurial-1.5/mercurial

Теперь все работает отлично. Я не понимаю, почему кажется, что Mercurial был установлен в двух каталогах, или почему один каталог (~/data/mercurial-1.5/mercurial) не получил те же файлы, что и другой (~/lib/python/mercurial).

Во всяком случае, это решение, которое я придумал. Если бы вы (или кто-либо другой) могли придумать что-нибудь более изящное, я бы все услышал, но как бы то ни было ... это работает для меня.

Спасибо за ваше время.

...