# HG changeset patch # User Pierre-Yves David # Date 1668020055 18000 # Node ID 92c65bd0c4d6762a61d8bb23b8258734dd47a476 # Parent 2fd8750f37226b8e1a5a14760f90f9cd8dbd4414 sqlitestore: add an `ancestors` method We will need it during bundling. The implementation mirror the one in revlog. diff -r 2fd8750f3722 -r 92c65bd0c4d6 hgext/sqlitestore.py --- a/hgext/sqlitestore.py Thu Nov 24 04:04:19 2022 +0100 +++ b/hgext/sqlitestore.py Wed Nov 09 13:54:15 2022 -0500 @@ -429,6 +429,25 @@ entry = self._revisions[self._revtonode[rev]] return entry.p1rev, entry.p2rev + def ancestors(self, revs, stoprev=0, inclusive=False): + """Generate the ancestors of 'revs' in reverse revision order. + Does not generate revs lower than stoprev. + + See the documentation for ancestor.lazyancestors for more details.""" + + # first, make sure start revisions aren't filtered + revs = list(revs) + checkrev = self.node + for r in revs: + checkrev(r) + + return ancestor.lazyancestors( + self.parentrevs, + revs, + stoprev=stoprev, + inclusive=inclusive, + ) + def rev(self, node): if node == sha1nodeconstants.nullid: return nullrev