2013-11-28 51 views
0

好的,这是真的很奇怪。我有一个旧的Mercurial 2.02。在旧的Ubuntu上使用Python 2.6(我认为是10.4)。 我们是一家窗口店,不定期推送,所以我想要一种评论服务。它绝对工作在Windows .. pretxnchangegroup引用驱动器上的python文件,工作..Mercurial hook:更改后不重新编译?

但我犯了一个新的Mercurial 2.7上创建Mercurial挂钩的错误,但后来认识到内部API更改,所以我得到回来并修复它,或试图。我使用Windows,但需要将钩子部署到Linux,所以我使用WinSCP将py文件复制到我的主目录。然后sudo cp它到另一个hook文件所在的python 2.6 distro文件夹。

我通过在Linux中的模块模式调用挂钩:

pretxnchangegroup.pushtest = python:mycompanyname.testcommit.exportpatches

在文件夹“mycompanyname”是文件testcommit.py和功能被命名为exportpatches。它在本地工作没有问题。

奇怪的是:它曾经工作过一次,有点不稳定:有时它只是说“mycompanyname.testcommit.exportpatches”这个函数没有定义。有时它只是使用旧版本的钩子(我认为这是因为它提供了一个旧的异常消息而不是新的消息)。我不知道如何获得python的异常消息,所以我迷失在那里..

第二个奇怪的事情:这些钩子文件也有一个.pyc版本,可能编译,但我的钩子没有得到这种治疗。那是自动合并?

如果我尝试使用目录方法指向该文件,那么在推送时会出现500内部错误。

我真的失去了和绝望现在,因为该材料具有相当工作不久,和我撞我的头靠在墙上现在..

+0

只是一个评论。在本地工作,但在服务器上奇怪?也许需要服务器重启? – santiagopim

+0

本地=不同的python,不同的Mercurial,不同的操作系统;不同的一切。即使重新启动很容易,但我很难相信这是操作系统中任何暂时搞砸的问题,尤其是,在Linux上(在Windows上,这将是一个不同的故事..)。 – hko

回答

0

我不知道到底发生了什么,但它的接缝像是没有使用脚本,因为例外以某种方式禁止它编译为pyc,并且Mercurial以某种方式获取了该pyc文件的旧版本。不太确定,但这是我最好的猜测(因为某种方式似乎没有其他人似乎有一个想法,而且Mercurial的人很清楚他们只回答他们的邮件列表中的东西,而不是SO ..如何......很好)。

相关问题