Let merges without effect throw an exception

This commit is contained in:
Rene Pfeuffer
2019-12-19 09:47:31 +01:00
parent 1d3e51ce7b
commit f7c4894fb2
7 changed files with 21 additions and 26 deletions

View File

@@ -186,6 +186,10 @@ class AbstractGitCommand
return context;
}
sonia.scm.repository.Repository getRepository() {
return repository;
}
void checkOutBranch(String branchName) throws IOException {
try {
clone.checkout().setName(branchName).call();

View File

@@ -4,6 +4,7 @@ import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.MergeCommand;
import org.eclipse.jgit.api.MergeResult;
import org.eclipse.jgit.revwalk.RevCommit;
import sonia.scm.NoChangesMadeException;
import sonia.scm.repository.Repository;
import sonia.scm.repository.api.MergeCommandResult;
@@ -26,7 +27,7 @@ class GitMergeCommit extends GitMergeStrategy {
MergeResult result = doMergeInClone(mergeCommand);
if (result.getMergeStatus().isSuccessful()) {
Optional<RevCommit> revCommit = doCommit();
RevCommit revCommit = doCommit().orElseThrow(() -> new NoChangesMadeException(getRepository()));
push();
return MergeCommandResult.success(extractRevisionFromRevCommit(revCommit));
} else {

View File

@@ -4,6 +4,7 @@ import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.MergeCommand;
import org.eclipse.jgit.api.MergeResult;
import org.eclipse.jgit.revwalk.RevCommit;
import sonia.scm.NoChangesMadeException;
import sonia.scm.repository.Repository;
import sonia.scm.repository.api.MergeCommandResult;
@@ -26,7 +27,7 @@ class GitMergeWithSquash extends GitMergeStrategy {
MergeResult result = doMergeInClone(mergeCommand);
if (result.getMergeStatus().isSuccessful()) {
Optional<RevCommit> revCommit = doCommit();
RevCommit revCommit = doCommit().orElseThrow(() -> new NoChangesMadeException(getRepository()));
push();
return MergeCommandResult.success(extractRevisionFromRevCommit(revCommit));
} else {

View File

@@ -6,10 +6,7 @@ import java.util.Optional;
public class GitRevisionExtractor {
static String extractRevisionFromRevCommit(Optional<RevCommit> revCommit) {
if (revCommit.isPresent()) {
return revCommit.get().toString().split(" ")[1];
}
return "";
static String extractRevisionFromRevCommit(RevCommit revCommit) {
return revCommit.toString().split(" ")[1];
}
}