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