def write_item(port, item): kind = type(item) name = bytes(kind.__name__.encode('ascii')) meta = item.meta has_meta = 1 if isinstance(meta, Metadata) else 0 if kind in (Item, Chunky, RevList): assert len(item.oid) == 20 if has_meta: vint.send(port, 'sVs', name, has_meta, item.oid) Metadata.write(meta, port, include_path=False) else: vint.send(port, 'sVsV', name, has_meta, item.oid, item.meta) elif kind in (Root, Tags): if has_meta: vint.send(port, 'sV', name, has_meta) Metadata.write(meta, port, include_path=False) else: vint.send(port, 'sVV', name, has_meta, item.meta) elif kind == Commit: assert len(item.oid) == 20 assert len(item.coid) == 20 if has_meta: vint.send(port, 'sVss', name, has_meta, item.oid, item.coid) Metadata.write(meta, port, include_path=False) else: vint.send(port, 'sVssV', name, has_meta, item.oid, item.coid, item.meta) elif kind == FakeLink: if has_meta: vint.send(port, 'sVs', name, has_meta, item.target) Metadata.write(meta, port, include_path=False) else: vint.send(port, 'sVsV', name, has_meta, item.target, item.meta) else: assert False
def write_item(port, item): kind = type(item) name = bytes(kind.__name__) meta = item.meta has_meta = 1 if isinstance(meta, Metadata) else 0 if kind in (Item, Chunky, RevList): assert len(item.oid) == 20 if has_meta: vint.send(port, 'sVs', name, has_meta, item.oid) Metadata.write(meta, port, include_path=False) else: vint.send(port, 'sVsV', name, has_meta, item.oid, item.meta) elif kind in (Root, Tags): if has_meta: vint.send(port, 'sV', name, has_meta) Metadata.write(meta, port, include_path=False) else: vint.send(port, 'sVV', name, has_meta, item.meta) elif kind == Commit: assert len(item.oid) == 20 assert len(item.coid) == 20 if has_meta: vint.send(port, 'sVss', name, has_meta, item.oid, item.coid) Metadata.write(meta, port, include_path=False) else: vint.send(port, 'sVssV', name, has_meta, item.oid, item.coid, item.meta) elif kind == FakeLink: if has_meta: vint.send(port, 'sVs', name, has_meta, item.target) Metadata.write(meta, port, include_path=False) else: vint.send(port, 'sVsV', name, has_meta, item.target, item.meta) else: assert False