comparison hgext/convert/common.py @ 5121:ef338e34a906

convert: look up copies in getchanges instead of getcommit svn: defer path expansion until getchanges to reduce latency, as well as memory usage when converting incrementally.
author Brendan Cully <brendan@kublai.com>
date Sun, 05 Aug 2007 12:03:27 -0700
parents 568bb3b4b815
children 39b6eaee6fd7
comparison
equal deleted inserted replaced
5120:514c06098e9c 5121:ef338e34a906
1 # common code for the convert extension 1 # common code for the convert extension
2 2
3 class NoRepo(Exception): pass 3 class NoRepo(Exception): pass
4 4
5 class commit(object): 5 class commit(object):
6 def __init__(self, author, date, desc, parents, branch=None, rev=None, 6 def __init__(self, author, date, desc, parents, branch=None, rev=None):
7 copies={}):
8 self.author = author 7 self.author = author
9 self.date = date 8 self.date = date
10 self.desc = desc 9 self.desc = desc
11 self.parents = parents 10 self.parents = parents
12 self.branch = branch 11 self.branch = branch
13 self.rev = rev 12 self.rev = rev
14 self.copies = copies
15 13
16 class converter_source(object): 14 class converter_source(object):
17 """Conversion source interface""" 15 """Conversion source interface"""
18 16
19 def __init__(self, ui, path, rev=None): 17 def __init__(self, ui, path, rev=None):
40 def getmode(self, name, rev): 38 def getmode(self, name, rev):
41 """Return file mode, eg. '', 'x', or 'l'""" 39 """Return file mode, eg. '', 'x', or 'l'"""
42 raise NotImplementedError() 40 raise NotImplementedError()
43 41
44 def getchanges(self, version): 42 def getchanges(self, version):
45 """Return sorted list of (filename, id) tuples for all files changed in rev. 43 """Returns a tuple of (files, copies)
44 Files is a sorted list of (filename, id) tuples for all files changed
45 in version, where id is the source revision id of the file.
46 46
47 id just tells us which revision to return in getfile(), e.g. in 47 copies is a dictionary of dest: source
48 git it's an object hash.""" 48 """
49 raise NotImplementedError() 49 raise NotImplementedError()
50 50
51 def getcommit(self, version): 51 def getcommit(self, version):
52 """Return the commit object for version""" 52 """Return the commit object for version"""
53 raise NotImplementedError() 53 raise NotImplementedError()