diff --git a/requirements-swh.txt b/requirements-swh.txt --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -1,4 +1,4 @@ -swh.model < 0.4.0 -swh.storage >= 0.9.3 +swh.model >= 0.4.0 +swh.storage >= 0.10.0 swh.scheduler >= 0.0.39 swh.loader.core >= 0.5.2 diff --git a/swh/loader/mercurial/loader.py b/swh/loader/mercurial/loader.py --- a/swh/loader/mercurial/loader.py +++ b/swh/loader/mercurial/loader.py @@ -470,17 +470,21 @@ else: directory_id = self.mnode_to_tree_id[commit["manifest"]] - extra_meta = [] + extra_headers = [ + ( + b"time_offset_seconds", + str(commit["time_offset_seconds"]).encode("utf-8"), + ) + ] extra = commit.get("extra") if extra: for e in extra.split(b"\x00"): k, v = e.split(b":", 1) - k = k.decode("utf-8") # transplant_source stores binary reference to a changeset # prefer to dump hexadecimal one in the revision metadata - if k == "transplant_source": + if k == b"transplant_source": v = hash_to_bytehex(v) - extra_meta.append([k, v]) + extra_headers.append((k, v)) parents = [] p1 = self.node_2_rev.get(header["p1"]) @@ -498,16 +502,8 @@ type=RevisionType.MERCURIAL, directory=directory_id, message=commit["message"], - metadata={ - "node": hash_to_hex(header["node"]), - "extra_headers": [ - [ - "time_offset_seconds", - str(commit["time_offset_seconds"]).encode("utf-8"), - ], - ] - + extra_meta, - }, + metadata={"node": hash_to_hex(header["node"]),}, + extra_headers=tuple(extra_headers), synthetic=False, parents=tuple(parents), ) diff --git a/swh/loader/mercurial/tests/test_loader.py b/swh/loader/mercurial/tests/test_loader.py --- a/swh/loader/mercurial/tests/test_loader.py +++ b/swh/loader/mercurial/tests/test_loader.py @@ -236,8 +236,8 @@ transplant_sources = set() for rev in loader.storage.revision_log(revisions): hg_changesets.add(rev["metadata"]["node"]) - for k, v in rev["metadata"]["extra_headers"]: - if k == "transplant_source": + for k, v in rev["extra_headers"]: + if k == b"transplant_source": transplant_sources.add(v.decode("ascii")) # check extracted data are valid