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 Amazon SDKs, see the following: