code: def file_detail(self, include_globs=None, ignore_globs=None, rev='HEAD', committer=True):
          
  
          # first get the blame
          blame = self.blame(
              include_globs=include_globs,
              ignore_globs=ignore_globs,
              rev=rev,
              committer=committer,
              by='file'
          )
          blame = blame.reset_index(level=1)
          blame = blame.reset_index(level=1)
  
          # reduce it to files and total LOC
          df = blame.reindex(columns=['file', 'loc'])
          df = df.groupby('file').agg({'loc': np.sum})
          df = df.reset_index(level=1)
  
          # map in file owners
          df['file_owner'] = df['file'].map(lambda x: self.file_owner(rev, x, committer=committer))
  
          # add extension (something like the language)
          df['ext'] = df['file'].map(lambda x: x.split('.')[-1])
  
          # add in last edit date for the file
          df['last_edit_date'] = df['file'].map(self._file_last_edit)
          df['last_edit_date'] = to_datetime(df['last_edit_date'])
  
          df = df.set_index('file')
  
          return df
docs: Returns a table of all current files in the repos, with some high level information about each file (total LOC,
          file owner, extension, most recent edit date, etc.).
  
          :param ignore_globs: (optional, default=None) a list of globs to ignore, default none excludes nothing
          :param include_globs: (optinal, default=None) a list of globs to include, default of None includes everything.
          :param committer: (optional, default=True) true if committer should be reported, false if author
          :return: