Browse Source

Add pgm test for checkout of existing branch with checkout conflict

Add a test that checks out an existing branch with a dirty working tree
and involves a checkout conflict. This test should pass with a message:
"error: Your local changes to the following files would be overwritten
by checkout: a".

Change-Id: I5428a04a7630d9e0101404ea1aedd796f127bd7d
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-3.3
Axel Richard 11 years ago committed by Matthias Sohn
parent
commit
1128326add
  1. 26
      org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/CheckoutTest.java

26
org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/CheckoutTest.java

@ -42,8 +42,11 @@
*/ */
package org.eclipse.jgit.pgm; package org.eclipse.jgit.pgm;
import java.io.File;
import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.CLIRepositoryTestCase; import org.eclipse.jgit.lib.CLIRepositoryTestCase;
import org.eclipse.jgit.util.FileUtils;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
@ -107,6 +110,29 @@ public class CheckoutTest extends CLIRepositoryTestCase {
assertEquals("", execute("git checkout HEAD")); assertEquals("", execute("git checkout HEAD"));
} }
@Test
public void testCheckoutExistingBranchWithConflict() throws Exception {
Git git = new Git(db);
writeTrashFile("a", "Hello world a");
git.add().addFilepattern(".").call();
git.commit().setMessage("commit file a").call();
git.branchCreate().setName("branch_1").call();
git.rm().addFilepattern("a").call();
FileUtils.mkdirs(new File(db.getWorkTree(), "a"));
writeTrashFile("a/b", "Hello world b");
git.add().addFilepattern("a/b").call();
git.commit().setMessage("commit folder a").call();
git.rm().addFilepattern("a").call();
writeTrashFile("a", "New Hello world a");
git.add().addFilepattern(".").call();
String[] execute = execute("git checkout branch_1");
Assert.assertEquals(
"error: Your local changes to the following files would be overwritten by checkout:",
execute[0]);
Assert.assertEquals("\ta", execute[1]);
}
static private void assertEquals(String expected, String[] actual) { static private void assertEquals(String expected, String[] actual) {
// if there is more than one line, ignore last one if empty // if there is more than one line, ignore last one if empty
Assert.assertEquals( Assert.assertEquals(

Loading…
Cancel
Save