我正在使用notifyCi挂钩通知我的CI服务器。这不会给我带来任何问题
hg =版本2.2.1 操作系统= Linux Python 2.6.6
但是给我一个问题
hg =版本4.6.1 操作系统= Linux Python 2.7.5
看来我的hg 4.6.1版本有所更改。知道吗?
22 def notifyci(ui, repo, node=None, **kwargs):
23 """Notify the continuous integration server about pushed changesets.
24 """
25
26 (isRemote, uid) = __parse_url(kwargs['url'])
27 if not isRemote:
28 return False
29
30 ui.status(_('Notify CI'))
31 rel_repo = repo.root[len('/data/repository/'):]
32 print rel_repo
33 for rev in xrange(repo[node], len(repo)):
34 cset = repo[rev]
35 print cset
36 curl = '/usr/bin/curl -d repo=/%s -d user=%s -d changeset=%s -d branch=%s http://jenkins.com'
37 curl = curl % (rel_repo, uid, cset, cset.branch())
38 print curl
39 ui.status(_(" %s pushed changeset %s\n" % (uid, cset)))
40 #ui.status(_("%s\n" % curl))
41 if subprocess.call(curl, shell=True):
42 ui.status(_("Could not notify continuous integration server\n"))
43 return False
错误:第33行,位于notifyci中 对于xrange(repo [node],len(repo))中的rev:TypeError:一个整数是 必填
我对此进行了更多探索,发现如果我从第33行中删除repo [node],然后移到了下一个但没有给我正确的更改集。看起来问题出在repo [node]
答案 0 :(得分:1)
repo[node]
返回的对象不再可以隐式转换为整数。您需要明确获得修订号用户repo[node].rev()
第33行变为:
for rev in xrange(repo[node].rev(), len(repo)):
(免责声明:我尚未测试代码)