diff options
author | Nail Samatov <sanail@yandex.ru> | 2020-05-07 12:03:56 +0300 |
---|---|---|
committer | Nail Samatov <sanail@yandex.ru> | 2020-05-07 12:18:44 +0300 |
commit | f30e48914e72efe2ac0d28140e07aa8d647de4f8 (patch) | |
tree | d0f5181bf5a79cc28a652173a57afc99da8b161e /org.eclipse.jgit.test/tst | |
parent | e69e642ea4a7ecad1f3f8c3c450c5b55131b7925 (diff) | |
download | jgit-f30e48914e72efe2ac0d28140e07aa8d647de4f8.tar.gz jgit-f30e48914e72efe2ac0d28140e07aa8d647de4f8.zip |
Fix error occurring during checkout
Fix NullPointerException occurring when calling
CheckoutCommand with forced == true option when
the branch isn't changed and there is deleted
uncommitted file.
Change-Id: I99bf1fc25e6889f07092320d7bc2772ec5d341b5
Signed-off-by: Nail Samatov <sanail@yandex.ru>
Diffstat (limited to 'org.eclipse.jgit.test/tst')
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java index b0355b2b6f..0a0a88c838 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java @@ -125,6 +125,28 @@ public class CheckoutCommandTest extends RepositoryTestCase { } @Test + public void testCheckoutForced_deleteFileAndRestore() throws Exception { + File testFile = new File(db.getWorkTree(), "Test.txt"); + assertTrue(testFile.exists()); + + assertEquals("test", git.getRepository().getBranch()); + FileUtils.delete(testFile); + assertFalse(testFile.exists()); + // Switch from "test" to "master". + assertEquals(initialCommit.getId(), git.checkout().setName("master") + .setForced(true).call().getObjectId()); + assertTrue(testFile.exists()); + + assertEquals("master", git.getRepository().getBranch()); + FileUtils.delete(testFile); + assertFalse(testFile.exists()); + // Stay in current branch. + assertEquals(initialCommit.getId(), git.checkout().setName("master") + .setForced(true).call().getObjectId()); + assertTrue(testFile.exists()); + } + + @Test public void testCreateBranchOnCheckout() throws Exception { git.checkout().setCreateBranch(true).setName("test2").call(); assertNotNull(db.exactRef("refs/heads/test2")); |