[PATCH 3 of 8] obsolete: helper class to access obsolete marker data
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Thu Jun 7 17:24:54 UTC 2012
# HG changeset patch
# User Pierre-Yves.David at ens-lyon.org
# Date 1339089598 -7200
# Node ID 4ca996519709006862a9c6ed583f9de374022c06
# Parent e94318746f0c2c66e379e0290ea41b475d530f7c
obsolete: helper class to access obsolete marker data
diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py
--- a/mercurial/obsolete.py
+++ b/mercurial/obsolete.py
@@ -118,10 +118,38 @@ def decodemeta(data):
if l:
key, value = l.split(':')
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
Markers can be accessed with two mappings:
- precursors: old -> set(new)
More information about the Mercurial-devel
mailing list