def show(self, commits=None, encoding='<STR_LIT:utf-8>'):
if self.is_empty():<EOL><INDENT>logger.warning("<STR_LIT>",<EOL>self.uri)<EOL>raise EmptyRepositoryError(repository=self.uri)<EOL><DEDENT>if commits is None:<EOL><INDENT>commits = []<EOL><DEDENT>cmd_show = ['<STR_LIT>', '<STR_LIT>']<EOL>cmd_show.extend(self.GIT_PRETTY_OUTPUT_OPTS)<EOL>cmd_show.extend(commits)<EOL>for line in self._exec_nb(cmd_show, cwd=self.dirpath, env=self.gitenv):<EOL><INDENT>yield line<EOL><DEDENT>logger.debug("<STR_LIT>",<EOL>self.uri, self.dirpath)<EOL>
Show the data of a set of commits.

        The method returns the output of Git show command for a
        set of commits using the following options:

            git show --raw --numstat --pretty=fuller --decorate=full
                --parents -M -C -c [<commit>...<commit>]

        When the list of commits is empty, the command will return
        data about the last commit, like the default behaviour of
        `git show`.

        :param commits: list of commits to show data
        :param encoding: encode the output using this format

        :returns: a generator where each item is a line from the show output

        :raises EmptyRepositoryError: when the repository is empty and
            the action cannot be performed
        :raises RepositoryError: when an error occurs fetching the show output