From: Jed Brown Date: Fri, 05 Apr 2013 12:46:20 GMT Subject: Re: [RFC/PATH 3/4] remote-hg: add version checks to the marks Message-ID: <8738v5qh5v.fsf@59A2.org> In-Reply-To: <1365161779-32170-4-git-send-email-felipe.contreras@gmail.com> Felipe Contreras writes: > @@ -76,12 +78,19 @@ class Marks: > > def __init__(self, path): > self.path = path > + self.clear() > + self.load() > + > + if self.version < VERSION: > + self.clear() It's friendlier to just upgrade the marks in-place. This takes less than one second to run on repositories where full re-import would take half an hour: def upgrade_marks(self, hgrepo): if self.marks_version == 1: # Convert from integer reversions to hgsha1 warn("Upgrading marks-hg from hg sequence number to SHA1") self.marks_to_revisions = dict( (mark, hghex(hgrepo.changelog.node(int(rev)))) for mark, rev in self.marks_to_revisions.iteritems()) self.revisions_to_marks = dict( (hghex(hgrepo.changelog.node(int(rev))), mark) for rev, mark in self.revisions_to_marks.iteritems()) self.marks_version = 2 warn("Upgrade complete") https://github.com/buchuki/gitifyhg/commit/23a6709efd14f3e058e3a846624b7677d1e8b497#L0R195