comparison mercurial/revlog.py @ 8391:27bffd81d265

revlog: slightly tune group() by not going rev->node->rev
author Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
date Thu, 14 May 2009 16:00:21 +0200
parents 6b8513f8274a
children d1ca637b0773
comparison
equal deleted inserted replaced
8390:beae42f3d93b 8391:27bffd81d265
1147 metadata corresponding to nodes. the first delta is 1147 metadata corresponding to nodes. the first delta is
1148 parent(nodes[0]) -> nodes[0] the receiver is guaranteed to 1148 parent(nodes[0]) -> nodes[0] the receiver is guaranteed to
1149 have this parent as it has all history before these 1149 have this parent as it has all history before these
1150 changesets. parent is parent[0] 1150 changesets. parent is parent[0]
1151 """ 1151 """
1152 revs = [self.rev(n) for n in nodelist]
1153 1152
1154 # if we don't have any revisions touched by these changesets, bail 1153 # if we don't have any revisions touched by these changesets, bail
1155 if not revs: 1154 if not nodelist:
1156 yield changegroup.closechunk() 1155 yield changegroup.closechunk()
1157 return 1156 return
1158 1157
1158 revs = [self.rev(n) for n in nodelist]
1159
1159 # add the parent of the first rev 1160 # add the parent of the first rev
1160 p = self.parents(self.node(revs[0]))[0] 1161 p = self.parentrevs(revs[0])[0]
1161 revs.insert(0, self.rev(p)) 1162 revs.insert(0, p)
1162 1163
1163 # build deltas 1164 # build deltas
1164 for d in xrange(0, len(revs) - 1): 1165 for d in xrange(0, len(revs) - 1):
1165 a, b = revs[d], revs[d + 1] 1166 a, b = revs[d], revs[d + 1]
1166 nb = self.node(b) 1167 nb = self.node(b)