remote-hg: add version checks to the marks
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e936a5d484
commit
c43c06b186
@ -55,6 +55,8 @@ EMAIL_RE = re.compile('^([^<>]+[^ \\\t<>])?\\b(?:[ \\t<>]*?)\\b([^ \\t<>]+@[^ \\
|
||||
AUTHOR_HG_RE = re.compile('^(.*?) ?<(.*?)(?:>(.+)?)?$')
|
||||
RAW_AUTHOR_RE = re.compile('^(\w+) (?:(.+)? )?<(.*)> (\d+) ([+-]\d+)')
|
||||
|
||||
VERSION = 1
|
||||
|
||||
def die(msg, *args):
|
||||
sys.stderr.write('ERROR: %s\n' % (msg % args))
|
||||
sys.exit(1)
|
||||
@ -103,12 +105,19 @@ class Marks:
|
||||
|
||||
def __init__(self, path):
|
||||
self.path = path
|
||||
self.clear()
|
||||
self.load()
|
||||
|
||||
if self.version < VERSION:
|
||||
self.clear()
|
||||
self.version = VERSION
|
||||
|
||||
def clear(self):
|
||||
self.tips = {}
|
||||
self.marks = {}
|
||||
self.rev_marks = {}
|
||||
self.last_mark = 0
|
||||
|
||||
self.load()
|
||||
self.version = 0
|
||||
|
||||
def load(self):
|
||||
if not os.path.exists(self.path):
|
||||
@ -119,12 +128,13 @@ class Marks:
|
||||
self.tips = tmp['tips']
|
||||
self.marks = tmp['marks']
|
||||
self.last_mark = tmp['last-mark']
|
||||
self.version = tmp.get('version', 1)
|
||||
|
||||
for rev, mark in self.marks.iteritems():
|
||||
self.rev_marks[mark] = int(rev)
|
||||
|
||||
def dict(self):
|
||||
return { 'tips': self.tips, 'marks': self.marks, 'last-mark' : self.last_mark }
|
||||
return { 'tips': self.tips, 'marks': self.marks, 'last-mark' : self.last_mark, 'version' : self.version }
|
||||
|
||||
def store(self):
|
||||
json.dump(self.dict(), open(self.path, 'w'))
|
||||
|
Loading…
Reference in New Issue
Block a user