comparison mercurial/rewriteutil.py @ 47553:debc29900b97

rewriteutil: look up common predecessor on unfiltered repo Before this patch, the code looking for divergence could crash when tried to look up a common predecessor in the filtered repo. This patch fixes that by looking up the common predecessor in an unfiltered repo. Differential Revision: https://phab.mercurial-scm.org/D10917
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 29 Jun 2021 14:02:34 -0700
parents 8125bcd28a5c
children 48da5c325750
comparison
equal deleted inserted replaced
47552:93ca7d3278b9 47553:debc29900b97
143 def _find_new_divergence(repo, revs): 143 def _find_new_divergence(repo, revs):
144 obsrevs = repo.revs(b'%ld and obsolete()', revs) 144 obsrevs = repo.revs(b'%ld and obsolete()', revs)
145 for r in obsrevs: 145 for r in obsrevs:
146 div = find_new_divergence_from(repo, repo[r]) 146 div = find_new_divergence_from(repo, repo[r])
147 if div: 147 if div:
148 return (repo[r], repo[div[0]], repo[div[1]]) 148 return (repo[r], repo[div[0]], repo.unfiltered()[div[1]])
149 return None 149 return None
150 150
151 151
152 def find_new_divergence_from(repo, ctx): 152 def find_new_divergence_from(repo, ctx):
153 """return divergent revision if rewriting an obsolete cset (ctx) will 153 """return divergent revision if rewriting an obsolete cset (ctx) will