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); }