Detect proper merge and prevent empty commits

This commit is contained in:
Rene Pfeuffer
2019-10-16 14:59:38 +02:00
parent 668007e084
commit 4cb79ffe5a
5 changed files with 32 additions and 6 deletions

View File

@@ -84,6 +84,26 @@ public class GitMergeCommandTest extends AbstractGitCommandTestBase {
@Test
public void shouldAllowEmptyMergeCommit() throws IOException, GitAPIException {
GitMergeCommand command = createCommand();
MergeCommandRequest request = new MergeCommandRequest();
request.setTargetBranch("master");
request.setBranchToMerge("empty_merge");
request.setAuthor(new Person("Dirk Gently", "dirk@holistic.det"));
MergeCommandResult mergeCommandResult = command.merge(request);
assertThat(mergeCommandResult.isSuccess()).isTrue();
Repository repository = createContext().open();
Iterable<RevCommit> commits = new Git(repository).log().add(repository.resolve("master")).setMaxCount(1).call();
RevCommit mergeCommit = commits.iterator().next();
assertThat(mergeCommit.getParentCount()).isEqualTo(2);
assertThat(mergeCommit.getParent(0).name()).isEqualTo("fcd0ef1831e4002ac43ea539f4094334c79ea9ec");
assertThat(mergeCommit.getParent(1).name()).isEqualTo("d81ad6c63d7e2162308d69637b339dedd1d9201c");
}
@Test
public void shouldNotMergeTwice() throws IOException, GitAPIException {
GitMergeCommand command = createCommand();
MergeCommandRequest request = new MergeCommandRequest();
request.setTargetBranch("master");
@@ -103,7 +123,7 @@ public class GitMergeCommandTest extends AbstractGitCommandTestBase {
ObjectId secondMergeCommit = new Git(repository).log().add(repository.resolve("master")).setMaxCount(1).call().iterator().next().getId();
assertThat(firstMergeCommit).isNotEqualTo(secondMergeCommit);
assertThat(secondMergeCommit).isEqualTo(firstMergeCommit);
}
@Test