public void GetCommitChangesModifications() { var commit = "c6798c34577"; var changedFiles = new [] { "EditActions.cs", "SourceEditorView.cs", "SourceEditorWidget.cs", "DeleteActions.cs", "DocumentUpdateRequest.cs", "FoldMarkerMargin.cs", "HeightTree.cs", "LineSplitter.cs", "TextDocument.cs", "TextEditor.cs", "TextViewMargin.cs", }; var c = repo.Lookup <Commit> (commit); var changes = GitUtil.CompareCommits(repo, c.Parents.First(), c).ToArray(); Assert.AreEqual(11, changes.Length, "#1"); foreach (var file in changedFiles) { Assert.IsTrue(changes.Any(f => f.Path.EndsWith(".cs", StringComparison.Ordinal)), "#2." + file); } }
public void GetCommitChangesFullHistory() { Commit initial = null; Commit second = commits [commits.Length - 1].Commit; var changes = GitUtil.CompareCommits(repo, initial, second).ToArray(); Assert.AreEqual(4, changes.Length); Assert.That(changes.Select(x => x.Status), Is.All.EqualTo(ChangeKind.Added)); }
public void GetCommitChangesAddedRemoved() { var commit = "9ed729ee"; var changes = GitUtil.CompareCommits(repo, repo.Resolve(commit), repo.Resolve(commit + "^")).ToArray(); var add = changes.First(c => c.GetNewPath().EndsWith("DocumentLine.cs", StringComparison.Ordinal)); var remove = changes.First(c => c.GetOldPath().EndsWith("LineSegment.cs", StringComparison.Ordinal)); Assert.AreEqual(NGit.Diff.DiffEntry.ChangeType.ADD, add.GetChangeType(), "#1"); Assert.AreEqual("/dev/null", add.GetOldPath(), "#2"); Assert.AreEqual(NGit.Diff.DiffEntry.ChangeType.DELETE, remove.GetChangeType(), "#3"); Assert.AreEqual("/dev/null", remove.GetNewPath(), "#4"); }
public void GetCommitChangesAddedRemoved() { var commit = "9ed729ee"; var com = repo.Lookup <Commit> (commit); var changes = GitUtil.CompareCommits(repo, com.Parents.First(), com).ToArray(); var add = changes.First(c => c.Path.EndsWith("DocumentLine.cs", StringComparison.Ordinal)); var remove = changes.First(c => c.OldPath.EndsWith("LineSegment.cs", StringComparison.Ordinal)); Assert.AreEqual(ChangeKind.Renamed, add.Status, "#1"); Assert.AreEqual("main/src/core/Mono.Texteditor/Mono.TextEditor/Document/LineSegment.cs".Replace('/', Path.DirectorySeparatorChar), add.OldPath, "#2"); Assert.AreEqual(ChangeKind.Renamed, remove.Status, "#3"); Assert.AreEqual("main/src/core/Mono.Texteditor/Mono.TextEditor/Document/DocumentLine.cs".Replace('/', Path.DirectorySeparatorChar), remove.Path, "#4"); }
public void GetCommitChangesIgnoresUnchangedFiles() { var initial = commits [0]; var second = commits [1]; var changes = GitUtil.CompareCommits(repo, initial.Commit, second.Commit).ToArray(); Assert.AreEqual(3, changes.Length); var changeForB = changes.Single(x => x.Path == "b.cs"); var changeForC = changes.Single(x => x.Path == "c.cs"); Assert.AreEqual(ChangeKind.Modified, changeForB.Status); Assert.AreEqual(ChangeKind.Added, changeForC.Status); }
public void BlameWithRename() { LibGit2Sharp.Commands.Move(repo, "a.cs", "d.cs"); repo.Commit("Remove commit", signature, signature); var dData = commits [commits.Length - 1].Datas.Single(x => x.File == "a.cs"); var commit = repo.Head.Tip; var blame = GetBlameForFile(commit.Sha, "d.cs"); AssertBlame(dData, blame); // Also assert the changekind var changes = GitUtil.CompareCommits(repo, commit.Parents.Single(), commit).ToArray(); Assert.AreEqual(1, changes.Length); Assert.AreEqual(ChangeKind.Renamed, changes [0].Status); Assert.AreEqual("a.cs", changes [0].OldPath); Assert.AreEqual("d.cs", changes [0].Path); }