##// END OF EJS Templates
Use a case-sensitive version of SafeConfigParser everywhere...
Use a case-sensitive version of SafeConfigParser everywhere This change has the potential to break existing setups, but the current behaviour (the keys in configuration files are always lower-cased) can bite us in a few places: - no way to use a Command in [defaults] - hgext.Extension doesn't work in [extensions] - you can't use an Upper/case/PATH in the [paths] section of hgweb.config - you can't (easily) protect paths with upper-case letters with the acl extension - you can't specify a /Path/TO/a/rEPO in the [reposubs] section for the notify extension

File last commit:

r2470:fe168927 default
r3425:ec6f400c 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)