NoMergeBaseException.java
- /*
- * Copyright (C) 2013, Christian Halstrick <christian.halstrick@sap.com> and others
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Distribution License v. 1.0 which is available at
- * https://www.eclipse.org/org/documents/edl-v10.php.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- package org.eclipse.jgit.errors;
- import java.io.IOException;
- import java.text.MessageFormat;
- import org.eclipse.jgit.internal.JGitText;
- import org.eclipse.jgit.merge.RecursiveMerger;
- /**
- * Exception thrown if a merge fails because no merge base could be determined.
- *
- * @since 3.0
- */
- public class NoMergeBaseException extends IOException {
- private static final long serialVersionUID = 1L;
- private MergeBaseFailureReason reason;
- /**
- * An enum listing the different reason why no merge base could be
- * determined.
- */
- public enum MergeBaseFailureReason {
- /**
- * Multiple merge bases have been found (e.g. the commits to be merged
- * have multiple common predecessors) but the merge strategy doesn't
- * support this (e.g. ResolveMerge)
- */
- MULTIPLE_MERGE_BASES_NOT_SUPPORTED,
- /**
- * The number of merge bases exceeds {@link RecursiveMerger#MAX_BASES}
- */
- TOO_MANY_MERGE_BASES,
- /**
- * In order to find a single merge base it may required to merge
- * together multiple common predecessors. If during these merges
- * conflicts occur the merge fails with this reason
- */
- CONFLICTS_DURING_MERGE_BASE_CALCULATION
- }
- /**
- * Construct a NoMergeBase exception
- *
- * @param reason
- * the reason why no merge base could be found
- * @param message
- * a text describing the problem
- */
- public NoMergeBaseException(MergeBaseFailureReason reason, String message) {
- super(MessageFormat.format(JGitText.get().noMergeBase,
- reason.toString(), message));
- this.reason = reason;
- }
- /**
- * Construct a NoMergeBase exception
- *
- * @param reason
- * the reason why no merge base could be found
- * @param message
- * a text describing the problem
- * @param why
- * an exception causing this error
- */
- public NoMergeBaseException(MergeBaseFailureReason reason, String message,
- Throwable why) {
- super(MessageFormat.format(JGitText.get().noMergeBase,
- reason.toString(), message));
- this.reason = reason;
- initCause(why);
- }
- /**
- * Get the reason why no merge base could be found
- *
- * @return the reason why no merge base could be found
- */
- public MergeBaseFailureReason getReason() {
- return reason;
- }
- }