| com.atlassian.bitbucket.scm.ScmCommandFactory | 
Creates commands which provide basic SCM functionality such as creating repositories, retrieving
 commits and viewing diffs. Each method accepts a set of CommandParameters which are used to control the
 command's behaviour and output.
 
In general, commands fall into two categories:
PageRequest describing the page of output that should be returned and return
     an object graph when the command is executedVoid (usually null) when the
     command is executed
 Note: The repository against which created commands will operate was specified when the factory
 was retrieved from the ScmService, and cannot be changed.
 
Plugin developers: This is probably not the interface you want to use. The API provides services whose functionality is backed by the SCM. Using those services automatically chooses the correct SCM based on the repository, and provides a more stable, compatible API. In general, the functionality of this command factory is exposed by:
The documentation for each method on this interface includes a link to the API service method or methods which expose it.| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Retrieves blame (also sometimes referred to as annotations) for a file at a given revision. | |||||||||||
| Retrieves a page of  changesetsgiven a set ofcommit IDs, where each changeset includes the first page ofchangesbetween a requested commit and its first parent. | |||||||||||
| Retrieves  detailsfor the specified commit. | |||||||||||
| Streams commits which match the provided  parametersto the provided callback. | |||||||||||
| Retrieves a  pageof commits matching the specifiedparameters. | |||||||||||
| Retrieves the common ancestor for the provided commits | |||||||||||
| Resolves the default branch for the specified repository. | |||||||||||
| Streams a diff between two  commits. | |||||||||||
| Streams the  tree nodes(files, subdirectories and submodules) in the specifieddirectory. | |||||||||||
| Streams the contents of the  specified file. | |||||||||||
| Streams  refsfor all of the heads in the repository. | |||||||||||
| Streams the raw content of the given file after performing a best effort detection of its
 MIME type. | |||||||||||
| Resolves refs from the ref IDs provided on  parameters, which may be one of
 
 Callers can specify on theparameterswhether a provided ID is expected to resolve to abranch,tag,
 or aref of unknown type. | |||||||||||
| Streams  tagsordered either alphabetically or by modification and optionally filtered. | |||||||||||
| Streams all of the commits in the repository reachable from any branch or tag, traversed in topological order. | |||||||||||
Retrieves blame (also sometimes referred to as annotations) for a file at a given revision.
 The PageRequest provided determines the lines in the file for which blame is calculated,
 and only lines within the scope of the page request will be returned. However, because adjacent lines may be
 spanned by a single author, the number
 of distinct Blame objects returned will frequently be less than the limit.
| parameters | parameters describing the file and revision used to calculate blame | 
|---|---|
| pageRequest | describes the set of lines in the file to calculate blame for | 
Blame for the specified file and
         revision for the requested set of linesRetrieves a Command which, when executed, will stream branches ordered either
 alphabetically or by modification and optionally filtered.
 
When no explicit order is requested, the default ordering depends on whether a filter was provided:
alphabetical ordermodification order| parameters | parameters describing desired order and filter text | 
|---|---|
| callback | the callback to receive streamed branches | 
Retrieves a page of branches ordered either alphabetically or by modification and
 optionally filtered.
 
When no explicit order is requested, the default ordering depends on whether a filter was provided:
alphabetical ordermodification order| parameters | parameters describing desired order and filter text | 
|---|---|
| pageRequest | describes the set of branches to return | 
Retrieves a page of changes describing the modifications made between two
 revisions, optionally filtered by path.
 
 If no explicit "since" revision is specified, it defaults to the
 parent of the "until" revision. If the "until" revision specifies
 a merge commit (a commit with multiple parents), no changes will be returned.
 
 Note: Some changes, such as copies and moves,
 affect more than one path. When filtering by path, if both paths are not available the change's type may not
 be correctly detected by some SCMs.
| parameters | parameters describing the revisions to compare and paths to filter by | 
|---|---|
| pageRequest | describes the set of changes to return | 
Retrieves a Command which, when executed, will stream changes describing modifications
 made between two revisions, optionally filtered by path.
 
 If no explicit "since" revision is specified, it defaults to the
 parent of the "until" revision. If the "until" revision specifies
 a merge commit (a commit with multiple parents), no changes will be returned.
 
 Note: Some changes, such as copies and moves,
 affect more than one path. When filtering by path, if both paths are not available the change's type may not
 be correctly detected by some SCMs.
| parameters | parameters describing the revisions to compare and paths to filter by | 
|---|---|
| callback | the callback to receive streamed commits | 
Retrieves a page of changesets given a set of commit IDs, where each changeset includes the first page of changes
 between a requested commit and its first parent.
| parameters | parameters describing the changesets to retrieve | 
|---|---|
| pageRequest | describes the page of changesets to retrieve | 
Retrieves details for the specified commit.
 
 If a path is provided, the Changeset returned may not
 be for the specified commit. Instead, that commit is used as
 a starting point and details for the first commit in its ancestry which affects that path are returned.
| parameters | parameters describing the commit to retrieve details for | 
|---|
Streams commits which match the provided parameters to the provided callback.
| parameters | parameters describing the commits to retrieve | 
|---|---|
| callback | a callback to receive the streamed commits | 
| UnsupportedOperationException | if a secondary
                                       repositoryis provided ancross-
                                       repositoryoperations are not supported | 
|---|
CommitsCommandParametersstreamCommits(CommitsRequest, CommitCallback)streamCommitsBetween(CommitsBetweenRequest, CommitCallback)Retrieves a page of commits matching the specified parameters.
 
 If the SCM supports cross-repository operations, a secondary repository
 may be provided. Otherwise, it must be omitted or match the target repository.
| parameters | parameters describing which commits to retrieve | 
|---|---|
| pageRequest | describes the set of commits to return | 
| UnsupportedOperationException | if a secondary
                                       repositorywas provided and the underlying SCM does not supportcross-repositoryoperations | 
|---|
Retrieves the common ancestor for the provided commits
| parameters | parameters describing which common ancestor to retrieve | 
|---|
null.Resolves the default branch for the specified repository.
 The returned command may throw NoDefaultBranchException, when executed, if the specified repository does not have a resolvable default branch.
 This might happen, for example, on a new repository with no commits, or if the only commits to a repository have
 been to a branch other than the default branch.
| NoDefaultBranchException | if the repository does not have a resolvable default branch | 
|---|
Streams a diff between two commits.
| parameters | parameters describing the diff to stream | 
|---|---|
| callback | the callback to receive the streamed diff | 
Streams the tree nodes (files, subdirectories and submodules) in the specified
 directory.
| parameters | parameters providing the directory to stream and the revision to stream it for | 
|---|---|
| callback | the callback to receive the streamed nodes | 
| pageRequest | describes the set of nodes to stream | 
Streams the contents of the specified file.
| parameters | parameters describing the file to stream and the revision to stream it for | 
|---|---|
| callback | the callback to receive the streamed content | 
| pageRequest | describes the set of lines in the file to stream | 
Streams refs for all of the heads in the repository. The exact definition of "heads" is an
 SCM-specific detail, but it will generally include all branches and tags in the repository.
 
Note: This method is not exposed via the service API. It is only available directly on the SCM API.
| callback | the ref callback that will be called for each head | 
|---|
Streams the raw content of the given file after performing a best effort detection of its
 MIME type. That MIME type will be used to retrieve an OutputStream from the provided supplier,
 and the file's raw content will then be written to the returned stream.
| parameters | parameters used to specify the path and version of the file to stream | 
|---|---|
| outputSupplier | the supplier which, when given a content type, will provide an output stream | 
Resolves the specified refId, which may be a:
 
refId should be resolved to a specific type, that type should be set to allow the SCM to restrict its search.
 
 If a hash is provided, it will be resolved to the branch or tag it is the tip of. If it is not the tip of
 any branch or tag, it will resolve to null. If a type
 was specified, the hash will only be resolved against that type.
 
When a hash is provided and resolves to multiple branches, tags or a combination of both, it is left to the SCM implementation to determine the result. SCM implementors are encouraged to choose a tag over a branch, and to return the "first" branch or tag, ordered alphabetically, but this is not enforced.
| parameters | parameters describing the ref to resolve | 
|---|
Resolves refs from the ref IDs provided on parameters, which may be one of
 
parameters whether a provided ID is expected to resolve to a
 branch, tag,
 or a ref of unknown type.
 
 If hashes are provided, they will be resolved to branches or tags they are the tip of. If they are not the tip of
 any branch or tag, they will resolve to null and will not be included in the returned map.
 
When a hash is provided and resolves to multiple branches, tags or a combination of both, it is left to the SCM implementation to determine the result. SCM implementors are encouraged to choose a tag over a branch, and to return the "first" branch or tag, ordered alphabetically, but this is not enforced.
| parameters | describes the ref IDs to resolve | 
|---|
Retrieves a page of tags ordered either alphabetically or by modification and
 optionally filtered.
 
When no explicit order is requested, the default ordering depends on whether a filter was provided:
alphabetical ordermodification order| parameters | parameters describing desired order and filter text | 
|---|---|
| pageRequest | describes the set of tags to return | 
Streams tags ordered either alphabetically or by modification and optionally filtered.
 
When no explicit order is requested, the default ordering depends on whether a filter was provided:
alphabetical ordermodification order| parameters | parameters describing desired order and filter text | 
|---|---|
| callback | a callback to receive the streamed commits | 
Streams all of the commits in the repository reachable from any branch or tag, traversed in topological order.
| callback | the callback to receive the streamed commits | 
|---|
Retrieves the type for the specified path
 at the requested revision, if the path is present. Note that the same path might have different types between
 revisions but the root entry ("", "\" or "/") will always be a directory.
| parameters | parameters describing the path to check, and the revision to check it for | 
|---|