com.atlassian.bitbucket.commit.CommitService |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Retrieves a page of
changes between two commits. | |||||||||||
Retrieves changesets for each of the requested
getCommitIds() commits}, including the
first page of changes between each commit and its first parent. | |||||||||||
Retrieves a commit based on te provided
request . | |||||||||||
Retrieves a page of commits, starting from a given branch, tag or commit, optionally filtered to only return
commits which modify one or more paths.
| |||||||||||
Retrieves a page of commits between the
included commits and the
excluded commits . | |||||||||||
Retrieves the common ancestor for the provided commits
| |||||||||||
Retrieve a
commit discussion matching the provided request. | |||||||||||
Stream an arbitrary set of commits from an arbitrary number of repositories.
| |||||||||||
Streams commits, starting from a given branch, tag or commit, optionally filtered to only include commits which
modify one or more paths.
| |||||||||||
Streams commits between the
included commits and the
excluded commits . | |||||||||||
Streams diff output for the specified
paths at the specified commit. | |||||||||||
Traverse the graph of commits in topological order, optionally supplying included commits to start from
and excluded commits to ignore.
|
Retrieves a page of changes
between two commits. If the since
commit is not specified, the until
commit's first parent is used.
Note: The implementation will apply a hard cap (page.max.changes
) and it is not
possible to request subsequent content when that cap is exceeded.
request | describes the two commits to retrieve changes between and the repository which contains both commits |
---|---|
pageRequest | the start and limit for the page being requested |
Retrieves changesets for each of the requested getCommitIds()
commits}, including the
first page of changes between each commit and its first parent.
If the page size
is less than the size of the collection of IDs, a subset of the
collection will be returned. Otherwise, changesets for all IDs in the requested collection are returned.
request | request parameters, specifying the repository and the desired commits |
---|---|
pageRequest | the start and limit of the page being request |
NoSuchCommitException | if ignoreMissing is not set and any
of the requested commits cannot be found
|
---|
Retrieves a commit based on te provided request
.
If only a commit ID
is specified, that commit will be returned if it exists.
If a path
is also provided, the first commit starting from the specified
commit ID which modifies that path is returned. If the specified commit does not exist, or if no commit in the
ancestry of that commit modifies the specified path, a NoSuchCommitException
is thrown.
When retrieving a commit, extra properties
can also be loaded.
Properties are metadata associated with commits by CommitIndexer
s. Until 4.0, the extra properties
requested also control the attributes that are loaded. Attributes will be removed in 4.0.
request | describes the commit to retrieve, and the repository to retrieve it from |
---|
NoSuchCommitException | if no matching commit can be found |
---|
Retrieves a page of commits, starting from a given branch, tag or commit, optionally filtered to only return
commits which modify one or more paths. Commits are returned starting from (and including) the specified
getCommitId()
, unless one or more paths
are provided.
Then the first commit returned, if any are returned, will be the first commit in the ancestry of the specified
starting commit which modifies at least one of the specified files.
This service call may be used to:
When retrieving commits, extra properties
can also be loaded.
Properties are metadata associated with commits by CommitIndexer
s. Until 4.0, the extra properties
requested also control the attributes that are loaded. Attributes will be removed in 4.0.
Note: If any of the provided paths is renamed at some point in its history, commits will not follow the path across the rename. In other words, only commits for exact paths provided will be included.
request | describes the commits to retrieve, and the repository to retrieve them from |
---|---|
pageRequest | the start and limit for the page being requested |
null
Retrieves a page of commits between the included commits
and the
excluded commits
. Included and excluded commits may be specified
by branch or tag name or by commit ID. The commits returned are those which are reachable an included commit
and not reachable from any excluded commit. While this may imply an ancestral relationship between included
and excluded IDs, that is not strictly required. When the IDs are unrelated, all commits reachable from the
included commits are candidates for the returned page, and excluded commits are effectively ignored. One or
more paths may be provided to further narrow the results, restricting the returned commits to only which modify
one or more of the specified paths.
Which commits are included and which are excluded is important here. Consider the following example:
---- A ---- B ---- C \ \ FA1 ---- FA2 ---- FA3If "master" is excluded and "feature-A" is included, commits FA1, FA2 and FA3 will be returned because they are reachable from "feature-A" but not from "master". If the two IDs were reversed, commits B and C would be returned, because they are reachable from "master" but not from "feature-A". This approach of swapping includes and excludes can be used to determine how two branches have diverged over time.
When retrieving commits, extra properties
can also be loaded.
Properties are metadata associated with commits by CommitIndexer
s. Until 4.0, the extra properties
requested also control the attributes that are loaded. Attributes will be removed in 4.0.
Warning: Commits specified using branch or tag names will be resolved against the primary
repository
. When retrieving commits between repositories,
commits in the secondary repository
may only be
specified by commit ID. This means requesting a page like this will not work:
CommitsBetweenRequest request = new CommitsBetweenRequest.Builder(repository)
.exclude("master")
.include("master")
.secondaryRepository(forkOfRepository)
.build();
Page<Commit> page = commitService.getCommitsBetween(request, PageUtils.newRequest(0, 25));
The returned page will always be empty because "master" was resolved on both sides using the same repository,
producing the same commit to include and exclude. This also demonstrates that excludes take precedence
over includes, as one might expect.request | describes the commits to include/exclude, paths to filter by and which repository, or repositories, contain the commits |
---|---|
pageRequest | the start and limit for the page being requested |
Retrieves the common ancestor for the provided commits
request | request describing which common ancestor to retrieve |
---|
empty()
if the provided commits do
not have a common ancestorRetrieve a commit discussion
matching the provided request.
Note: Nullability actually depends on the provided request.
request | the request describing the discussion to retrieve or create |
---|
null
depending on the requestStreams changes between the until
and since
commits. If the since
commit is not specified, the
until
commit's first parent is used automatically.
Note: The implementation will apply a hard cap (page.max.changes
) and it is not
possible to request subsequent content when that cap is exceeded.
request | describes the two commits to retrieve changes between and the repository which contains both commits |
---|---|
callback | a callback to receive the changes |
Stream an arbitrary set of commits from an arbitrary number of repositories. The calling user is required
to have access to all of the repositories
from which commits are being requested
or an exception will be thrown.
Due to the bulk nature of this method, it is required that full IDs
be used to
identify the commits to be streamed. Short IDs, including display IDs
, will
not work. To load commits using a short ID, search first using the CommitIndex
, which does accept
short IDs, and then use this method to resolve full Commit
s for any matches the index returns.
Note: Commits may not be passed to the callback in the order they are requested.
request | the request, specifying which commits to retrieve and from which repositories |
---|---|
callback | a callback to receive the commits |
Streams commits, starting from a given branch, tag or commit, optionally filtered to only include commits which
modify one or more paths. Commits are streamed starting from (and including) the specified
getCommitId()
, unless one or more paths
are provided.
Then the first commit streamed, if any are, will be the first commit in the ancestry of the specified starting
commit which modifies at least one of the specified files.
This service call may be used to:
When streaming commits, extra properties
can also be loaded.
Properties are metadata associated with commits by CommitIndexer
s. Until 4.0, the extra properties
requested also control the attributes that are loaded. Attributes will be removed in 4.0.
Note: If any of the provided paths is renamed at some point in its history, commits will not follow the path across the rename. In other words, only commits for exact paths provided will be included.
request | describes the commits to stream, and the repository to stream them from |
---|---|
callback | a callback to receive the commits |
Streams commits between the included commits
and the
excluded commits
.
This method promises to call onStart(CommitContext)
on the supplied callback exactly once,
followed by zero or more calls to onCommit(Commit)
, one for each commit to be streamed
(until onCommit(...)
returns false
or there are no more commits),
followed by exactly one call to onEnd(CommitSummary)
.
See getCommitsBetween(...)
for a
description of the semantics of the commits returned.
request | describes the commits to include/exclude, paths to filter by and which repository, or repositories, contain the commits |
---|---|
callback | a callback to receive the commits |
Streams diff output for the specified paths
at the specified commit.
Note: This interface is currently not paged. The implementation will apply a hard cap
(page.max.diff.lines
) and it is not possible to request subsequent content when that cap is exceeded.
request | the repository, starting and terminating commits, and paths to filter by |
---|---|
callback | a callback to receive the diff details |
Streams the last modification for files under the requested path
, starting
from the specified commit
.
The commit ID
serves as a starting point. For any files under
the requested path, commits are traversed from that starting point until the most recent commit to directly
modify each file is found. Because the exact number of commits which must be traversed is unknown, this
operation may be very expensive.
request | the repository, path and starting commit |
---|---|
callback | a callback to receive last modification data |
Traverse the graph of commits in topological order, optionally supplying included commits to start from and excluded commits to ignore.
request | the traversal request describing the repository and the commits to include and exclude |
---|---|
callback | a callback to receive the traversed commits |