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:

def file_detail(self, rev='HEAD', committer=True, ignore_globs=None, include_globs=None):
        """
        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:
        """

        df = None

        for repo in self.repos:
            try:
                if df is None:
                    df = repo.file_detail(ignore_globs=ignore_globs, include_globs=include_globs, committer=committer, rev=rev)
                    df['repository'] = repo.repo_name
                else:
                    chunk = repo.file_detail(ignore_globs=ignore_globs, include_globs=include_globs, committer=committer, rev=rev)
                    chunk['repository'] = repo.repo_name
                    df = df.append(chunk)
            except GitCommandError:
                print('Warning! Repo: %s couldnt be inspected' % (repo, ))

        df = df.reset_index(level=1)
        df = df.set_index(['file', 'repository'])
        return df