Class MergeOp
- All Implemented Interfaces:
AutoCloseable
Branches are reduced to the minimum number of heads needed to merge everything. This allows commits to be entered into the queue in any order (such as ancestors before descendants) and only the most recent commit on any line of development will be merged. All unmerged commits along a line of development must be in the submission queue in order to merge the tip of that line.
Conflicts are handled by discarding the entire line of development and marking it as conflicting, even if an earlier commit along that same line can be merged cleanly.
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic void
void
close()
merge
(Change change, IdentifiedUser caller, boolean checkSubmitRules, SubmitInput submitInput, boolean dryrun) Merges the given change.
-
Method Details
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
-
checkSubmitRequirements
- Throws:
ResourceConflictException
-
merge
public Change merge(Change change, IdentifiedUser caller, boolean checkSubmitRules, SubmitInput submitInput, boolean dryrun) throws RestApiException, UpdateException, IOException, org.eclipse.jgit.errors.ConfigInvalidException, PermissionBackendException Merges the given change.Depending on the server configuration, more changes may be affected, e.g. by submission of a topic or via superproject subscriptions. All affected changes are integrated using the projects integration strategy.
- Parameters:
change
- the change to be merged.caller
- the identity of the callercheckSubmitRules
- whether the prolog submit rules should be evaluatedsubmitInput
- parameters regarding the merge- Returns:
- the merged change
- Throws:
RestApiException
- if an error occurred.PermissionBackendException
- if permissions can't be checkedIOException
- an error occurred reading from NoteDb.UpdateException
org.eclipse.jgit.errors.ConfigInvalidException
-
getAllProjects
-
getMergeOpRepoManager
-