使用mercurial 1.9和ssh引发麻烦

Dan*_*ina 10 linux mercurial

上周末(2011年7月16日)我们的mercurial软件包使用ubuntu lucid上的mercurial-stable ppa自动更新到最新的1.9 mercurial二进制文件.

现在通过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!
Run Code Online (Sandbox Code Playgroud)

在mercurial 1.9 升级说明中有一个"有趣"的说明:

contrib/hg-ssh from older Mercurial releases will not be compatible with version 1.9, please update your copy.
Run Code Online (Sandbox Code Playgroud)

有人知道如何升级(如果已经有版本)包mercurial-server?或者我们需要升级其他东西吗?(新的python脚本?)

如果没有新版本的必要软件包,如何降级到之前的1.7.5(ubuntu lucid)?

任何帮助都非常受欢迎,因为我们的开发过程确实因此而变慢.:S

谢谢

Dan*_*ina 17

好的,通过编辑python脚本找到了(解决方法)解决方案.

编辑脚本/ usr/share/mercurial-server/hg-ssh在脚本的末尾替换以下行:

dispatch.dispatch(['-R', repo, 'serve', '--stdio'])
Run Code Online (Sandbox Code Playgroud)

与线:

dispatch.dispatch(dispatch.request(['-R', repo, 'serve', '--stdio']))
Run Code Online (Sandbox Code Playgroud)

也替换:

dispatch.dispatch(['init', repo])
Run Code Online (Sandbox Code Playgroud)

与线:

dispatch.dispatch(dispatch.request(['init', repo]))
Run Code Online (Sandbox Code Playgroud)

这对我们有用.

希望通过googleing和学习python的基础知识,这可以节省4个小时的工作.:S

  • @Danilo Tommasina:如果它对你来说意味着什么,我就遇到了同样的问题,你的问题,以及你慷慨的回答,给我带来了很多时间和头痛.非常感谢! (2认同)