帮助Mercurial在Media Temple上运行(gs)

时间:2010-04-07 13:49:16

标签: mercurial mediatemple

我已根据MT的知识库文件here安装了Mercurial。

使用我的Mac上的ssh使用服务器端工作正常。我可以初始化存储库等,但从服务器拉出或从我的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!

我的Mac上的Mercurial配置如下

[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 个答案:

答案 0 :(得分:1)

您的mercurial安装不完整,您没有编译osutil模块(某处应该有osutil.so)。

答案 1 :(得分:0)

@tonfa,

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)相同的文件。

无论如何,这是我提出的解决方案。如果你(或任何人)能够想到更优雅的东西,我会全神贯注,但事实上......这个对我有用。

感谢您的时间。