瀏覽代碼

ResolveMergerTest: Add tests for content merges

Change-Id: I2b85cc239e9b3090426c956cbf9af3deb4106a41
tags/v4.8.0.201705170830-rc1
Dave Borowitz 7 年之前
父節點
當前提交
edb6593ef0
共有 1 個檔案被更改,包括 58 行新增0 行删除
  1. 58
    0
      org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/ResolveMergerTest.java

+ 58
- 0
org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/ResolveMergerTest.java 查看文件

@@ -586,6 +586,64 @@ public class ResolveMergerTest extends RepositoryTestCase {
}
}

@Theory
public void checkContentMergeNoConflict(MergeStrategy strategy)
throws Exception {
Git git = Git.wrap(db);

writeTrashFile("file", "1\n2\n3");
git.add().addFilepattern("file").call();
RevCommit first = git.commit().setMessage("added file").call();

writeTrashFile("file", "1master\n2\n3");
git.commit().setAll(true).setMessage("modified file on master").call();

git.checkout().setCreateBranch(true).setStartPoint(first)
.setName("side").call();
writeTrashFile("file", "1\n2\n3side");
RevCommit sideCommit = git.commit().setAll(true)
.setMessage("modified file on side").call();

git.checkout().setName("master").call();
MergeResult result =
git.merge().setStrategy(strategy).include(sideCommit).call();
assertEquals(MergeStatus.MERGED, result.getMergeStatus());
String expected = "1master\n2\n3side";
assertEquals(expected, read("file"));
}

@Theory
public void checkContentMergeConflict(MergeStrategy strategy)
throws Exception {
Git git = Git.wrap(db);

writeTrashFile("file", "1\n2\n3");
git.add().addFilepattern("file").call();
RevCommit first = git.commit().setMessage("added file").call();

writeTrashFile("file", "1master\n2\n3");
git.commit().setAll(true).setMessage("modified file on master").call();

git.checkout().setCreateBranch(true).setStartPoint(first)
.setName("side").call();
writeTrashFile("file", "1side\n2\n3");
RevCommit sideCommit = git.commit().setAll(true)
.setMessage("modified file on side").call();

git.checkout().setName("master").call();
MergeResult result =
git.merge().setStrategy(strategy).include(sideCommit).call();
assertEquals(MergeStatus.CONFLICTING, result.getMergeStatus());
String expected = "<<<<<<< HEAD\n"
+ "1master\n"
+ "=======\n"
+ "1side\n"
+ ">>>>>>> " + sideCommit.name() + "\n"
+ "2\n"
+ "3";
assertEquals(expected, read("file"));
}

/**
* Merging after criss-cross merges. In this case we merge together two
* commits which have two equally good common ancestors

Loading…
取消
儲存