【发布时间】:2013-11-28 17:32:37
【问题描述】:
好的,这真的很奇怪。我有一个旧的 Mercurial 2.02。在旧的 Ubuntu 上使用 python 2.6(我认为是 10.4)。 我们是一家橱窗店,不定期推送,所以我想要一种评论服务。它绝对适用于 windows.. pretxnchangegroup 引用驱动器上的 python 文件,有效..
但我在新的 Mercurial 2.7 上创建 Mercurial 挂钩时犯了错误,但随后发现内部 API 已更改,因此我返回并修复它,或尝试修复。我使用的是windows,但需要将hook部署到Linux,所以我使用WinSCP将py文件复制到我的主目录。然后 sudo cp 到另一个钩子文件所在的 python 2.6 发行版文件夹。
我通过 linux 机器上的模块模式调用钩子:
pretxnchangegroup.pushtest = python:mycompanyname.testcommit.exportpatches
文件夹“mycompanyname”中是文件testcommit.py,函数名为exportpatches。它在本地运行没有问题。
奇怪的是:它工作过一次,而且有点不稳定:有时它只是说函数“mycompanyname.testcommit.exportpatches”没有定义。有时它只是使用旧版本的钩子(我看到这是因为它给出了旧的异常消息而不是新的异常消息)。而且我不知道如何在python中获取异常消息,所以我迷路了..
第二个奇怪的事情:这些钩子文件也有一个 .pyc 版本,可能已经编译,但我的钩子没有得到这样的处理。那是自动编译吗?
如果我尝试使用目录方法指向文件,推送时会直接收到 500 内部错误。
我现在真的很迷茫和绝望,因为这些东西很快就会起作用,而我现在正用头撞墙..
【问题讨论】:
-
只是一个评论。在本地工作但在服务器上很奇怪??也许需要重新启动服务器??
-
本地 = 不同的 python,不同的 Mercurial,不同的操作系统;不同的一切。即使重新启动很容易,我也很难相信这是操作系统中的任何东西暂时搞砸的问题,尤其是。在 Linux 上(在 Windows 上会是另一回事..)。
标签: python mercurial mercurial-hook