public void testNonRecursiveFiltering() { var ow = new ObjectWriter(db); ObjectId aSth = ow.WriteBlob("a.sth".getBytes()); ObjectId aTxt = ow.WriteBlob("a.txt".getBytes()); DirCache dc = DirCache.read(db); DirCacheBuilder builder = dc.builder(); var aSthEntry = new DirCacheEntry("a.sth"); aSthEntry.setFileMode(FileMode.RegularFile); aSthEntry.setObjectId(aSth); var aTxtEntry = new DirCacheEntry("a.txt"); aTxtEntry.setFileMode(FileMode.RegularFile); aTxtEntry.setObjectId(aTxt); builder.add(aSthEntry); builder.add(aTxtEntry); builder.finish(); ObjectId treeId = dc.writeTree(ow); var tw = new GitSharp.Core.TreeWalk.TreeWalk(db); tw.setFilter(PathSuffixFilter.create(".txt")); tw.addTree(treeId); var paths = new LinkedList<string>(); while (tw.next()) { paths.AddLast(tw.getPathString()); } var expected = new LinkedList<string>(); expected.AddLast("a.txt"); Assert.AreEqual(expected, paths); }
private static DirCacheEntry ToEntry(int stage, TreeWalk.TreeWalk tw) { var e = new DirCacheEntry(tw.getRawPath(), stage); var iterator = tw.getTree <AbstractTreeIterator>(0, typeof(AbstractTreeIterator)); e.setFileMode(tw.getFileMode(0)); e.setObjectIdFromRaw(iterator.idBuffer(), iterator.idOffset()); return(e); }
public void testBuildOneFile_FinishWriteCommit() { string path = "a-File-path"; var mode = GitSharp.Core.FileMode.RegularFile; long lastModified = 1218123387057L; int Length = 1342; DirCacheEntry entOrig; DirCache dc = DirCache.Lock(db); DirCacheBuilder b = dc.builder(); Assert.IsNotNull(b); entOrig = new DirCacheEntry(path); entOrig.setFileMode(mode); entOrig.setLastModified(lastModified); entOrig.setLength(Length); Assert.AreNotSame(path, entOrig.getPathString()); Assert.AreEqual(path, entOrig.getPathString()); Assert.AreEqual(ObjectId.ZeroId, entOrig.getObjectId()); Assert.AreEqual(mode.Bits, entOrig.getRawMode()); Assert.AreEqual(0, entOrig.getStage()); Assert.AreEqual(lastModified, entOrig.getLastModified()); Assert.AreEqual(Length, entOrig.getLength()); Assert.IsFalse(entOrig.isAssumeValid()); b.add(entOrig); b.finish(); Assert.AreEqual(1, dc.getEntryCount()); Assert.AreSame(entOrig, dc.getEntry(0)); dc.write(); Assert.IsTrue(dc.commit()); dc = DirCache.read(db); Assert.AreEqual(1, dc.getEntryCount()); DirCacheEntry entRead = dc.getEntry(0); Assert.AreNotSame(entOrig, entRead); Assert.AreEqual(path, entRead.getPathString()); Assert.AreEqual(ObjectId.ZeroId, entOrig.getObjectId()); Assert.AreEqual(mode.Bits, entOrig.getRawMode()); Assert.AreEqual(0, entOrig.getStage()); Assert.AreEqual(lastModified, entOrig.getLastModified()); Assert.AreEqual(Length, entOrig.getLength()); Assert.IsFalse(entOrig.isAssumeValid()); }
public void testSetFileMode() { DirCacheEntry e = new DirCacheEntry("a"); Assert.AreEqual(0, e.getRawMode()); e.setFileMode(FileMode.RegularFile); Assert.AreSame(FileMode.RegularFile, e.getFileMode()); Assert.AreEqual(FileMode.RegularFile.Bits, e.getRawMode()); e.setFileMode(FileMode.ExecutableFile); Assert.AreSame(FileMode.ExecutableFile, e.getFileMode()); Assert.AreEqual(FileMode.ExecutableFile.Bits, e.getRawMode()); e.setFileMode(FileMode.Symlink); Assert.AreSame(FileMode.Symlink, e.getFileMode()); Assert.AreEqual(FileMode.Symlink.Bits, e.getRawMode()); e.setFileMode(FileMode.GitLink); Assert.AreSame(FileMode.GitLink, e.getFileMode()); Assert.AreEqual(FileMode.GitLink.Bits, e.getRawMode()); try { e.setFileMode(FileMode.Missing); Assert.Fail("incorrectly accepted FileMode.MISSING"); } catch (ArgumentException err) { Assert.AreEqual("Invalid mode 0 for path a", err.Message); } try { e.setFileMode(FileMode.Tree); Assert.Fail("incorrectly accepted FileMode.TREE"); } catch (ArgumentException err) { Assert.AreEqual("Invalid mode " + FileMode.TYPE_TREE + " for path a", err.Message); } }
private DirCacheEntry MakeEntry(string path, FileMode mode, String content) { var ent = new DirCacheEntry(path); ent.setFileMode(mode); byte[] contentBytes = Constants.encode(content); ent.setObjectId(new ObjectWriter(db).ComputeBlobSha1(contentBytes.Length, new MemoryStream(contentBytes))); return ent; }
private static DirCacheEntry ToEntry(int stage, TreeWalk.TreeWalk tw) { var e = new DirCacheEntry(tw.getRawPath(), stage); var iterator = tw.getTree<AbstractTreeIterator>(0, typeof(AbstractTreeIterator)); e.setFileMode(tw.getFileMode(0)); e.setObjectIdFromRaw(iterator.idBuffer(), iterator.idOffset()); return e; }
private DirCacheEntry makeFile(string path) { byte[] pathBytes = Constants.encode(path); var ent = new DirCacheEntry(path); ent.setFileMode(FileMode.RegularFile); ent.setObjectId(new ObjectWriter(db).ComputeBlobSha1(pathBytes.Length, new MemoryStream(pathBytes))); return ent; }
private void Add(int tree, int stage) { AbstractTreeIterator i = GetTree(tree); if (i == null) return; if (FileMode.Tree.Equals(_tw.getRawMode(tree))) { _builder.addTree(_tw.getRawPath(), stage, Repository, _tw.getObjectId(tree)); } else { var e = new DirCacheEntry(_tw.getRawPath(), stage); e.setObjectIdFromRaw(i.idBuffer(), i.idOffset()); e.setFileMode(_tw.getFileMode(tree)); _builder.add(e); } }
public void testFindSingleFile() { string path = "a-File-path"; DirCache dc = DirCache.read(db); DirCacheBuilder b = dc.builder(); Assert.IsNotNull(b); DirCacheEntry entOrig = new DirCacheEntry(path); entOrig.setFileMode(FileMode.RegularFile); Assert.AreNotSame(path, entOrig.getPathString()); Assert.AreEqual(path, entOrig.getPathString()); b.add(entOrig); b.finish(); Assert.AreEqual(1, dc.getEntryCount()); Assert.AreSame(entOrig, dc.getEntry(0)); Assert.AreEqual(0, dc.findEntry(path)); Assert.AreEqual(-1, dc.findEntry("@@-before")); Assert.AreEqual(0, real(dc.findEntry("@@-before"))); Assert.AreEqual(-2, dc.findEntry("a-zoo")); Assert.AreEqual(1, real(dc.findEntry("a-zoo"))); Assert.AreSame(entOrig, dc.getEntry(path)); }
private void testLongPath(int len) { string longPath = makeLongPath(len); string shortPath = "~~~ shorter-path"; DirCacheEntry longEnt = new DirCacheEntry(longPath); DirCacheEntry shortEnt = new DirCacheEntry(shortPath); longEnt.setFileMode(FileMode.RegularFile); shortEnt.setFileMode(FileMode.RegularFile); Assert.AreEqual(longPath, longEnt.getPathString()); Assert.AreEqual(shortPath, shortEnt.getPathString()); DirCache dc1 = DirCache.Lock(db); DirCacheBuilder b = dc1.builder(); b.add(longEnt); b.add(shortEnt); Assert.IsTrue(b.commit()); Assert.AreEqual(2, dc1.getEntryCount()); Assert.AreSame(longEnt, dc1.getEntry(0)); Assert.AreSame(shortEnt, dc1.getEntry(1)); DirCache dc2 = DirCache.read(db); Assert.AreEqual(2, dc2.getEntryCount()); Assert.AreNotSame(longEnt, dc2.getEntry(0)); Assert.AreEqual(longPath, dc2.getEntry(0).getPathString()); Assert.AreNotSame(shortEnt, dc2.getEntry(1)); Assert.AreEqual(shortPath, dc2.getEntry(1).getPathString()); }