GitSharp.Core.IndexDiff.Diff C# (CSharp) Method

Diff() public method

Run the diff operation. Until this is called, all lists will be empty
public Diff ( ) : bool
return bool
        public bool Diff()
        {
            DirectoryInfo root = _index.Repository.WorkingDirectory;
            var visitor = new AbstractIndexTreeVisitor
                            {
                                VisitEntry = delegate(TreeEntry treeEntry, GitIndex.Entry indexEntry, FileInfo file)
                                                {
                                                    if (treeEntry == null)
                                                    {
                                                        Added.Add(indexEntry.Name);
                                                        _anyChanges = true;
                                                    }
                                                    else if (indexEntry == null)
                                                    {
                                                        if (!(treeEntry is Tree))
                                                        {
                                                            Removed.Add(treeEntry.FullName);
                                                        }
                                                        _anyChanges = true;
                                                    }
                                                    else
                                                    {
                                                        if (!treeEntry.Id.Equals(indexEntry.ObjectId))
                                                        {
                                                            Changed.Add(indexEntry.Name);
                                                            _anyChanges = true;
                                                        }
                                                    }

                                                    if (indexEntry != null)
                                                    {
                                                        if (!file.Exists)
                                                        {
                                                            Missing.Add(indexEntry.Name);
                                                            _anyChanges = true;
                                                        }
                                                        else
                                                        {
                                                            if (indexEntry.IsModified(root, true))
                                                            {
                                                                Modified.Add(indexEntry.Name);
                                                                _anyChanges = true;
                                                            }
                                                        }
                                                    }
                                                }
                            };
            new IndexTreeWalker(_index, _tree, root, visitor).Walk();

            CheckUntrackedDirectory(root.FullName, "");

            return _anyChanges;
        }

Usage Example

Exemplo n.º 1
0
        public void testAdded2()
        {
            var index = new GitIndex(db);
            writeTrashFile("test/für henon.txt", "Weißebier");
            var tree = new Core.Tree(db);

            index.add(trash, new FileInfo(Path.Combine(trash.FullName, "test/für henon.txt")));
            var diff = new IndexDiff(tree, index);
            diff.Diff();

            Assert.AreEqual(1, diff.Added.Count);
            Assert.IsTrue(diff.Added.Contains("test/für henon.txt"));
            Assert.AreEqual(0, diff.Changed.Count);
            Assert.AreEqual(0, diff.Modified.Count);
            Assert.AreEqual(0, diff.Removed.Count);
        }
All Usage Examples Of GitSharp.Core.IndexDiff::Diff