From ccee8909ffec1c9bce75ad6f40f29219dbb13eba Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Fri, 5 Aug 2022 18:24:48 -0500 Subject: [PATCH] Encode hg rev and hex stuff Signed-off-by: Felipe Contreras --- git-remote-hg | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/git-remote-hg b/git-remote-hg index c4f1877..4a44ee2 100755 --- a/git-remote-hg +++ b/git-remote-hg @@ -169,7 +169,7 @@ class Marks: def upgrade_one(self): def get_id(rev): - return hghex(self.repo.changelog.node(int(rev))) + return hghex(self.repo.changelog.node(int(rev))).decode() self.tips = dict((name, get_id(rev)) for name, rev in self.tips.items()) self.marks = dict((get_id(rev), mark) for rev, mark in self.marks.items()) self.rev_marks = dict((mark, get_id(rev)) for mark, rev in self.rev_marks.items()) @@ -198,22 +198,23 @@ class Marks: def get_mark(self, rev): self.last_mark += 1 - self.marks[rev] = self.last_mark + self.marks[rev.decode()] = self.last_mark return self.last_mark def new_mark(self, rev, mark): + rev = rev.decode() self.marks[rev] = mark self.rev_marks[mark] = rev self.last_mark = mark def is_marked(self, rev): - return rev in self.marks + return rev.decode() in self.marks def get_tip(self, branch): - return self.tips[branch] + return self.tips[branch].encode() def set_tip(self, branch, tip): - self.tips[branch] = tip + self.tips[branch] = tip.decode() class Parser: @@ -474,10 +475,10 @@ def get_repo(url, alias): return repo def rev_to_mark(rev): - return marks.from_rev(rev.hex()) + return marks.from_rev(rev.hex().decode()) def mark_to_rev(mark): - return marks.to_rev(mark) + return marks.to_rev(mark).encode() # Get a range of revisions in the form of a..b (git committish) def gitrange(repo, a, b): @@ -733,7 +734,7 @@ def do_list(parser): print("? refs/heads/branches/%s" % gitref(branch)) for bmark in bmarks: - if bmarks[bmark].hex() != '0' * 40: + if bmarks[bmark].hex() != b'0' * 40: print("? refs/heads/%s" % gitref(bmark)) for tag, node in repo.tagslist(): @@ -889,12 +890,12 @@ def parse_commit(parser): if from_mark: p1 = mark_to_rev(from_mark) else: - p1 = '0' * 40 + p1 = b'0' * 40 if merge_mark: p2 = mark_to_rev(merge_mark) else: - p2 = '0' * 40 + p2 = b'0' * 40 # # If files changed from any of the parents, hg wants to know, but in git if @@ -988,7 +989,7 @@ def write_tag(repo, tag, node, msg, author): return make_memfilectx(repo, memctx, f, content) p1 = tip.hex() - p2 = '0' * 40 + p2 = b'0' * 40 if author: user, date, tz = author user = user.encode()