Mercurial > public > mercurial-scm > hg
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) |