diff --git a/LibGit2Sharp/ContentChangeStats.cs b/LibGit2Sharp/ContentChangeStats.cs index 8314888a0..339f16495 100644 --- a/LibGit2Sharp/ContentChangeStats.cs +++ b/LibGit2Sharp/ContentChangeStats.cs @@ -15,16 +15,28 @@ public class ContentChangeStats /// public virtual int LinesDeleted { get; private set; } + /// + /// The number of lines deleted in the diff. + /// + public virtual string OldFileName { get; private set; } + + /// + /// The number of lines deleted in the diff. + /// + public virtual string NewFileName { get; private set; } + /// /// For mocking. /// protected ContentChangeStats() { } - internal ContentChangeStats(int added, int deleted) + internal ContentChangeStats(int added, int deleted, string oldFileName, string newFileName) { LinesAdded = added; LinesDeleted = deleted; + OldFileName = oldFileName; + NewFileName = newFileName; } } } diff --git a/LibGit2Sharp/PatchStats.cs b/LibGit2Sharp/PatchStats.cs index 3d6bb46cd..868536d3e 100644 --- a/LibGit2Sharp/PatchStats.cs +++ b/LibGit2Sharp/PatchStats.cs @@ -37,11 +37,12 @@ internal unsafe PatchStats(DiffHandle diff) var delta = Proxy.git_diff_get_delta(diff, i); var pathPtr = delta->new_file.Path != null ? delta->new_file.Path : delta->old_file.Path; var newFilePath = LaxFilePathMarshaler.FromNative(pathPtr); + var oldFilePath = LaxFilePathMarshaler.FromNative(delta->old_file.Path); var stats = Proxy.git_patch_line_stats(patch); int added = stats.Item1; int deleted = stats.Item2; - changes.Add(newFilePath, new ContentChangeStats(added, deleted)); + changes.Add(newFilePath, new ContentChangeStats(added, deleted, oldFilePath.ToString(), newFilePath.ToString())); totalLinesAdded += added; totalLinesDeleted += deleted; }