def unbundle_fh(fh, path): header = readexactly(fh, 4) magic, version = header[0:2], header[2:4] if magic != b'HG': raise Exception('%s: not a Mercurial bundle' % fsdecode(path)) if version == b'10': alg = readexactly(fh, 2) return cg1unpacker(fh, alg) elif unbundle20 and version.startswith(b'2'): return unbundle20(get_ui(), fh) else: raise Exception('%s: unsupported bundle version %s' % (fsdecode(path), version.decode('ascii')))
def unbundle_fh(fh, path): header = readexactly(fh, 4) magic, version = header[0:2], header[2:4] if magic != 'HG': raise Exception('%s: not a Mercurial bundle' % path) if version == '10': alg = readexactly(fh, 2) return cg1unpacker(fh, alg) elif unbundle20 and version.startswith('2'): return unbundle20(get_ui(), fh) else: raise Exception('%s: unsupported bundle version %s' % (path, version))
def getbundle(self, name, heads, common, *args, **kwargs): data = HgRepoHelper.getbundle((hexlify(h) for h in heads), (hexlify(c) for c in common), ','.join(kwargs.get('bundlecaps', ()))) header = readexactly(data, 4) if header == 'HG20': return unbundle20(self.ui, data) class Reader(object): def __init__(self, header, data): self.header = header self.data = data def read(self, length): result = self.header[:length] self.header = self.header[length:] if length > len(result): result += self.data.read(length - len(result)) return result return Reader(header, data)
def getbundle(self, name, heads, common, *args, **kwargs): data = HgRepoHelper.getbundle((hexlify(h) for h in heads), (hexlify(c) for c in common), ','.join(kwargs.get('bundlecaps', ()))) header = readexactly(data, 4) if header == 'HG20': return unbundle20(get_ui(), data) class Reader(object): def __init__(self, header, data): self.header = header self.data = data def read(self, length): result = self.header[:length] self.header = self.header[length:] if length > len(result): result += self.data.read(length - len(result)) return result return Reader(header, data)
def unbundle(self, cg, heads, *args, **kwargs): data = HgRepoHelper.unbundle(cg, (hexlify(h) if h != 'force' else h for h in heads)) if isinstance(data, str) and data.startswith('HG20'): data = unbundle20(self.ui, StringIO(data[4:])) return data
def unbundle(self, cg, heads, *args, **kwargs): data = HgRepoHelper.unbundle(cg, (hexlify(h) if h != 'force' else h for h in heads)) if isinstance(data, str) and data.startswith('HG20'): data = unbundle20(get_ui(), StringIO(data[4:])) return data