code: def iter_items(cls, repo, rev, paths='', **kwargs):
          
          if 'pretty' in kwargs:
              raise ValueError("--pretty cannot be used as parsing expects single sha's only")
          # END handle pretty
  
          # use -- in any case, to prevent possibility of ambiguous arguments
          # see https://github.com/gitpython-developers/GitPython/issues/264
          args = ['--']
          if paths:
              args.extend((paths, ))
          # END if paths
  
          proc = repo.git.rev_list(rev, args, as_process=True, **kwargs)
          return cls._iter_from_process_or_stream(repo, proc)
docs: Find all commits matching the given criteria.
  
          :param repo: is the Repo
          :param rev: revision specifier, see git-rev-parse for viable options
          :param paths:
              is an optional path or list of paths, if set only Commits that include the path
              or paths will be considered
          :param kwargs:
              optional keyword arguments to git rev-list where
              ``max_count`` is the maximum number of commits to fetch
              ``skip`` is the number of commits to skip
              ``since`` all commits since i.e. '1970-01-01'
          :return: iterator yielding Commit items