92 or is parent or has already been transplanted''' |
92 or is parent or has already been transplanted''' |
93 if hasnode(repo, parent): |
93 if hasnode(repo, parent): |
94 parentrev = repo.changelog.rev(parent) |
94 parentrev = repo.changelog.rev(parent) |
95 if hasnode(repo, node): |
95 if hasnode(repo, node): |
96 rev = repo.changelog.rev(node) |
96 rev = repo.changelog.rev(node) |
97 reachable = repo.changelog.incancestors([parentrev], rev) |
97 reachable = repo.changelog.ancestors([parentrev], rev, |
|
98 inclusive=True) |
98 if rev in reachable: |
99 if rev in reachable: |
99 return True |
100 return True |
100 for t in self.transplants.get(node): |
101 for t in self.transplants.get(node): |
101 # it might have been stripped |
102 # it might have been stripped |
102 if not hasnode(repo, t.lnode): |
103 if not hasnode(repo, t.lnode): |
103 self.transplants.remove(t) |
104 self.transplants.remove(t) |
104 return False |
105 return False |
105 lnoderev = repo.changelog.rev(t.lnode) |
106 lnoderev = repo.changelog.rev(t.lnode) |
106 if lnoderev in repo.changelog.incancestors([parentrev], lnoderev): |
107 if lnoderev in repo.changelog.ancestors([parentrev], lnoderev, |
|
108 inclusive=True): |
107 return True |
109 return True |
108 return False |
110 return False |
109 |
111 |
110 def apply(self, repo, source, revmap, merges, opts={}): |
112 def apply(self, repo, source, revmap, merges, opts={}): |
111 '''apply the revisions in revmap one by one in revision order''' |
113 '''apply the revisions in revmap one by one in revision order''' |