code: def _iter_packed_refs(cls, repo):
          
          try:
              with open(cls._get_packed_refs_path(repo), 'rt') as fp:
                  for line in fp:
                      line = line.strip()
                      if not line:
                          continue
                      if line.startswith('#'):
                          # "# pack-refs with: peeled fully-peeled sorted"
                          # the git source code shows "peeled",
                          # "fully-peeled" and "sorted" as the keywords
                          # that can go on this line, as per comments in git file
                          # refs/packed-backend.c
                          # I looked at master on 2017-10-11,
                          # commit 111ef79afe, after tag v2.15.0-rc1
                          # from repo https://github.com/git/git.git
                          if line.startswith('# pack-refs with:') and 'peeled' not in line:
                              raise TypeError("PackingType of packed-Refs not understood: %r" % line)
                          # END abort if we do not understand the packing scheme
                          continue
                      # END parse comment
  
                      # skip dereferenced tag object entries - previous line was actual
                      # tag reference for it
                      if line[0] == '^':
                          continue
  
                      yield tuple(line.split(' ', 1))
                  # END for each line
          except (OSError, IOError):
              return
docs: Returns an iterator yielding pairs of sha1/path pairs (as bytes) for the corresponding refs.
          :note: The packed refs file will be kept open as long as we iterate