mirror of
				https://github.com/mnauw/git-remote-hg.git
				synced 2025-10-31 00:25:48 +01:00 
			
		
		
		
	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:
		| @@ -103,11 +103,17 @@ def get_config_bool(config, default=False): | |||||||
|  |  | ||||||
| class Marks: | class Marks: | ||||||
|  |  | ||||||
|     def __init__(self, path): |     def __init__(self, path, repo): | ||||||
|         self.path = path |         self.path = path | ||||||
|  |         self.repo = repo | ||||||
|         self.clear() |         self.clear() | ||||||
|         self.load() |         self.load() | ||||||
|  |  | ||||||
|  |         if self.version < VERSION: | ||||||
|  |             if self.version == 1: | ||||||
|  |                 self.upgrade_one() | ||||||
|  |  | ||||||
|  |             # upgraded? | ||||||
|             if self.version < VERSION: |             if self.version < VERSION: | ||||||
|                 self.clear() |                 self.clear() | ||||||
|                 self.version = VERSION |                 self.version = VERSION | ||||||
| @@ -133,6 +139,14 @@ class Marks: | |||||||
|         for rev, mark in self.marks.iteritems(): |         for rev, mark in self.marks.iteritems(): | ||||||
|             self.rev_marks[mark] = rev |             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): |     def dict(self): | ||||||
|         return { 'tips': self.tips, 'marks': self.marks, 'last-mark' : self.last_mark, 'version' : self.version } |         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) |         fix_path(alias, peer or repo, url) | ||||||
|  |  | ||||||
|     marks_path = os.path.join(dirname, 'marks-hg') |     marks_path = os.path.join(dirname, 'marks-hg') | ||||||
|     marks = Marks(marks_path) |     marks = Marks(marks_path, repo) | ||||||
|  |  | ||||||
|     if sys.platform == 'win32': |     if sys.platform == 'win32': | ||||||
|         import msvcrt |         import msvcrt | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user