2013-11-28 50 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 ..如何......很好)。

相關問題