当前位置: 首页>>代码示例>>C#>>正文


C# Tree.AddTree方法代码示例

本文整理汇总了C#中NGit.Tree.AddTree方法的典型用法代码示例。如果您正苦于以下问题:C# Tree.AddTree方法的具体用法?C# Tree.AddTree怎么用?C# Tree.AddTree使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在NGit.Tree的用法示例。


在下文中一共展示了Tree.AddTree方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AddTree

		/// <summary>Adds a new or existing Tree with the specified name to this tree.</summary>
		/// <remarks>
		/// Adds a new or existing Tree with the specified name to this tree.
		/// Trees are added if necessary as the name may contain '/':s.
		/// </remarks>
		/// <param name="s">an array containing the name</param>
		/// <param name="offset">when the name starts in the tree.</param>
		/// <returns>
		/// a
		/// <see cref="FileTreeEntry">FileTreeEntry</see>
		/// for the added tree.
		/// </returns>
		/// <exception cref="System.IO.IOException">System.IO.IOException</exception>
		public virtual NGit.Tree AddTree(byte[] s, int offset)
		{
			int slash;
			int p;
			for (slash = offset; slash < s.Length && s[slash] != '/'; slash++)
			{
			}
			// search for path component terminator
			EnsureLoaded();
			p = BinarySearch(contents, s, unchecked((byte)'/'), offset, slash);
			if (p >= 0 && slash < s.Length && contents[p] is NGit.Tree)
			{
				return ((NGit.Tree)contents[p]).AddTree(s, slash + 1);
			}
			byte[] newName = Substring(s, offset, slash);
			if (p >= 0)
			{
				throw new EntryExistsException(RawParseUtils.Decode(newName));
			}
			NGit.Tree t = new NGit.Tree(this, newName);
			InsertEntry(p, t);
			return slash == s.Length ? t : t.AddTree(s, slash + 1);
		}
开发者ID:famousthom,项目名称:monodevelop,代码行数:36,代码来源:Tree.cs

示例2: TestSimpleT

 public virtual void TestSimpleT()
 {
     Tree tree = new Tree(db);
     tree.AddTree("a");
     TreeIterator i = MakeIterator(tree);
     NUnit.Framework.Assert.IsFalse(i.HasNext());
 }
开发者ID:charles-cai,项目名称:ngit,代码行数:7,代码来源:TreeIteratorLeafOnlyTest.cs

示例3: Test008_SubtreeInternalSorting

		public virtual void Test008_SubtreeInternalSorting()
		{
			Tree t = new Tree(db);
			FileTreeEntry e0 = t.AddFile("a-b");
			FileTreeEntry e1 = t.AddFile("a-");
			FileTreeEntry e2 = t.AddFile("a=b");
			Tree e3 = t.AddTree("a");
			FileTreeEntry e4 = t.AddFile("a=");
			TreeEntry[] ents = t.Members();
			NUnit.Framework.Assert.AreSame(e1, ents[0]);
			NUnit.Framework.Assert.AreSame(e0, ents[1]);
			NUnit.Framework.Assert.AreSame(e3, ents[2]);
			NUnit.Framework.Assert.AreSame(e4, ents[3]);
			NUnit.Framework.Assert.AreSame(e2, ents[4]);
		}
开发者ID:LunarLanding,项目名称:ngit,代码行数:15,代码来源:T0002_TreeTest.cs

示例4: TestEmptyTreeCorruption

		public virtual void TestEmptyTreeCorruption()
		{
			ObjectId bId = ObjectId.FromString("abbbfafe3129f85747aba7bfac992af77134c607");
			RevTree tree_root;
			RevTree tree_A;
			RevTree tree_AB;
			RevCommit b;
			{
				Tree root = new Tree(db);
				Tree A = root.AddTree("A");
				FileTreeEntry B = root.AddFile("B");
				B.SetId(bId);
				Tree A_A = A.AddTree("A");
				Tree A_B = A.AddTree("B");
				ObjectInserter inserter = db.NewObjectInserter();
				try
				{
					A_A.SetId(inserter.Insert(Constants.OBJ_TREE, A_A.Format()));
					A_B.SetId(inserter.Insert(Constants.OBJ_TREE, A_B.Format()));
					A.SetId(inserter.Insert(Constants.OBJ_TREE, A.Format()));
					root.SetId(inserter.Insert(Constants.OBJ_TREE, root.Format()));
					inserter.Flush();
				}
				finally
				{
					inserter.Release();
				}
				tree_root = rw.ParseTree(root.GetId());
				tree_A = rw.ParseTree(A.GetId());
				tree_AB = rw.ParseTree(A_A.GetId());
				NUnit.Framework.Assert.AreSame(tree_AB, rw.ParseTree(A_B.GetId()));
				b = Commit(rw.ParseTree(root.GetId()));
			}
			MarkStart(b);
			AssertCommit(b, objw.Next());
			NUnit.Framework.Assert.IsNull(objw.Next());
			NUnit.Framework.Assert.AreSame(tree_root, objw.NextObject());
			NUnit.Framework.Assert.AreSame(tree_A, objw.NextObject());
			NUnit.Framework.Assert.AreSame(tree_AB, objw.NextObject());
			NUnit.Framework.Assert.AreSame(rw.LookupBlob(bId), objw.NextObject());
			NUnit.Framework.Assert.IsNull(objw.NextObject());
		}
开发者ID:LunarLanding,项目名称:ngit,代码行数:42,代码来源:ObjectWalkTest.cs

示例5: Test006_addDeepTree

		public virtual void Test006_addDeepTree()
		{
			Tree t = new Tree(db);
			Tree e = t.AddTree("e");
			NUnit.Framework.Assert.IsNotNull(e, "have e");
			NUnit.Framework.Assert.IsTrue(e.GetParent() == t, "e.parent == t");
			Tree f = t.AddTree("f");
			NUnit.Framework.Assert.IsNotNull(f, "have f");
			NUnit.Framework.Assert.IsTrue(f.GetParent() == t, "f.parent == t");
			Tree g = f.AddTree("g");
			NUnit.Framework.Assert.IsNotNull(g, "have g");
			NUnit.Framework.Assert.IsTrue(g.GetParent() == f, "g.parent == f");
			Tree h = g.AddTree("h");
			NUnit.Framework.Assert.IsNotNull(h, "have h");
			NUnit.Framework.Assert.IsTrue(h.GetParent() == g, "h.parent = g");
			h.SetId(SOME_FAKE_ID);
			NUnit.Framework.Assert.IsTrue(!h.IsModified(), "h not modified");
			g.SetId(SOME_FAKE_ID);
			NUnit.Framework.Assert.IsTrue(!g.IsModified(), "g not modified");
			f.SetId(SOME_FAKE_ID);
			NUnit.Framework.Assert.IsTrue(!f.IsModified(), "f not modified");
			e.SetId(SOME_FAKE_ID);
			NUnit.Framework.Assert.IsTrue(!e.IsModified(), "e not modified");
			t.SetId(SOME_FAKE_ID);
			NUnit.Framework.Assert.IsTrue(!t.IsModified(), "t not modified.");
			NUnit.Framework.Assert.AreEqual("f/g/h", h.GetFullName(), "full path of h ok");
			NUnit.Framework.Assert.IsTrue(t.FindTreeMember(h.GetFullName()) == h, "Can find h"
				);
			NUnit.Framework.Assert.IsTrue(t.FindBlobMember("f/z") == null, "Can't find f/z");
			NUnit.Framework.Assert.IsTrue(t.FindBlobMember("y/z") == null, "Can't find y/z");
			FileTreeEntry i = h.AddFile("i");
			NUnit.Framework.Assert.IsNotNull(i);
			NUnit.Framework.Assert.AreEqual("f/g/h/i", i.GetFullName(), "full path of i ok");
			NUnit.Framework.Assert.IsTrue(t.FindBlobMember(i.GetFullName()) == i, "Can find i"
				);
			NUnit.Framework.Assert.IsTrue(h.IsModified(), "h modified");
			NUnit.Framework.Assert.IsTrue(g.IsModified(), "g modified");
			NUnit.Framework.Assert.IsTrue(f.IsModified(), "f modified");
			NUnit.Framework.Assert.IsTrue(!e.IsModified(), "e not modified");
			NUnit.Framework.Assert.IsTrue(t.IsModified(), "t modified");
			NUnit.Framework.Assert.IsTrue(h.GetId() == null, "h no id");
			NUnit.Framework.Assert.IsTrue(g.GetId() == null, "g no id");
			NUnit.Framework.Assert.IsTrue(f.GetId() == null, "f no id");
			NUnit.Framework.Assert.IsTrue(e.GetId() != null, "e has id");
			NUnit.Framework.Assert.IsTrue(t.GetId() == null, "t no id");
		}
开发者ID:LunarLanding,项目名称:ngit,代码行数:46,代码来源:T0002_TreeTest.cs

示例6: Test005_addRecursiveTree

		public virtual void Test005_addRecursiveTree()
		{
			Tree t = new Tree(db);
			Tree f = t.AddTree("a/b/c");
			NUnit.Framework.Assert.IsNotNull(f, "created f");
			NUnit.Framework.Assert.AreEqual("c", f.GetName());
			NUnit.Framework.Assert.AreEqual("b", f.GetParent().GetName());
			NUnit.Framework.Assert.AreEqual("a", f.GetParent().GetParent().GetName());
			NUnit.Framework.Assert.IsTrue(t == f.GetParent().GetParent().GetParent(), "t is great-grandparent"
				);
		}
开发者ID:LunarLanding,项目名称:ngit,代码行数:11,代码来源:T0002_TreeTest.cs

示例7: Test004_addTree

		public virtual void Test004_addTree()
		{
			Tree t = new Tree(db);
			t.SetId(SOME_FAKE_ID);
			NUnit.Framework.Assert.IsTrue(t.GetId() != null, "has id");
			NUnit.Framework.Assert.IsFalse(t.IsModified(), "not modified");
			string n = "bob";
			Tree f = t.AddTree(n);
			NUnit.Framework.Assert.IsNotNull(f, "have tree");
			NUnit.Framework.Assert.AreEqual(n, f.GetName(), "name matches");
			NUnit.Framework.Assert.AreEqual(f.GetName(), Sharpen.Runtime.GetStringForBytes(f.
				GetNameUTF8(), "UTF-8"), "name matches");
			NUnit.Framework.Assert.AreEqual(n, f.GetFullName(), "full name matches");
			NUnit.Framework.Assert.IsTrue(f.GetId() == null, "no id");
			NUnit.Framework.Assert.IsTrue(f.GetParent() == t, "parent matches");
			NUnit.Framework.Assert.IsTrue(f.GetRepository() == db, "repository matches");
			NUnit.Framework.Assert.IsTrue(f.IsLoaded(), "isLoaded");
			NUnit.Framework.Assert.IsFalse(f.Members().Length > 0, "has items");
			NUnit.Framework.Assert.IsFalse(f.IsRoot(), "is root");
			NUnit.Framework.Assert.IsTrue(t.IsModified(), "parent is modified");
			NUnit.Framework.Assert.IsTrue(t.GetId() == null, "parent has no id");
			NUnit.Framework.Assert.IsTrue(t.FindTreeMember(f.GetName()) == f, "found bob child"
				);
			TreeEntry[] i = t.Members();
			NUnit.Framework.Assert.IsTrue(i.Length > 0, "iterator is not empty");
			NUnit.Framework.Assert.IsTrue(i[0] == f, "iterator returns file");
			NUnit.Framework.Assert.AreEqual(1, i.Length, "iterator is empty");
		}
开发者ID:LunarLanding,项目名称:ngit,代码行数:28,代码来源:T0002_TreeTest.cs

示例8: TestMissingSubtree_DetectFileAdded_FileModified

		public virtual void TestMissingSubtree_DetectFileAdded_FileModified()
		{
			ObjectInserter inserter = db.NewObjectInserter();
			ObjectId aFileId = inserter.Insert(Constants.OBJ_BLOB, Constants.Encode("a"));
			ObjectId bFileId = inserter.Insert(Constants.OBJ_BLOB, Constants.Encode("b"));
			ObjectId cFileId1 = inserter.Insert(Constants.OBJ_BLOB, Constants.Encode("c-1"));
			ObjectId cFileId2 = inserter.Insert(Constants.OBJ_BLOB, Constants.Encode("c-2"));
			// Create sub-a/empty, sub-c/empty = hello.
			ObjectId oldTree;
			{
				Tree root = new Tree(db);
				{
					Tree subA = root.AddTree("sub-a");
					subA.AddFile("empty").SetId(aFileId);
					subA.SetId(inserter.Insert(Constants.OBJ_TREE, subA.Format()));
				}
				{
					Tree subC = root.AddTree("sub-c");
					subC.AddFile("empty").SetId(cFileId1);
					subC.SetId(inserter.Insert(Constants.OBJ_TREE, subC.Format()));
				}
				oldTree = inserter.Insert(Constants.OBJ_TREE, root.Format());
			}
			// Create sub-a/empty, sub-b/empty, sub-c/empty.
			ObjectId newTree;
			{
				Tree root = new Tree(db);
				{
					Tree subA = root.AddTree("sub-a");
					subA.AddFile("empty").SetId(aFileId);
					subA.SetId(inserter.Insert(Constants.OBJ_TREE, subA.Format()));
				}
				{
					Tree subB = root.AddTree("sub-b");
					subB.AddFile("empty").SetId(bFileId);
					subB.SetId(inserter.Insert(Constants.OBJ_TREE, subB.Format()));
				}
				{
					Tree subC = root.AddTree("sub-c");
					subC.AddFile("empty").SetId(cFileId2);
					subC.SetId(inserter.Insert(Constants.OBJ_TREE, subC.Format()));
				}
				newTree = inserter.Insert(Constants.OBJ_TREE, root.Format());
			}
			inserter.Flush();
			inserter.Release();
			TreeWalk tw = new TreeWalk(db);
			tw.Reset(oldTree, newTree);
			tw.Recursive = true;
			tw.Filter = TreeFilter.ANY_DIFF;
			NUnit.Framework.Assert.IsTrue(tw.Next());
			NUnit.Framework.Assert.AreEqual("sub-b/empty", tw.PathString);
			NUnit.Framework.Assert.AreEqual(FileMode.MISSING, tw.GetFileMode(0));
			NUnit.Framework.Assert.AreEqual(FileMode.REGULAR_FILE, tw.GetFileMode(1));
			NUnit.Framework.Assert.AreEqual(ObjectId.ZeroId, tw.GetObjectId(0));
			NUnit.Framework.Assert.AreEqual(bFileId, tw.GetObjectId(1));
			NUnit.Framework.Assert.IsTrue(tw.Next());
			NUnit.Framework.Assert.AreEqual("sub-c/empty", tw.PathString);
			NUnit.Framework.Assert.AreEqual(FileMode.REGULAR_FILE, tw.GetFileMode(0));
			NUnit.Framework.Assert.AreEqual(FileMode.REGULAR_FILE, tw.GetFileMode(1));
			NUnit.Framework.Assert.AreEqual(cFileId1, tw.GetObjectId(0));
			NUnit.Framework.Assert.AreEqual(cFileId2, tw.GetObjectId(1));
			NUnit.Framework.Assert.IsFalse(tw.Next());
		}
开发者ID:LunarLanding,项目名称:ngit,代码行数:64,代码来源:TreeWalkBasicDiffTest.cs

示例9: TestSimpleT

 public virtual void TestSimpleT()
 {
     Tree tree = new Tree(db);
     tree.AddTree("a");
     TreeIterator i = MakeIterator(tree);
     NUnit.Framework.Assert.IsTrue(i.HasNext());
     NUnit.Framework.Assert.AreEqual("a", i.Next().GetFullName());
     NUnit.Framework.Assert.IsTrue(i.HasNext());
     NUnit.Framework.Assert.AreEqual(string.Empty, i.Next().GetFullName());
     NUnit.Framework.Assert.IsFalse(i.HasNext());
 }
开发者ID:charles-cai,项目名称:ngit,代码行数:11,代码来源:TreeIteratorPostOrderTest.cs


注:本文中的NGit.Tree.AddTree方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。