mercurial/unionrepo.py
changeset 26230 6b16a3538c20
parent 25988 83f220c7d6f0
child 26587 56b2bcea2529
equal deleted inserted replaced
26229:d1530c6e8613 26230:6b16a3538c20
    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