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>
This commit is contained in:
parent
99608f0b9a
commit
1128326add
|
@ -42,8 +42,11 @@
|
|||
*/
|
||||
package org.eclipse.jgit.pgm;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
|
||||
import org.eclipse.jgit.util.FileUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -107,6 +110,29 @@ public void testCheckoutHead() throws Exception {
|
|||
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) {
|
||||
// if there is more than one line, ignore last one if empty
|
||||
Assert.assertEquals(
|
||||
|
|
Loading…
Reference in New Issue