DescribeMergeConflicts - AWS CodeCommit

DescribeMergeConflicts

Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy. If the merge option for the attempted merge is specified as FAST_FORWARD_MERGE, an exception is thrown.

Request Syntax

{ "conflictDetailLevel": "string", "conflictResolutionStrategy": "string", "destinationCommitSpecifier": "string", "filePath": "string", "maxMergeHunks": number, "mergeOption": "string", "nextToken": "string", "repositoryName": "string", "sourceCommitSpecifier": "string" }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

conflictDetailLevel

The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.

Type: String

Valid Values: FILE_LEVEL | LINE_LEVEL

Required: No

conflictResolutionStrategy

Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.

Type: String

Valid Values: NONE | ACCEPT_SOURCE | ACCEPT_DESTINATION | AUTOMERGE

Required: No

destinationCommitSpecifier

The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).

Type: String

Required: Yes

filePath

The path of the target files used to describe the conflicts.

Type: String

Required: Yes

maxMergeHunks

The maximum number of merge hunks to include in the output.

Type: Integer

Required: No

mergeOption

The merge option or strategy you want to use to merge the code.

Type: String

Valid Values: FAST_FORWARD_MERGE | SQUASH_MERGE | THREE_WAY_MERGE

Required: Yes

nextToken

An enumeration token that, when provided in a request, returns the next batch of the results.

Type: String

Required: No

repositoryName

The name of the repository where you want to get information about a merge conflict.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 100.

Pattern: [\w\.-]+

Required: Yes

sourceCommitSpecifier

The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).

Type: String

Required: Yes

Response Syntax

{ "baseCommitId": "string", "conflictMetadata": { "contentConflict": boolean, "fileModeConflict": boolean, "fileModes": { "base": "string", "destination": "string", "source": "string" }, "filePath": "string", "fileSizes": { "base": number, "destination": number, "source": number }, "isBinaryFile": { "base": boolean, "destination": boolean, "source": boolean }, "mergeOperations": { "destination": "string", "source": "string" }, "numberOfConflicts": number, "objectTypeConflict": boolean, "objectTypes": { "base": "string", "destination": "string", "source": "string" } }, "destinationCommitId": "string", "mergeHunks": [ { "base": { "endLine": number, "hunkContent": "string", "startLine": number }, "destination": { "endLine": number, "hunkContent": "string", "startLine": number }, "isConflict": boolean, "source": { "endLine": number, "hunkContent": "string", "startLine": number } } ], "nextToken": "string", "sourceCommitId": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

baseCommitId

The commit ID of the merge base.

Type: String

conflictMetadata

Contains metadata about the conflicts found in the merge.

Type: ConflictMetadata object

destinationCommitId

The commit ID of the destination commit specifier that was used in the merge evaluation.

Type: String

mergeHunks

A list of merge hunks of the differences between the files or lines.

Type: Array of MergeHunk objects

nextToken

An enumeration token that can be used in a request to return the next batch of the results.

Type: String

sourceCommitId

The commit ID of the source commit specifier that was used in the merge evaluation.

Type: String

Errors

For information about the errors that are common to all actions, see Common Errors.

CommitDoesNotExistException

The specified commit does not exist or no commit was specified, and the specified repository has no default branch.

HTTP Status Code: 400

CommitRequiredException

A commit was not specified.

HTTP Status Code: 400

EncryptionIntegrityChecksFailedException

An encryption integrity check failed.

HTTP Status Code: 500

EncryptionKeyAccessDeniedException

An encryption key could not be accessed.

HTTP Status Code: 400

EncryptionKeyDisabledException

The encryption key is disabled.

HTTP Status Code: 400

EncryptionKeyNotFoundException

No encryption key was found.

HTTP Status Code: 400

EncryptionKeyUnavailableException

The encryption key is not available.

HTTP Status Code: 400

FileDoesNotExistException

The specified file does not exist. Verify that you have used the correct file name, full path, and extension.

HTTP Status Code: 400

InvalidCommitException

The specified commit is not valid.

HTTP Status Code: 400

InvalidConflictDetailLevelException

The specified conflict detail level is not valid.

HTTP Status Code: 400

InvalidConflictResolutionStrategyException

The specified conflict resolution strategy is not valid.

HTTP Status Code: 400

InvalidContinuationTokenException

The specified continuation token is not valid.

HTTP Status Code: 400

InvalidMaxMergeHunksException

The specified value for the number of merge hunks to return is not valid.

HTTP Status Code: 400

InvalidMergeOptionException

The specified merge option is not valid for this operation. Not all merge strategies are supported for all operations.

HTTP Status Code: 400

InvalidPathException

The specified path is not valid.

HTTP Status Code: 400

InvalidRepositoryNameException

A specified repository name is not valid.

Note

This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.

HTTP Status Code: 400

MaximumFileContentToLoadExceededException

The number of files to load exceeds the allowed limit.

HTTP Status Code: 400

MaximumItemsToCompareExceededException

The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.

HTTP Status Code: 400

MergeOptionRequiredException

A merge option or stategy is required, and none was provided.

HTTP Status Code: 400

PathRequiredException

The folderPath for a location cannot be null.

HTTP Status Code: 400

RepositoryDoesNotExistException

The specified repository does not exist.

HTTP Status Code: 400

RepositoryNameRequiredException

A repository name is required, but was not specified.

HTTP Status Code: 400

TipsDivergenceExceededException

The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using git diff or a diff tool.

HTTP Status Code: 400

Examples

Example

This example illustrates one usage of DescribeMergeConflicts.

Sample Request

POST / HTTP/1.1 Host: codecommit.us-east-1.amazonaws.com Accept-Encoding: identity Content-Length: 31 X-Amz-Target: CodeCommit_20150413.DescribeMergeConflicts X-Amz-Date: 20190428T213222Z User-Agent: aws-cli/1.16.137 Python/3.6.0 Windows/10 Content-Type: application/x-amz-json-1.1 Authorization: AWS4-HMAC-SHA256 Credential=AKIAI44QH8DHBEXAMPLE/20151028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;user-agent;x-amz-date;x-amz-target, Signature=8d9b5998EXAMPLE { "repositoryName": "MyDemoRepo", "sourceCommitSpecifier": "bugfix-bug1234", "destinationCommitSpecifier": "main", "mergeOption": "THREE_WAY_MERGE", "filePath": "/results" }

Sample Response

HTTP/1.1 200 OK x-amzn-RequestId: 0728aaa8-EXAMPLE Content-Type: application/x-amz-json-1.1 Content-Length: 55 Date: Sun, 28 Apr 2019 22:43:13 GMT { "sourceCommitId": "c5709475EXAMPLE", "destinationCommitId": "317f8570EXAMPLE", "baseCommitId": "fb12a539EXAMPLE", "conflictMetadata": { "filePath": "file1.py", "fileSizes": { "source": 123, "destination": 125, "base": 124 }, "fileModes": { "source": "EXECUTABLE", "destination": "EXECUTABLE", "base": "EXECUTABLE" }, "numberOfConflicts", 4, "isBinaryFile": { "source": false, "destination": false, "base": false }, "contentConflict": true, "fileModeConflict": false, "mergeOperations": { "source": "M", "destination": "M" } "mergeHunks":[ { "mergeHunk": { "isConflict": true "source": { "startLine": 123, "endLine": 123, "hunkContent" "JzCQbIVyEXAMPLE=" } "destination": { "startLine": 125, "endLine": 125, "hunkContent" "BytPbuMiEXAMPLE=" } "base": { "startLine": 124, "endLine": 124, "hunkContent" "MnKCdITaEXAMPLE=" } } } ] }

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: