Class GitWorkingCopyManager
java.lang.Object
com.atlassian.bamboo.plugins.git.v2.AbstractGitExecutor
com.atlassian.bamboo.plugins.git.v2.GitWorkingCopyManager
- All Implemented Interfaces:
MergingVcsWorkingCopyManager
,NoContextVcsWorkingCopyManager
,StatusProvidingVcsWorkingCopyManager
,UpdatingVcsWorkingCopyManager
,VcsExecutorWithRequirements
,VcsWorkingCopyManager
public class GitWorkingCopyManager
extends AbstractGitExecutor
implements MergingVcsWorkingCopyManager, UpdatingVcsWorkingCopyManager, NoContextVcsWorkingCopyManager, StatusProvidingVcsWorkingCopyManager, VcsExecutorWithRequirements
-
Field Summary
Fields inherited from class com.atlassian.bamboo.plugins.git.v2.AbstractGitExecutor
buildDirectoryManager, buildLoggingContext, customVariableContext, DEFAULT_BRANCH, i18nResolver, sshProxyService, trustedKeyHelper
-
Constructor Summary
ConstructorDescriptionGitWorkingCopyManager
(CapabilityContext capabilityContext, CredentialsAccessor credentialsAccessor, CustomVariableContext customVariableContext, BuildDirectoryManager buildDirectoryManager, com.atlassian.sal.api.message.I18nResolver i18nResolver, TrustedKeyHelper trustedKeyHelper, SshProxyService sshProxyService, AgentContext agentContext, BuildLoggerManager buildLoggerManager, VcsBranchIntegrationHelper branchIntegrationHelper, BuildLoggingContext buildLoggingContext) -
Method Summary
Modifier and TypeMethodDescription@NotNull VcsWorkingCopy
checkoutAndMerge
(@NotNull CommonContext commonContext, @NotNull VcsRepositoryData vcsRepositoryData, @NotNull VcsBranch targetBranch, @NotNull PlanVcsRevisionData revisionOnTarget, @NotNull VcsBranch sourceBranch, @NotNull PlanVcsRevisionData sourceRevision, @NotNull File targetPath) Checks out the targetBranch and merges sourceBranch to it.@NotNull VcsWorkingCopy
commitLocal
(@NotNull VcsWorkingCopy workingCopy, @NotNull VcsRepositoryData vcsRepositoryData, @NotNull String commitMessage) Create a local commit.@NotNull Set<Requirement>
getRequirements
(@NotNull VcsRepositoryData vcsRepositoryData) @NotNull VcsWorkingCopy
getWorkingCopyInfo
(@NotNull VcsRepositoryData repositoryData, @NotNull File checkoutPath) Provide repository working copy information for the given checkout path.@NotNull VcsWorkingCopy
retrieveSourceCode
(@NotNull CommonContext commonContext, @NotNull VcsRepositoryData repositoryData, @NotNull PlanVcsRevisionData targetRevision, @NotNull File targetPath) Checkout or update a working copy to a revision.void
stageChanges
(@NotNull VcsWorkingCopy workingCopy, @NotNull VcsRepositoryData repositoryData, @NotNull Collection<String> pathsToAdd) Stage changes for committing.@NotNull VcsWorkingCopy
updateRemote
(@NotNull VcsWorkingCopy workingCopy, @NotNull VcsRepositoryData vcsRepositoryData, @Nullable String commitMessage) Update remote repository.@NotNull VcsWorkingCopy
updateToLatestRevision
(@NotNull CommonContext commonContext, @NotNull VcsRepositoryData repositoryData, @NotNull File targetPath) Checkout or update a working copy to the latest revision.@NotNull VcsWorkingCopy
updateToLatestRevision
(@NotNull VcsRepositoryData repositoryData, @NotNull File targetPath) Checkout or update a working copy to the latest revision.@NotNull VcsWorkingCopy
updateToLatestRevisionForSpecs
(@NotNull VcsRepositoryData repositoryData, @NotNull File targetPath) Checkout or update a working copy to the latest revision.Methods inherited from class com.atlassian.bamboo.plugins.git.v2.AbstractGitExecutor
fetchCacheWithRetry, fetchWithRetry, getAccessData, getCacheDirectory, getCachePath, getGitCapability, getSharedCredentialsIdField, getSshCapability, getSubstitutedAccessData, getSubstitutedAccessDataBuilder, getWorkingDirectory, isUsingSharedCredentials, rethrowOrRemoveDirectory, substituteString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.atlassian.bamboo.vcs.runtime.MergingVcsWorkingCopyManager
canDoMerge, getMergingRequirements
-
Constructor Details
-
GitWorkingCopyManager
@Inject public GitWorkingCopyManager(CapabilityContext capabilityContext, CredentialsAccessor credentialsAccessor, CustomVariableContext customVariableContext, BuildDirectoryManager buildDirectoryManager, com.atlassian.sal.api.message.I18nResolver i18nResolver, TrustedKeyHelper trustedKeyHelper, SshProxyService sshProxyService, AgentContext agentContext, BuildLoggerManager buildLoggerManager, VcsBranchIntegrationHelper branchIntegrationHelper, BuildLoggingContext buildLoggingContext)
-
-
Method Details
-
getWorkingCopyInfo
@NotNull public @NotNull VcsWorkingCopy getWorkingCopyInfo(@NotNull @NotNull VcsRepositoryData repositoryData, @NotNull @NotNull File checkoutPath) throws RepositoryException Description copied from interface:StatusProvidingVcsWorkingCopyManager
Provide repository working copy information for the given checkout path.- Specified by:
getWorkingCopyInfo
in interfaceStatusProvidingVcsWorkingCopyManager
- Parameters:
repositoryData
- configuration of the repositorycheckoutPath
- path, where repository was checked out- Returns:
- working copy information
- Throws:
RepositoryException
- if any error occurs, or e.g. the path is not a valid checkout path for the repository
-
getRequirements
@NotNull public @NotNull Set<Requirement> getRequirements(@NotNull @NotNull VcsRepositoryData vcsRepositoryData) - Specified by:
getRequirements
in interfaceVcsExecutorWithRequirements
-
retrieveSourceCode
@NotNull public @NotNull VcsWorkingCopy retrieveSourceCode(@NotNull @NotNull CommonContext commonContext, @NotNull @NotNull VcsRepositoryData repositoryData, @NotNull @NotNull PlanVcsRevisionData targetRevision, @NotNull @NotNull File targetPath) throws RepositoryException Description copied from interface:VcsWorkingCopyManager
Checkout or update a working copy to a revision.- Specified by:
retrieveSourceCode
in interfaceVcsWorkingCopyManager
- Parameters:
commonContext
- - a current build or deployment contextrepositoryData
- - configuration of a repository to checkout/updatetargetRevision
- - revision to check out or update totargetPath
- - workings copy's path. Note that some legacy implementation may ignore this parameter. (seeFixedDirectoryWorkingCopyManager
)- Returns:
- object representing created/updated working copy
- Throws:
RepositoryException
-
updateToLatestRevision
@NotNull public @NotNull VcsWorkingCopy updateToLatestRevision(@NotNull @NotNull CommonContext commonContext, @NotNull @NotNull VcsRepositoryData repositoryData, @NotNull @NotNull File targetPath) throws RepositoryException Description copied from interface:VcsWorkingCopyManager
Checkout or update a working copy to the latest revision.- Specified by:
updateToLatestRevision
in interfaceVcsWorkingCopyManager
- Parameters:
commonContext
- - a current build or deployment contextrepositoryData
- - configuration of a repository to checkout/updatetargetPath
- - workings copy's path. Note that some legacy implementation may ignore this parameter. (seeFixedDirectoryWorkingCopyManager
)- Returns:
- object representing created/updated working copy
- Throws:
RepositoryException
-
updateToLatestRevision
@NotNull public @NotNull VcsWorkingCopy updateToLatestRevision(@NotNull @NotNull VcsRepositoryData repositoryData, @NotNull @NotNull File targetPath) throws RepositoryException Description copied from interface:NoContextVcsWorkingCopyManager
Checkout or update a working copy to the latest revision.- Specified by:
updateToLatestRevision
in interfaceNoContextVcsWorkingCopyManager
- Parameters:
repositoryData
- - configuration of a repository to checkout/updatetargetPath
- - workings copy's path. Note that some legacy implementation may ignore this parameter. (seeFixedDirectoryWorkingCopyManager
)- Returns:
- object representing created/updated working copy
- Throws:
RepositoryException
-
updateToLatestRevisionForSpecs
@NotNull public @NotNull VcsWorkingCopy updateToLatestRevisionForSpecs(@NotNull @NotNull VcsRepositoryData repositoryData, @NotNull @NotNull File targetPath) throws RepositoryException Description copied from interface:NoContextVcsWorkingCopyManager
Checkout or update a working copy to the latest revision. The method is desired to work with Specs.- Specified by:
updateToLatestRevisionForSpecs
in interfaceNoContextVcsWorkingCopyManager
- Parameters:
repositoryData
- - configuration of a repository to checkout/updatetargetPath
- - workings copy's path. Note that some legacy implementation may ignore this parameter. (seeFixedDirectoryWorkingCopyManager
)- Returns:
- object representing created/updated working copy
- Throws:
RepositoryException
-
checkoutAndMerge
@NotNull public @NotNull VcsWorkingCopy checkoutAndMerge(@NotNull @NotNull CommonContext commonContext, @NotNull @NotNull VcsRepositoryData vcsRepositoryData, @NotNull @NotNull VcsBranch targetBranch, @NotNull @NotNull PlanVcsRevisionData revisionOnTarget, @NotNull @NotNull VcsBranch sourceBranch, @NotNull @NotNull PlanVcsRevisionData sourceRevision, @NotNull @NotNull File targetPath) throws RepositoryException Description copied from interface:MergingVcsWorkingCopyManager
Checks out the targetBranch and merges sourceBranch to it. Depending on the vcs type, this can create local commit.- Specified by:
checkoutAndMerge
in interfaceMergingVcsWorkingCopyManager
vcsRepositoryData
- configuration of the repository. Note that the following parameters override branch stored in repository data.targetBranch
- - target branch (branch to checkout and merge to)revisionOnTarget
- - revision to checkout and merge tosourceBranch
- - branch to merge fromsourceRevision
- - revision to merge fromtargetPath
- - workings copy's path- Returns:
- state of the working copy, including new revision if applicable
- Throws:
RepositoryException
-
stageChanges
public void stageChanges(@NotNull @NotNull VcsWorkingCopy workingCopy, @NotNull @NotNull VcsRepositoryData repositoryData, @NotNull @NotNull Collection<String> pathsToAdd) throws RepositoryException Description copied from interface:UpdatingVcsWorkingCopyManager
Stage changes for committing. If staging is not required or supported by repository, this method should do nothing.Staging logic may differ between repository types.
- Specified by:
stageChanges
in interfaceUpdatingVcsWorkingCopyManager
- Parameters:
workingCopy
- workspace to perform the stagingrepositoryData
- configuration of repositorypathsToAdd
- paths, relative to working copy directory, to stage for committing; if empty, all modified files from working copy directory should be staged- Throws:
RepositoryException
-
commitLocal
@NotNull public @NotNull VcsWorkingCopy commitLocal(@NotNull @NotNull VcsWorkingCopy workingCopy, @NotNull @NotNull VcsRepositoryData vcsRepositoryData, @NotNull @NotNull String commitMessage) throws RepositoryException Description copied from interface:UpdatingVcsWorkingCopyManager
Create a local commit. The exact meaning of this operation depends on repository type. In particular, it can be no-op for certain repository types, for example SVN. Intended use: creating a private revision that can be used later in the build.- Specified by:
commitLocal
in interfaceUpdatingVcsWorkingCopyManager
- Returns:
- updated state of local working copy
- Throws:
RepositoryException
-
updateRemote
@NotNull public @NotNull VcsWorkingCopy updateRemote(@NotNull @NotNull VcsWorkingCopy workingCopy, @NotNull @NotNull VcsRepositoryData vcsRepositoryData, @Nullable @Nullable String commitMessage) throws RepositoryException Description copied from interface:UpdatingVcsWorkingCopyManager
Update remote repository. The exact meaning of this operation depends on repository type. In DVCS case this should push pre-existing local commit to remote repository. In traditional vcs, like Subversion, this should execute commit operation. Intended use: publishing changes to the world.- Specified by:
updateRemote
in interfaceUpdatingVcsWorkingCopyManager
commitMessage
- - implementors are free to ignore this parameter.- Returns:
- updated state of local working copy
- Throws:
RepositoryException
-