public async Task <QuinceDiff> Diff(string commit)
        {
            var git     = _gitWrapperFactory.MakeGitWrapper(_repositoryPath);
            var gitDiff = await git.Diff(commit);

            if (!gitDiff.Success)
            {
                LogFailedCommand("Failed to retrieve diff for " + commit, gitDiff);
            }
            var quinceDiff = new QuinceDiff();

            ParseDiff(gitDiff, quinceDiff);
            return(quinceDiff);
        }
        public void ParseDiff(IDiffResult diffResult, QuinceDiff quinceDiff)
        {
            // TODO: Make async
            Log.LogTrace("ParseDiff: {0}", diffResult.ToString());
            if (!diffResult.Success)
            {
                Log.LogTrace("ParseDiff: Aborting attempt to apply a failed diff command result");
                return;
            }
            var diffGraph = new NonIndexedGraph {
                BaseUri = new Uri("http://example.org/")
            };
            var parser = new NQuadsParser();

            Log.LogTrace("ParseDiff: Parsing deletes");
            parser.Parse(diffResult.FileDiffs.Where(fd => fd.FilePath.StartsWith("_s")).SelectMany(diff => diff.Deleted),
                         quinceDiff.Deleted,
                         diffGraph);
            diffGraph.Clear();
            Log.LogTrace("ParseDiff: Parsing inserts");
            parser.Parse(diffResult.FileDiffs.Where(fd => fd.FilePath.StartsWith("_s")).SelectMany(diff => diff.Inserted),
                         quinceDiff.Inserted,
                         diffGraph);
        }