# HG changeset patch # User Pierre-Yves.David@ens-lyon.org # Date 1339089598 -7200 # Node ID 517af63ba382af19020b21c221f7a2b9cb9d8469 # Parent 11f26e2669aa416e85de9e785c3f55c79a75372b obsolete: helper class to access obsolete marker data diff -r 11f26e2669aa -r 517af63ba382 mercurial/obsolete.py --- a/mercurial/obsolete.py Thu Jun 07 19:15:23 2012 +0200 +++ b/mercurial/obsolete.py Thu Jun 07 19:19:58 2012 +0200 @@ -120,6 +120,34 @@ d[key] = value return d +class marker(object): + """Wrap obsolete marker raw data""" + + def __init__(self, repo, data): + # the repo argument will be used to create changectx in later version + self._repo = repo + self._data = data + self._decodedmeta = None + + def precnode(self): + """Precursor changeset node identifier""" + return self._data[0] + + def succnodes(self): + """List of successor changesets node identifiers""" + return self._data[1] + + def metadata(self): + """Decoded metadata dictionary""" + if self._decodedmeta is None: + self._decodedmeta = decodemeta(self._data[3]) + return self._decodedmeta + + def date(self): + """Creation date as (unixtime, offset)""" + parts = self.metadata()['date'].split(' ') + return (float(parts[0]), int(parts[1])) + class obsstore(object): """Store obsolete markers