Bladeren bron

Remove deprecated Repository.mapTree

The mapTree() routines have been deprecated for a long time, and their
sibilings for mapCommit() and mapTag() were already removed from the
main Repository API.

Remove mapTree().  Application callers who only need the tree's name
can use resolve("^{tree}") syntax to resolve to the tree ObjectId, or
fail if the input is not a tree.

Applications that want to read a tree should use DirCache or TreeWalk.

Change-Id: I85726413790fc87721271c482f6636f81baf8b82
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
tags/v0.12.1
Shawn O. Pearce 13 jaren geleden
bovenliggende
commit
ef822fe3cd

+ 10
- 8
org.eclipse.jgit.test/exttst/org/eclipse/jgit/lib/T0007_GitIndexTest.java Bestand weergeven

assertEquals("c696abc3ab8e091c665f49d00eb8919690b3aec3", id.name()); assertEquals("c696abc3ab8e091c665f49d00eb8919690b3aec3", id.name());
GitIndex index2 = new GitIndex(db); GitIndex index2 = new GitIndex(db);


index2.readTree(db.mapTree(ObjectId.fromString(
"c696abc3ab8e091c665f49d00eb8919690b3aec3")));
index2.readTree(mapTree("c696abc3ab8e091c665f49d00eb8919690b3aec3"));
Entry[] members = index2.getMembers(); Entry[] members = index2.getMembers();
assertEquals(3, members.length); assertEquals(3, members.length);
assertEquals("a.b", members[0].getName()); assertEquals("a.b", members[0].getName());
assertEquals("ba78e065e2c261d4f7b8f42107588051e87e18e9", id.name()); assertEquals("ba78e065e2c261d4f7b8f42107588051e87e18e9", id.name());
GitIndex index2 = new GitIndex(db); GitIndex index2 = new GitIndex(db);


index2.readTree(db.mapTree(ObjectId.fromString(
"ba78e065e2c261d4f7b8f42107588051e87e18e9")));
index2.readTree(mapTree("ba78e065e2c261d4f7b8f42107588051e87e18e9"));
Entry[] members = index2.getMembers(); Entry[] members = index2.getMembers();
assertEquals(6, members.length); assertEquals(6, members.length);
assertEquals("a.b", members[0].getName()); assertEquals("a.b", members[0].getName());
GitIndex index2 = new GitIndex(db); GitIndex index2 = new GitIndex(db);
assertEquals(0, index2.getMembers().length); assertEquals(0, index2.getMembers().length);


index2.readTree(db.mapTree(ObjectId.fromString(
"c696abc3ab8e091c665f49d00eb8919690b3aec3")));
index2.readTree(mapTree("c696abc3ab8e091c665f49d00eb8919690b3aec3"));


index2.checkout(trash); index2.checkout(trash);
assertEquals("data:a/b", read(aslashb)); assertEquals("data:a/b", read(aslashb));
index.filemode = Boolean.TRUE; // TODO: we need a way to set this using config index.filemode = Boolean.TRUE; // TODO: we need a way to set this using config
index.add(trash, execFile); index.add(trash, execFile);
index.add(trash, nonexecFile); index.add(trash, nonexecFile);
Tree tree = db.mapTree(index.writeTree());
Tree tree = mapTree(index.writeTree().name());
assertEquals(FileMode.EXECUTABLE_FILE, tree.findBlobMember(execFile.getName()).getMode()); assertEquals(FileMode.EXECUTABLE_FILE, tree.findBlobMember(execFile.getName()).getMode());
assertEquals(FileMode.REGULAR_FILE, tree.findBlobMember(nonexecFile.getName()).getMode()); assertEquals(FileMode.REGULAR_FILE, tree.findBlobMember(nonexecFile.getName()).getMode());


index.filemode = Boolean.FALSE; // TODO: we need a way to set this using config index.filemode = Boolean.FALSE; // TODO: we need a way to set this using config
index.add(trash, execFile); index.add(trash, execFile);
index.add(trash, nonexecFile); index.add(trash, nonexecFile);
Tree tree = db.mapTree(index.writeTree());
Tree tree = mapTree(index.writeTree().name());
assertEquals(FileMode.REGULAR_FILE, tree.findBlobMember(execFile.getName()).getMode()); assertEquals(FileMode.REGULAR_FILE, tree.findBlobMember(execFile.getName()).getMode());
assertEquals(FileMode.REGULAR_FILE, tree.findBlobMember(nonexecFile.getName()).getMode()); assertEquals(FileMode.REGULAR_FILE, tree.findBlobMember(nonexecFile.getName()).getMode());


write(path, body); write(path, body);
return path; return path;
} }

private Tree mapTree(String name) throws IOException {
ObjectId id = db.resolve(name + "^{tree}");
return new Tree(db, id, db.open(id).getCachedBytes());
}
} }

+ 7
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0002_TreeTest.java Bestand weergeven



@Test @Test
public void test009_SymlinkAndGitlink() throws IOException { public void test009_SymlinkAndGitlink() throws IOException {
final Tree symlinkTree = db.mapTree("symlink");
final Tree symlinkTree = mapTree("symlink");
assertTrue("Symlink entry exists", symlinkTree.existsBlob("symlink.txt")); assertTrue("Symlink entry exists", symlinkTree.existsBlob("symlink.txt"));
final Tree gitlinkTree = db.mapTree("gitlink");
final Tree gitlinkTree = mapTree("gitlink");
assertTrue("Gitlink entry exists", gitlinkTree.existsBlob("submodule")); assertTrue("Gitlink entry exists", gitlinkTree.existsBlob("submodule"));
} }

private Tree mapTree(String name) throws IOException {
ObjectId id = db.resolve(name + "^{tree}");
return new Tree(db, id, db.open(id).getCachedBytes());
}
} }

+ 3
- 3
org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/SimpleMergeTest.java Bestand weergeven

Merger ourMerger = MergeStrategy.OURS.newMerger(db); Merger ourMerger = MergeStrategy.OURS.newMerger(db);
boolean merge = ourMerger.merge(new ObjectId[] { db.resolve("a"), db.resolve("c") }); boolean merge = ourMerger.merge(new ObjectId[] { db.resolve("a"), db.resolve("c") });
assertTrue(merge); assertTrue(merge);
assertEquals(db.mapTree("a").getId(), ourMerger.getResultTreeId());
assertEquals(db.resolve("a^{tree}"), ourMerger.getResultTreeId());
} }


@Test @Test
Merger ourMerger = MergeStrategy.THEIRS.newMerger(db); Merger ourMerger = MergeStrategy.THEIRS.newMerger(db);
boolean merge = ourMerger.merge(new ObjectId[] { db.resolve("a"), db.resolve("c") }); boolean merge = ourMerger.merge(new ObjectId[] { db.resolve("a"), db.resolve("c") });
assertTrue(merge); assertTrue(merge);
assertEquals(db.mapTree("c").getId(), ourMerger.getResultTreeId());
assertEquals(db.resolve("c^{tree}"), ourMerger.getResultTreeId());
} }


@Test @Test
Merger ourMerger = MergeStrategy.SIMPLE_TWO_WAY_IN_CORE.newMerger(db); Merger ourMerger = MergeStrategy.SIMPLE_TWO_WAY_IN_CORE.newMerger(db);
boolean merge = ourMerger.merge(new ObjectId[] { db.resolve("a^0^0^0"), db.resolve("a^0^0^1") }); boolean merge = ourMerger.merge(new ObjectId[] { db.resolve("a^0^0^0"), db.resolve("a^0^0^1") });
assertTrue(merge); assertTrue(merge);
assertEquals(db.mapTree("a^0^0").getId(), ourMerger.getResultTreeId());
assertEquals(db.resolve("a^0^0^{tree}"), ourMerger.getResultTreeId());
} }


@Test @Test

+ 0
- 47
org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java Bestand weergeven

return getObjectDatabase().open(objectId, typeHint); return getObjectDatabase().open(objectId, typeHint);
} }


/**
* Access a Tree object using a symbolic reference. This reference may
* be a SHA-1 or ref in combination with a number of symbols translating
* from one ref or SHA1-1 to another, such as HEAD^{tree} etc.
*
* @param revstr a reference to a git commit object
* @return a Tree named by the specified string
* @throws IOException
*
* @see #resolve(String)
* @deprecated Use {@link #resolve(String)} and pass its return value to
* {@link org.eclipse.jgit.treewalk.TreeWalk#addTree(AnyObjectId)}.
*/
@Deprecated
public Tree mapTree(final String revstr) throws IOException {
final ObjectId id = resolve(revstr);
return id != null ? mapTree(id) : null;
}

/**
* Access a Tree by SHA'1 id.
* @param id
* @return Tree or null
* @throws IOException for I/O error or unexpected object type.
* @deprecated Use {@link org.eclipse.jgit.treewalk.TreeWalk#addTree(AnyObjectId)}.
*/
@Deprecated
public Tree mapTree(final ObjectId id) throws IOException {
final ObjectLoader or;
try {
or = open(id);
} catch (MissingObjectException notFound) {
return null;
}
final byte[] raw = or.getCachedBytes();
switch (or.getType()) {
case Constants.OBJ_TREE:
return new Tree(this, id, raw);

case Constants.OBJ_COMMIT:
return mapTree(ObjectId.fromString(raw, 5));

default:
throw new IncorrectObjectTypeException(id, Constants.TYPE_TREE);
}
}

/** /**
* Create a command to update, create or delete a ref in this repository. * Create a command to update, create or delete a ref in this repository.
* *

Laden…
Annuleren
Opslaan