47 self.repotiprev = n - 1 |
47 self.repotiprev = n - 1 |
48 self.bundlerevs = set() # used by 'bundle()' revset expression |
48 self.bundlerevs = set() # used by 'bundle()' revset expression |
49 for rev2 in self.revlog2: |
49 for rev2 in self.revlog2: |
50 rev = self.revlog2.index[rev2] |
50 rev = self.revlog2.index[rev2] |
51 # rev numbers - in revlog2, very different from self.rev |
51 # rev numbers - in revlog2, very different from self.rev |
52 _start, _csize, _rsize, _base, linkrev, p1rev, p2rev, node = rev |
52 _start, _csize, _rsize, base, linkrev, p1rev, p2rev, node = rev |
53 |
53 |
54 if linkmapper is None: # link is to same revlog |
54 if linkmapper is None: # link is to same revlog |
55 assert linkrev == rev2 # we never link back |
55 assert linkrev == rev2 # we never link back |
56 link = n |
56 link = n |
57 else: # rev must be mapped from repo2 cl to unified cl by linkmapper |
57 else: # rev must be mapped from repo2 cl to unified cl by linkmapper |
58 link = linkmapper(linkrev) |
58 link = linkmapper(linkrev) |
59 |
59 |
|
60 if linkmapper is not None: # link is to same revlog |
|
61 base = linkmapper(base) |
|
62 |
60 if node in self.nodemap: |
63 if node in self.nodemap: |
61 # this happens for the common revlog revisions |
64 # this happens for the common revlog revisions |
62 self.bundlerevs.add(self.nodemap[node]) |
65 self.bundlerevs.add(self.nodemap[node]) |
63 continue |
66 continue |
64 |
67 |
65 p1node = self.revlog2.node(p1rev) |
68 p1node = self.revlog2.node(p1rev) |
66 p2node = self.revlog2.node(p2rev) |
69 p2node = self.revlog2.node(p2rev) |
67 |
70 |
68 e = (None, None, None, None, |
71 e = (None, None, None, base, |
69 link, self.rev(p1node), self.rev(p2node), node) |
72 link, self.rev(p1node), self.rev(p2node), node) |
70 self.index.insert(-1, e) |
73 self.index.insert(-1, e) |
71 self.nodemap[node] = n |
74 self.nodemap[node] = n |
72 self.bundlerevs.add(n) |
75 self.bundlerevs.add(n) |
73 n += 1 |
76 n += 1 |