Beispiel #1
0
        /// <summary>
        /// Run the diff operation. Until this is called, all lists will be empty
        /// </summary>
        /// <returns>true if anything is different between index, tree, and workdir</returns>
        private void UpdateDirectoryRecursive(string path)
        {
            var commit = Repository.Head.CurrentCommit;

            _tree  = (commit != null ? commit.Tree : new Core.Tree(Repository));
            _index = Repository.Index.GitIndex;
            _index.RereadIfNecessary();
            DirectoryInfo root    = _index.Repository.WorkingDirectory;
            var           visitor = new AbstractIndexTreeVisitor {
                VisitEntryAux = OnVisitEntry
            };

            new IndexTreeWalker(_index, _tree, CreateWorkingDirectoryTree(path), root, visitor).Walk();
        }
Beispiel #2
0
        // Methods
        static IndexTreeWalkerTest()
        {
            TestIndexTreeVisitor = new AbstractIndexTreeVisitor
            {
                VisitEntry = delegate(TreeEntry treeEntry, GitIndex.Entry indexEntry, FileInfo file)
                {
                    if (treeEntry == null)
                    {
                        IndexOnlyEntriesVisited.Add(indexEntry.Name);
                    }
                    else if (indexEntry == null)
                    {
                        TreeOnlyEntriesVisited.Add(treeEntry.FullName);
                    }
                    else
                    {
                        BothVisited.Add(indexEntry.Name);
                    }
                }
            };

            TestTreeOnlyOneLevelTreeVisitor = new AbstractIndexTreeVisitor
            {
                VisitEntry = delegate(TreeEntry entry, GitIndex.Entry indexEntry, FileInfo f)
                {
                    if ((entry == null) || (indexEntry == null))
                    {
                        Assert.Fail();
                    }
                },
                FinishVisitTreeByIndex = delegate(Core.Tree tree, int i, string curDir)
                {
                    if (tree.MemberCount == 0)
                    {
                        Assert.Fail();
                    }
                    if (i == 0)
                    {
                        Assert.Fail();
                    }
                }
            };
        }
        // Methods
        static IndexTreeWalkerTest()
        {
            TestIndexTreeVisitor = new AbstractIndexTreeVisitor
                          	{
                          		VisitEntry = delegate(TreeEntry treeEntry, GitIndex.Entry indexEntry, FileInfo file)
                          		             	{
                          		             		if (treeEntry == null)
                          		             		{
                          		             			IndexOnlyEntriesVisited.Add(indexEntry.Name);
                          		             		}
                          		             		else if (indexEntry == null)
                          		             		{
                          		             			TreeOnlyEntriesVisited.Add(treeEntry.FullName);
                          		             		}
                          		             		else
                          		             		{
                          		             			BothVisited.Add(indexEntry.Name);
                          		             		}
                          		             	}
                          	};

            TestTreeOnlyOneLevelTreeVisitor = new AbstractIndexTreeVisitor
                           	{
                           		VisitEntry = delegate(TreeEntry entry, GitIndex.Entry indexEntry, FileInfo f)
                           		             	{
                           		             		if ((entry == null) || (indexEntry == null))
                           		             		{
                           		             			Assert.Fail();
                           		             		}
                           		             	},
                           		FinishVisitTreeByIndex = delegate(Tree tree, int i, string curDir)
                           		                         	{
                           		                         		if (tree.MemberCount == 0)
                           		                         		{
                           		                         			Assert.Fail();
                           		                         		}
                           		                         		if (i == 0)
                           		                         		{
                           		                         			Assert.Fail();
                           		                         		}
                           		                         	}
                           	};
        }
Beispiel #4
0
 /// <summary>
 /// Run the diff operation. Until this is called, all lists will be empty
 /// </summary>
 /// <returns>true if anything is different between index, tree, and workdir</returns>
 private void UpdateDirectoryRecursive(string path)
 {
     var commit = Repository.Head.CurrentCommit;
     _tree = (commit != null ? commit.Tree : new Core.Tree(Repository));
     _index = Repository.Index.GitIndex;
     _index.RereadIfNecessary();
     DirectoryInfo root = _index.Repository.WorkingDirectory;
     var visitor = new AbstractIndexTreeVisitor { VisitEntryAux = OnVisitEntry };
     new IndexTreeWalker(_index, _tree, CreateWorkingDirectoryTree(path), root, visitor).Walk();
 }
Beispiel #5
0
 /// <summary>
 /// Run the diff operation. Until this is called, all lists will be empty
 /// </summary>
 /// <returns>true if anything is different between index, tree, and workdir</returns>
 private bool Diff()
 {
     var commit = Repository.Head.CurrentCommit;
     _tree = (commit != null ? commit.Tree : new Core.Tree(Repository));
     _index = Repository.Index.GitIndex;
     _index.RereadIfNecessary();
     DirectoryInfo root = _index.Repository.WorkingDirectory;
     var visitor = new AbstractIndexTreeVisitor { VisitEntryAux = OnVisitEntry };
     new IndexTreeWalker(_index, _tree, CreateWorkingDirectoryTree(Repository), root, visitor).Walk();
     return AnyDifferences;
 }