##// END OF EJS Templates
Fix hgweb's patch display in changeset view.
Fix hgweb's patch display in changeset view.

File last commit:

r2470:fe168927 default
r2927:ee6ed2b2 default
Show More
changegroup.py
43 lines | 1.1 KiB | text/x-python | PythonLexer
Thomas Arendsen Hein
make incoming work via ssh (issue139); move chunk code into separate module....
r1981 """
changegroup.py - Mercurial changegroup manipulation functions
Copyright 2006 Matt Mackall <mpm@selenic.com>
This software may be used and distributed according to the terms
of the GNU General Public License, incorporated herein by reference.
"""
Thomas Arendsen Hein
Added missing gettext import to changegroup.py.
r1997 from i18n import gettext as _
Thomas Arendsen Hein
make incoming work via ssh (issue139); move chunk code into separate module....
r1981 from demandload import *
Vadim Gelfer
use demandload more.
r2470 demandload(globals(), "struct util")
Thomas Arendsen Hein
make incoming work via ssh (issue139); move chunk code into separate module....
r1981
def getchunk(source):
"""get a chunk from a changegroup"""
d = source.read(4)
if not d:
return ""
l = struct.unpack(">l", d)[0]
if l <= 4:
return ""
d = source.read(l - 4)
if len(d) < l - 4:
raise util.Abort(_("premature EOF reading chunk"
" (got %d bytes, expected %d)")
% (len(d), l - 4))
return d
def chunkiter(source):
"""iterate through the chunks in source"""
while 1:
c = getchunk(source)
if not c:
break
yield c
def genchunk(data):
"""build a changegroup chunk"""
header = struct.pack(">l", len(data)+ 4)
return "%s%s" % (header, data)
def closechunk():
return struct.pack(">l", 0)