aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
diff options
context:
space:
mode:
authorRobin Rosenberg <robin.rosenberg@dewire.com>2011-11-08 22:07:59 +0100
committerChristian Halstrick <christian.halstrick@sap.com>2011-11-09 09:30:54 +0100
commita1c614433cf2bc415f299f82146a178f61d306e1 (patch)
treef39e027842bc5a41029cf803a05106e7c2265123 /org.eclipse.jgit.test
parent83c172f0f7d1fb5ceb14fd58704ae18dc59a1e33 (diff)
downloadjgit-a1c614433cf2bc415f299f82146a178f61d306e1.tar.gz
jgit-a1c614433cf2bc415f299f82146a178f61d306e1.zip
Do not use the deprecated Tree class internally
Replace it with DirCache, like we did to remove GitIndex. Change-Id: Ia354770cee5c68f19945279b34aef6de54697435
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java78
1 files changed, 47 insertions, 31 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java
index 3001880d2d..929753ab14 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/DirCacheCheckoutTest.java
@@ -63,6 +63,7 @@ import org.eclipse.jgit.dircache.DirCache;
import org.eclipse.jgit.dircache.DirCacheCheckout;
import org.eclipse.jgit.dircache.DirCacheEditor;
import org.eclipse.jgit.dircache.DirCacheEntry;
+import org.eclipse.jgit.dircache.DirCacheEditor.PathEdit;
import org.eclipse.jgit.errors.CheckoutConflictException;
import org.eclipse.jgit.errors.CorruptObjectException;
import org.eclipse.jgit.errors.NoWorkTreeException;
@@ -73,15 +74,15 @@ import org.junit.Test;
public class DirCacheCheckoutTest extends RepositoryTestCase {
private DirCacheCheckout dco;
- protected Tree theHead;
- protected Tree theMerge;
+ protected ObjectId theHead;
+ protected ObjectId theMerge;
private DirCache dirCache;
- private void prescanTwoTrees(Tree head, Tree merge)
+ private void prescanTwoTrees(ObjectId head, ObjectId merge)
throws IllegalStateException, IOException {
DirCache dc = db.lockDirCache();
try {
- dco = new DirCacheCheckout(db, head.getId(), dc, merge.getId());
+ dco = new DirCacheCheckout(db, head, dc, merge);
dco.preScanTwoTrees();
} finally {
dc.unlock();
@@ -91,7 +92,7 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
private void checkout() throws IOException {
DirCache dc = db.lockDirCache();
try {
- dco = new DirCacheCheckout(db, theHead.getId(), dc, theMerge.getId());
+ dco = new DirCacheCheckout(db, theHead, dc, theMerge);
dco.checkout();
} finally {
dc.unlock();
@@ -239,10 +240,11 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
@Test
public void testRules1thru3_NoIndexEntry() throws IOException {
- Tree head = new Tree(db);
- head = buildTree(mk("foo"));
- ObjectId objectId = head.findBlobMember("foo").getId();
- Tree merge = new Tree(db);
+ ObjectId head = buildTree(mk("foo"));
+ TreeWalk tw = TreeWalk.forPath(db, "foo", head);
+ ObjectId objectId = tw.getObjectId(0);
+ ObjectId merge = db.newObjectInserter().insert(Constants.OBJ_TREE,
+ new byte[0]);
prescanTwoTrees(head, merge);
@@ -253,7 +255,8 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
assertEquals(objectId, getUpdated().get("foo"));
merge = buildTree(mkmap("foo", "a"));
- ObjectId anotherId = merge.findBlobMember("foo").getId();
+ tw = TreeWalk.forPath(db, "foo", merge);
+ ObjectId anotherId = tw.getObjectId(0);
prescanTwoTrees(head, merge);
@@ -291,28 +294,41 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
}
- private Tree buildTree(HashMap<String, String> headEntries) throws IOException {
- Tree tree = new Tree(db);
- if (headEntries == null)
- return tree;
- FileTreeEntry fileEntry;
- Tree parent;
- ObjectInserter oi = db.newObjectInserter();
- try {
+ static final class AddEdit extends PathEdit {
+
+ private final ObjectId data;
+
+ private final long length;
+
+ public AddEdit(String entryPath, ObjectId data, long length) {
+ super(entryPath);
+ this.data = data;
+ this.length = length;
+ }
+
+ @Override
+ public void apply(DirCacheEntry ent) {
+ ent.setFileMode(FileMode.REGULAR_FILE);
+ ent.setLength(length);
+ ent.setObjectId(data);
+ }
+
+ }
+
+ private ObjectId buildTree(HashMap<String, String> headEntries)
+ throws IOException {
+ DirCache lockDirCache = DirCache.newInCore();
+ // assertTrue(lockDirCache.lock());
+ DirCacheEditor editor = lockDirCache.editor();
+ if (headEntries != null) {
for (java.util.Map.Entry<String, String> e : headEntries.entrySet()) {
- fileEntry = tree.addFile(e.getKey());
- fileEntry.setId(genSha1(e.getValue()));
- parent = fileEntry.getParent();
- while (parent != null) {
- parent.setId(oi.insert(Constants.OBJ_TREE, parent.format()));
- parent = parent.getParent();
- }
+ AddEdit addEdit = new AddEdit(e.getKey(),
+ genSha1(e.getValue()), e.getValue().length());
+ editor.add(addEdit);
}
- oi.flush();
- } finally {
- oi.release();
}
- return tree;
+ editor.finish();
+ return lockDirCache.writeTree(db.newObjectInserter());
}
ObjectId genSha1(String data) {
@@ -463,8 +479,8 @@ public class DirCacheCheckoutTest extends RepositoryTestCase {
*/
@Test
public void testDirectoryFileSimple() throws IOException {
- Tree treeDF = buildTree(mkmap("DF", "DF"));
- Tree treeDFDF = buildTree(mkmap("DF/DF", "DF/DF"));
+ ObjectId treeDF = buildTree(mkmap("DF", "DF"));
+ ObjectId treeDFDF = buildTree(mkmap("DF/DF", "DF/DF"));
buildIndex(mkmap("DF", "DF"));
prescanTwoTrees(treeDF, treeDFDF);