remote-hg: upgrade version 1 marks
As suggested by Jed Brown; there's no need to re-import all the commits. Cc: Jed Brown <jed@59a2.org> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
93ae203495
commit
68b1611678
@ -103,14 +103,20 @@ def get_config_bool(config, default=False):
|
||||
|
||||
class Marks:
|
||||
|
||||
def __init__(self, path):
|
||||
def __init__(self, path, repo):
|
||||
self.path = path
|
||||
self.repo = repo
|
||||
self.clear()
|
||||
self.load()
|
||||
|
||||
if self.version < VERSION:
|
||||
self.clear()
|
||||
self.version = VERSION
|
||||
if self.version == 1:
|
||||
self.upgrade_one()
|
||||
|
||||
# upgraded?
|
||||
if self.version < VERSION:
|
||||
self.clear()
|
||||
self.version = VERSION
|
||||
|
||||
def clear(self):
|
||||
self.tips = {}
|
||||
@ -133,6 +139,14 @@ class Marks:
|
||||
for rev, mark in self.marks.iteritems():
|
||||
self.rev_marks[mark] = rev
|
||||
|
||||
def upgrade_one(self):
|
||||
def get_id(rev):
|
||||
return hghex(self.repo.changelog.node(int(rev)))
|
||||
self.tips = dict((name, get_id(rev)) for name, rev in self.tips.iteritems())
|
||||
self.marks = dict((get_id(rev), mark) for rev, mark in self.marks.iteritems())
|
||||
self.rev_marks = dict((mark, get_id(rev)) for mark, rev in self.rev_marks.iteritems())
|
||||
self.version = 2
|
||||
|
||||
def dict(self):
|
||||
return { 'tips': self.tips, 'marks': self.marks, 'last-mark' : self.last_mark, 'version' : self.version }
|
||||
|
||||
@ -973,7 +987,7 @@ def main(args):
|
||||
fix_path(alias, peer or repo, url)
|
||||
|
||||
marks_path = os.path.join(dirname, 'marks-hg')
|
||||
marks = Marks(marks_path)
|
||||
marks = Marks(marks_path, repo)
|
||||
|
||||
if sys.platform == 'win32':
|
||||
import msvcrt
|
||||
|
Loading…
Reference in New Issue
Block a user