code: def walk(self, top, topdown=True, ignore_file_handler=None):
          
  
          tree = self.git_object_by_path(top)
          if tree is None:
              raise IOError(errno.ENOENT, "No such file")
  
          for x in self._walk(tree, topdown):
              yield x
docs: Directory tree generator.
  
          See `os.walk` for the docs. Differences:
          - no support for symlinks
          - it could raise exceptions, there is no onerror argument