From 2862d4f2dbd1a008bc223e4ae596b5280f03fe78 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Tue, 11 Nov 2014 19:26:13 -0500 Subject: [PATCH] Another helper function we'll need for resolving M..N. Regression test passes. --- src | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src b/src index 6e7004d..6bd2b6b 100755 --- a/src +++ b/src @@ -185,7 +185,7 @@ class History: except IndexError: croak("no current revision? src checkout to recover") def current_branch(self, reversed=False): - "Return a list of revnos that are descendants or ancestors of current." + "Return a list of items that are descendants or ancestors of current." p = s = self.rcs_to_revno(self.current()) selection = [self.by_revno(p)] while True: @@ -201,6 +201,19 @@ class History: if reversed: selection.reverse() return selection + def branch_restrict_range(self, start, end, reversed= False): + "Return a list of items that are descendants of start, up to end." + selection = [self.by_revno(s)] + while True: + s = backend.succ(s, self) + if s is None: + croak("%s is not an ancestor of %s" % (start, end)) + selection.append(self.by_revno(s)) + if s == end: + break + if reversed: + selection.reverse() + return selection def tip(self): return self.revlist[0] def rcs_to_revno(self, revision): -- 2.43.0