code: def _store_path(self, filepath, fprogress):
          
          st = os.lstat(filepath)     # handles non-symlinks as well
          if S_ISLNK(st.st_mode):
              # in PY3, readlink is string, but we need bytes. In PY2, it's just OS encoded bytes, we assume UTF-8
              open_stream = lambda: BytesIO(force_bytes(os.readlink(filepath), encoding=defenc))
          else:
              open_stream = lambda: open(filepath, 'rb')
          with open_stream() as stream:
              fprogress(filepath, False, filepath)
              istream = self.repo.odb.store(IStream(Blob.type, st.st_size, stream))
              fprogress(filepath, True, filepath)
          return BaseIndexEntry((stat_mode_to_index_mode(st.st_mode),
                                 istream.binsha, 0, to_native_path_linux(filepath)))
docs: Store file at filepath in the database and return the base index entry
          Needs the git_working_dir decorator active ! This must be assured in the calling code