diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogResolveTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogResolveTest.java index 75d74fca7..7db9f60fd 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogResolveTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogResolveTest.java @@ -60,117 +60,123 @@ public class ReflogResolveTest extends RepositoryTestCase { @Test public void resolveMasterCommits() throws Exception { - Git git = new Git(db); - writeTrashFile("file.txt", "content"); - git.add().addFilepattern("file.txt").call(); - RevCommit c1 = git.commit().setMessage("create file").call(); - writeTrashFile("file.txt", "content2"); - git.add().addFilepattern("file.txt").call(); - RevCommit c2 = git.commit().setMessage("edit file").call(); - - assertEquals(c2, db.resolve("master@{0}")); - assertEquals(c1, db.resolve("master@{1}")); + try (Git git = new Git(db)) { + writeTrashFile("file.txt", "content"); + git.add().addFilepattern("file.txt").call(); + RevCommit c1 = git.commit().setMessage("create file").call(); + writeTrashFile("file.txt", "content2"); + git.add().addFilepattern("file.txt").call(); + RevCommit c2 = git.commit().setMessage("edit file").call(); + + assertEquals(c2, db.resolve("master@{0}")); + assertEquals(c1, db.resolve("master@{1}")); + } } @Test public void resolveUnnamedCurrentBranchCommits() throws Exception { - Git git = new Git(db); - writeTrashFile("file.txt", "content"); - git.add().addFilepattern("file.txt").call(); - RevCommit c1 = git.commit().setMessage("create file").call(); - writeTrashFile("file.txt", "content2"); - git.add().addFilepattern("file.txt").call(); - RevCommit c2 = git.commit().setMessage("edit file").call(); - - assertEquals(c2, db.resolve("master@{0}")); - assertEquals(c1, db.resolve("master@{1}")); - - git.checkout().setCreateBranch(true).setName("newbranch") - .setStartPoint(c1).call(); - - // same as current branch, e.g. master - assertEquals(c1, db.resolve("@{0}")); - try { + try (Git git = new Git(db)) { + writeTrashFile("file.txt", "content"); + git.add().addFilepattern("file.txt").call(); + RevCommit c1 = git.commit().setMessage("create file").call(); + writeTrashFile("file.txt", "content2"); + git.add().addFilepattern("file.txt").call(); + RevCommit c2 = git.commit().setMessage("edit file").call(); + + assertEquals(c2, db.resolve("master@{0}")); + assertEquals(c1, db.resolve("master@{1}")); + + git.checkout().setCreateBranch(true).setName("newbranch") + .setStartPoint(c1).call(); + + // same as current branch, e.g. master + assertEquals(c1, db.resolve("@{0}")); + try { + assertEquals(c1, db.resolve("@{1}")); + fail(); // Looking at wrong ref, e.g HEAD + } catch (RevisionSyntaxException e) { + assertNotNull(e); + } + + // detached head, read HEAD reflog + git.checkout().setName(c2.getName()).call(); + assertEquals(c2, db.resolve("@{0}")); assertEquals(c1, db.resolve("@{1}")); - fail(); // Looking at wrong ref, e.g HEAD - } catch (RevisionSyntaxException e) { - assertNotNull(e); + assertEquals(c2, db.resolve("@{2}")); } - - // detached head, read HEAD reflog - git.checkout().setName(c2.getName()).call(); - assertEquals(c2, db.resolve("@{0}")); - assertEquals(c1, db.resolve("@{1}")); - assertEquals(c2, db.resolve("@{2}")); } @Test public void resolveReflogParent() throws Exception { - Git git = new Git(db); - writeTrashFile("file.txt", "content"); - git.add().addFilepattern("file.txt").call(); - RevCommit c1 = git.commit().setMessage("create file").call(); - writeTrashFile("file.txt", "content2"); - git.add().addFilepattern("file.txt").call(); - git.commit().setMessage("edit file").call(); - - assertEquals(c1, db.resolve("master@{0}~1")); + try (Git git = new Git(db)) { + writeTrashFile("file.txt", "content"); + git.add().addFilepattern("file.txt").call(); + RevCommit c1 = git.commit().setMessage("create file").call(); + writeTrashFile("file.txt", "content2"); + git.add().addFilepattern("file.txt").call(); + git.commit().setMessage("edit file").call(); + + assertEquals(c1, db.resolve("master@{0}~1")); + } } @Test public void resolveNonExistingBranch() throws Exception { - Git git = new Git(db); - writeTrashFile("file.txt", "content"); - git.add().addFilepattern("file.txt").call(); - git.commit().setMessage("create file").call(); - assertNull(db.resolve("notabranch@{7}")); + try (Git git = new Git(db)) { + writeTrashFile("file.txt", "content"); + git.add().addFilepattern("file.txt").call(); + git.commit().setMessage("create file").call(); + assertNull(db.resolve("notabranch@{7}")); + } } @Test public void resolvePreviousBranch() throws Exception { - Git git = new Git(db); - writeTrashFile("file.txt", "content"); - git.add().addFilepattern("file.txt").call(); - RevCommit c1 = git.commit().setMessage("create file").call(); - writeTrashFile("file.txt", "content2"); - git.add().addFilepattern("file.txt").call(); - RevCommit c2 = git.commit().setMessage("edit file").call(); - - git.checkout().setCreateBranch(true).setName("newbranch") - .setStartPoint(c1).call(); - - git.checkout().setName(c1.getName()).call(); - - git.checkout().setName("master").call(); - - assertEquals(c1.getName(), db.simplify("@{-1}")); - assertEquals("newbranch", db.simplify("@{-2}")); - assertEquals("master", db.simplify("@{-3}")); - - // chained expression - try { - // Cannot refer to reflog of detached head - db.resolve("@{-1}@{0}"); - fail(); - } catch (RevisionSyntaxException e) { - // good + try (Git git = new Git(db)) { + writeTrashFile("file.txt", "content"); + git.add().addFilepattern("file.txt").call(); + RevCommit c1 = git.commit().setMessage("create file").call(); + writeTrashFile("file.txt", "content2"); + git.add().addFilepattern("file.txt").call(); + RevCommit c2 = git.commit().setMessage("edit file").call(); + + git.checkout().setCreateBranch(true).setName("newbranch") + .setStartPoint(c1).call(); + + git.checkout().setName(c1.getName()).call(); + + git.checkout().setName("master").call(); + + assertEquals(c1.getName(), db.simplify("@{-1}")); + assertEquals("newbranch", db.simplify("@{-2}")); + assertEquals("master", db.simplify("@{-3}")); + + // chained expression + try { + // Cannot refer to reflog of detached head + db.resolve("@{-1}@{0}"); + fail(); + } catch (RevisionSyntaxException e) { + // good + } + assertEquals(c1.getName(), db.resolve("@{-2}@{0}").getName()); + + assertEquals(c2.getName(), db.resolve("@{-3}@{0}").getName()); } - assertEquals(c1.getName(), db.resolve("@{-2}@{0}").getName()); - - assertEquals(c2.getName(), db.resolve("@{-3}@{0}").getName()); } @Test public void resolveDate() throws Exception { - Git git = new Git(db); - writeTrashFile("file.txt", "content"); - git.add().addFilepattern("file.txt").call(); - git.commit().setMessage("create file").call(); - try { - db.resolve("master@{yesterday}"); - fail("Exception not thrown"); - } catch (RevisionSyntaxException e) { - assertNotNull(e); + try (Git git = new Git(db)) { + writeTrashFile("file.txt", "content"); + git.add().addFilepattern("file.txt").call(); + git.commit().setMessage("create file").call(); + try { + db.resolve("master@{yesterday}"); + fail("Exception not thrown"); + } catch (RevisionSyntaxException e) { + assertNotNull(e); + } } } } \ No newline at end of file