/// <summary>
        /// Returns a list of text files in the repository.
        /// </summary>
        /// <returns>List of text files in the repository.</returns>
        private IEnumerable <string> GetTextFilesFromRepository()
        {
            this.Log.Verbose("Reading all text files from repository '{0}'...", this.Settings.RepositoryRoot);

            var settings = new GitRunnerSettings
            {
                WorkingDirectory = this.Settings.RepositoryRoot,
            };

            settings.Arguments.Clear();
            settings.Arguments.Add("grep -Il .");
            var textFiles = this.runner.RunCommand(settings);

            if (textFiles == null)
            {
                throw new Exception("Error reading text files from repository");
            }

            this.Log.Verbose("Found {0} text file(s)", textFiles.Count());

            return(textFiles);
        }
        /// <summary>
        /// Returns a list of files tracked by Git LFS.
        /// </summary>
        /// <returns>List of files tracked by Git LFS.</returns>
        private IEnumerable <string> GetLfsTrackedFilesFromRepository()
        {
            this.Log.Verbose("Reading all LFS tracked files from repository '{0}'...", this.Settings.RepositoryRoot);

            var settings = new GitRunnerSettings
            {
                WorkingDirectory = this.Settings.RepositoryRoot,
            };

            settings.Arguments.Clear();
            settings.Arguments.Add("lfs ls-files -n");
            var lfsTrackedFiles = this.runner.RunCommand(settings);

            if (lfsTrackedFiles == null)
            {
                throw new Exception("Error reading LFS tracked files from repository");
            }

            this.Log.Verbose("Found {0} LFS tracked file(s)", lfsTrackedFiles.Count());

            return(lfsTrackedFiles);
        }
        /// <summary>
        /// Returns a list of the files in the repository.
        /// </summary>
        /// <returns>List of files in the repository.</returns>
        private IEnumerable <string> GetAllFilesFromRepository()
        {
            this.Log.Verbose("Reading all files from repository '{0}'...", this.Settings.RepositoryRoot);

            var settings = new GitRunnerSettings
            {
                WorkingDirectory = this.Settings.RepositoryRoot,
            };

            settings.Arguments.Clear();
            settings.Arguments.Add("ls-files -z");
            var allFiles = string.Join(string.Empty, this.runner.RunCommand(settings)).Split('\0').Where(x => !string.IsNullOrEmpty(x));

            if (allFiles == null)
            {
                throw new Exception("Error reading files from repository");
            }

            this.Log.Verbose("Found {0} file(s)", allFiles.Count());

            return(allFiles);
        }