|
|
@@ -408,6 +408,93 @@ public class StashApplyCommandTest extends RepositoryTestCase { |
|
|
|
read(PATH)); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void stashedApplyOnOtherBranch() throws Exception { |
|
|
|
writeTrashFile(PATH, "content\nmore content\n"); |
|
|
|
git.add().addFilepattern(PATH).call(); |
|
|
|
git.commit().setMessage("more content").call(); |
|
|
|
String path2 = "file2.txt"; |
|
|
|
File file2 = writeTrashFile(path2, "content\nmore content\n"); |
|
|
|
git.add().addFilepattern(PATH).call(); |
|
|
|
git.add().addFilepattern(path2).call(); |
|
|
|
git.commit().setMessage("even content").call(); |
|
|
|
|
|
|
|
String otherBranch = "otherBranch"; |
|
|
|
git.branchCreate().setName(otherBranch).call(); |
|
|
|
|
|
|
|
writeTrashFile(PATH, "master content"); |
|
|
|
git.add().addFilepattern(PATH).call(); |
|
|
|
git.commit().setMessage("even content").call(); |
|
|
|
|
|
|
|
git.checkout().setName(otherBranch).call(); |
|
|
|
|
|
|
|
writeTrashFile(PATH, "otherBranch content"); |
|
|
|
git.add().addFilepattern(PATH).call(); |
|
|
|
git.commit().setMessage("even more content").call(); |
|
|
|
|
|
|
|
writeTrashFile(path2, "content\nstashed change\nmore content\n"); |
|
|
|
|
|
|
|
RevCommit stashed = git.stashCreate().call(); |
|
|
|
|
|
|
|
assertNotNull(stashed); |
|
|
|
assertEquals("content\nmore content\n", read(file2)); |
|
|
|
assertEquals("otherBranch content", |
|
|
|
read(committedFile)); |
|
|
|
assertTrue(git.status().call().isClean()); |
|
|
|
|
|
|
|
git.checkout().setName("master").call(); |
|
|
|
git.stashApply().call(); |
|
|
|
assertEquals("content\nstashed change\nmore content\n", read(file2)); |
|
|
|
assertEquals("master content", |
|
|
|
read(committedFile)); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void stashedApplyOnOtherBranchWithStagedChange() throws Exception { |
|
|
|
writeTrashFile(PATH, "content\nmore content\n"); |
|
|
|
git.add().addFilepattern(PATH).call(); |
|
|
|
git.commit().setMessage("more content").call(); |
|
|
|
String path2 = "file2.txt"; |
|
|
|
File file2 = writeTrashFile(path2, "content\nmore content\n"); |
|
|
|
git.add().addFilepattern(PATH).call(); |
|
|
|
git.add().addFilepattern(path2).call(); |
|
|
|
git.commit().setMessage("even content").call(); |
|
|
|
|
|
|
|
String otherBranch = "otherBranch"; |
|
|
|
git.branchCreate().setName(otherBranch).call(); |
|
|
|
|
|
|
|
writeTrashFile(PATH, "master content"); |
|
|
|
git.add().addFilepattern(PATH).call(); |
|
|
|
git.commit().setMessage("even content").call(); |
|
|
|
|
|
|
|
git.checkout().setName(otherBranch).call(); |
|
|
|
|
|
|
|
writeTrashFile(PATH, "otherBranch content"); |
|
|
|
git.add().addFilepattern(PATH).call(); |
|
|
|
git.commit().setMessage("even more content").call(); |
|
|
|
|
|
|
|
writeTrashFile(path2, |
|
|
|
"content\nstashed change in index\nmore content\n"); |
|
|
|
git.add().addFilepattern(path2).call(); |
|
|
|
writeTrashFile(path2, "content\nstashed change\nmore content\n"); |
|
|
|
|
|
|
|
RevCommit stashed = git.stashCreate().call(); |
|
|
|
|
|
|
|
assertNotNull(stashed); |
|
|
|
assertEquals("content\nmore content\n", read(file2)); |
|
|
|
assertEquals("otherBranch content", read(committedFile)); |
|
|
|
assertTrue(git.status().call().isClean()); |
|
|
|
|
|
|
|
git.checkout().setName("master").call(); |
|
|
|
git.stashApply().call(); |
|
|
|
assertEquals("content\nstashed change\nmore content\n", read(file2)); |
|
|
|
assertEquals( |
|
|
|
"[file.txt, mode:100644, content:master content]" |
|
|
|
+ "[file2.txt, mode:100644, content:content\nstashed change in index\nmore content\n]", |
|
|
|
indexState(CONTENT)); |
|
|
|
assertEquals("master content", read(committedFile)); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void workingDirectoryContentMerge() throws Exception { |
|
|
|
writeTrashFile(PATH, "content\nmore content\n"); |