code: def delta_stream(self, target='HEAD', limit=None,
                       sort=pygit2.GIT_SORT_TIME | pygit2.GIT_SORT_REVERSE,
                       after=None, before=None):
          
          if target == 'HEAD':
              target = self.repo.head.target
  
          commits = []
          for commit in self.repo.walk(target, sort):
              cdate = commit_date(commit)
              log.debug(
                  "processing commit id:%s date:%s parents:%d msg:%s",
                  str(commit.id)[:6], cdate.isoformat(),
                  len(commit.parents), commit.message)
              if after and cdate > after:
                  continue
              if before and cdate < before:
                  continue
              commits.append(commit)
              if limit and len(commits) > limit:
                  break
  
          if limit:
              self.initialize_tree(commits[limit].tree)
              commits.pop(-1)
  
          for commit in commits:
              for policy_change in self._process_stream_commit(commit):
                  yield policy_change
docs: Return an iterator of policy changes along a commit lineage in a repo.