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);
            }
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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");
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }