[oi-dev] mercurial is updated to 2.7
Alexander Pyhalov
alp at rsu.ru
Fri Aug 30 14:35:02 UTC 2013
On 08/19/2013 16:44, Alexander Pyhalov wrote:
> I've just updated mercurial to 2.7 in /hipster. It works for me...
And fails for anyone other.
Yesterday I tried to identify the error. So far, didn't find it. It
seems I'll have less free time in the next days, so, here I'd like to
summarize my findings if someone would like to dive into it.
1) Any recent mercurial version (2.5,2.6,2.7) fails to pass its tests
when built with python 2.6. Mercurial 2.7 built with Python 2.4 seems to
be more adequate. It fails only 5 tests from its testsuite. Mercurial
2.7 built with Python 2.6 fails 8 tests of 12, then tests hang. The
reason is that hg server process throws exception in one of the tests.
127.0.0.1 - - [29/Aug/2013 18:42:57] Exception happened during
processing request '/a/atom-log':
Traceback (most recent call last):
File
"/tmp/hgtests.9lt3oH/install/lib/python/mercurial/hgweb/server.py", line
77, in do_POST
self.do_write()
File
"/tmp/hgtests.9lt3oH/install/lib/python/mercurial/hgweb/server.py", line
70, in do_write
self.do_hgweb()
File
"/tmp/hgtests.9lt3oH/install/lib/python/mercurial/hgweb/server.py", line
137, in do_hgweb
for chunk in self.server.application(env, self._start_response):
File "/tmp/hgtests.9lt3oH/install/lib/python/mercurial/util.py", line
358, in increasingchunks
for chunk in source:
File "/tmp/hgtests.9lt3oH/install/lib/python/mercurial/templater.py",
line 389, in _flatten
for j in _flatten(i):
File "/tmp/hgtests.9lt3oH/install/lib/python/mercurial/templater.py",
line 382, in _flatten
for i in thing:
File "/tmp/hgtests.9lt3oH/install/lib/python/mercurial/templater.py",
line 185, in runmap
for i in d:
File
"/tmp/hgtests.9lt3oH/install/lib/python/mercurial/hgweb/webcommands.py",
line 207, in changelist
revs = (revs.next(),)
AttributeError: 'list' object has no attribute 'next'
The code is:
202 def changelist(latestonly, **map):
203 revs = []
204 if pos != -1:
205 revs = web.repo.changelog.revs(pos, 0)
206 if latestonly:
207 revs = (revs.next(),)
208 curcount = 0
209 for i in revs:
210 ctx = web.repo[i]
It seems that revs received on 205 line is empty.
I bet that this exception is just a symptom and the reason that hg
either creates incorrect repositories or can't correctly commit to them...
2) I suspect it to be an issue with our Python - at least with 2.4
mercurial works. I've examined Python build logs. Found several rather
unpleasant warnings about pointers casting, but it seems these warnings
are not related to this particular problem. Looked for some core dumps
or incorrect *.so files (we already had such experience - Python build
system doesn't detect such errors), but didn't find them...
--
Best regards,
Alexander Pyhalov,
system administrator of Computer Center of Southern Federal University
More information about the oi-dev
mailing list