Package org.eclipse.jgit.api
Class PushCommand
java.lang.Object
org.eclipse.jgit.api.GitCommand<T>
org.eclipse.jgit.api.TransportCommand<PushCommand,Iterable<PushResult>>
org.eclipse.jgit.api.PushCommand
- All Implemented Interfaces:
Callable<Iterable<PushResult>>
A class used to execute a
Push command. It has setters for all
supported options and arguments of this command and a call() method
to finally execute the command.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate booleanprivate booleanprivate ProgressMonitorprivate OutputStreamprivate PushConfig.PushDefaultprivate Stringprivate final Map<String,RefLeaseSpec> private Stringprivate booleanFields inherited from class org.eclipse.jgit.api.TransportCommand
credentialsProvider, timeout, transportConfigCallbackFields inherited from class org.eclipse.jgit.api.GitCommand
repo -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedPushCommand(Repository repo) Constructor for PushCommand. -
Method Summary
Modifier and TypeMethodDescriptionAdd a reference to push.Add a reference to push.call()private voiddetermineDefaultRefSpecs(Config config) private StringdetermineRemote(Config config, String remoteName) private StringGet the progress monitorRetrieves thePushConfig.PushDefaultcurrently set.Get push optionsGet the name of the remote executable providing the receive-pack serviceGet theRefLeaseSpecs.GetRefSpecs.Get remote nameintGet timeout used for push operationbooleanisAtomic()Whether this push should be executed atomically (all references updated, or none)booleanisDryRun()Whether to run the push operation as a dry runbooleanisForce()Whether to push forcefullybooleanisThin()Get the thin-pack preferencesetAtomic(boolean atomic) Requests atomic push (all references updated, or no updates).setDryRun(boolean dryRun) Sets whether the push operation should be a dry runsetForce(boolean force) Sets the force preference for push operation.Sets the output stream to write sideband messages tosetProgressMonitor(ProgressMonitor monitor) The progress monitor associated with the push operation.Push all branches under refs/heads/*.setPushDefault(PushConfig.PushDefault pushDefault) Sets an explicitPushConfig.PushDefault.setPushOptions(List<String> pushOptions) Set the option strings associated with the push operation.Push all tags under refs/tags/*.setReceivePack(String receivePack) The remote executable providing receive-pack service for pack transports.setRefLeaseSpecs(List<RefLeaseSpec> specs) The ref lease specs to be used in the push operation, for a force-with-lease push operation.setRefLeaseSpecs(RefLeaseSpec... specs) The ref lease specs to be used in the push operation, for a force-with-lease push operation.setRefSpecs(List<RefSpec> specs) The ref specs to be used in the push operationsetRefSpecs(RefSpec... specs) The ref specs to be used in the push operationThe remote (uri or name) used for the push operation.setThin(boolean thin) Set the thin-pack preference for push operation.Methods inherited from class org.eclipse.jgit.api.TransportCommand
configure, configure, self, setCredentialsProvider, setTimeout, setTransportConfigCallbackMethods inherited from class org.eclipse.jgit.api.GitCommand
checkCallable, getRepository, setCallable
-
Field Details
-
remote
-
refSpecs
-
refLeaseSpecs
-
monitor
-
receivePack
-
dryRun
private boolean dryRun -
atomic
private boolean atomic -
force
private boolean force -
thin
private boolean thin -
out
-
pushOptions
-
pushDefault
-
-
Constructor Details
-
PushCommand
Constructor for PushCommand.
- Parameters:
repo- theRepository
-
-
Method Details
-
call
public Iterable<PushResult> call() throws GitAPIException, InvalidRemoteException, TransportExceptionExecute the command
Execute the
pushcommand with all the options and parameters collected by the setter methods of this class. Each instance of this class should only be used for one invocation of the command (means: one call tocall())- Specified by:
callin interfaceCallable<Iterable<PushResult>>- Specified by:
callin classGitCommand<Iterable<PushResult>>- Throws:
GitAPIExceptionInvalidRemoteExceptionTransportException
-
determineRemote
- Throws:
IOException
-
getCurrentBranch
- Throws:
IOExceptionDetachedHeadException
-
determineDefaultRefSpecs
- Throws:
IOExceptionGitAPIException
-
setRemote
The remote (uri or name) used for the push operation. If no remote is set, the default value ofConstants.DEFAULT_REMOTE_NAMEwill be used.- Parameters:
remote- the remote name- Returns:
this- See Also:
-
getRemote
Get remote name- Returns:
- the remote used for the remote operation
-
setReceivePack
The remote executable providing receive-pack service for pack transports. If no receive-pack is set, the default value ofRemoteConfig.DEFAULT_RECEIVE_PACKwill be used.- Parameters:
receivePack- name of the remote executable providing the receive-pack service- Returns:
this- See Also:
-
getReceivePack
Get the name of the remote executable providing the receive-pack service- Returns:
- the receive-pack used for the remote operation
-
getTimeout
public int getTimeout()Get timeout used for push operation- Returns:
- the timeout used for the push operation
-
getProgressMonitor
Get the progress monitor- Returns:
- the progress monitor for the push operation
-
setProgressMonitor
The progress monitor associated with the push operation. By default, this is set toNullProgressMonitor- Parameters:
monitor- aProgressMonitor- Returns:
this- See Also:
-
getRefLeaseSpecs
Get theRefLeaseSpecs.- Returns:
- the
RefLeaseSpecs - Since:
- 4.7
-
setRefLeaseSpecs
The ref lease specs to be used in the push operation, for a force-with-lease push operation.- Parameters:
specs- aRefLeaseSpecobject.- Returns:
this- Since:
- 4.7
-
setRefLeaseSpecs
The ref lease specs to be used in the push operation, for a force-with-lease push operation.- Parameters:
specs- list ofRefLeaseSpecs- Returns:
this- Since:
- 4.7
-
getRefSpecs
GetRefSpecs.- Returns:
- the ref specs
-
setRefSpecs
The ref specs to be used in the push operation- Parameters:
specs- aRefSpecobject.- Returns:
this
-
setRefSpecs
The ref specs to be used in the push operation- Parameters:
specs- list ofRefSpecs- Returns:
this
-
getPushDefault
Retrieves thePushConfig.PushDefaultcurrently set.- Returns:
- the
PushConfig.PushDefault, ornullif not set - Since:
- 6.1
-
setPushDefault
Sets an explicitPushConfig.PushDefault. The default used if this is not called isPushConfig.PushDefault.CURRENTfor compatibility reasons with earlier JGit versions.- Parameters:
pushDefault-PushConfig.PushDefaultto set; ifnullthe value defined in the git config will be used.- Returns:
this- Since:
- 6.1
-
setPushAll
Push all branches under refs/heads/*.- Returns:
this
-
setPushTags
Push all tags under refs/tags/*.- Returns:
this
-
add
Add a reference to push.- Parameters:
ref- the source reference. The remote name will match.- Returns:
this.
-
add
Add a reference to push.- Parameters:
nameOrSpec- any reference name, or a reference specification.- Returns:
this.- Throws:
JGitInternalException- the reference name cannot be resolved.
-
isDryRun
public boolean isDryRun()Whether to run the push operation as a dry run- Returns:
- the dry run preference for the push operation
-
setDryRun
Sets whether the push operation should be a dry run- Parameters:
dryRun- a boolean.- Returns:
this
-
isThin
public boolean isThin()Get the thin-pack preference- Returns:
- the thin-pack preference for push operation
-
setThin
Set the thin-pack preference for push operation. Default setting is Transport.DEFAULT_PUSH_THIN- Parameters:
thin- the thin-pack preference value- Returns:
this
-
isAtomic
public boolean isAtomic()Whether this push should be executed atomically (all references updated, or none)- Returns:
- true if all-or-nothing behavior is requested.
- Since:
- 4.2
-
setAtomic
Requests atomic push (all references updated, or no updates). Default setting is false.- Parameters:
atomic- whether to run the push atomically- Returns:
this- Since:
- 4.2
-
isForce
public boolean isForce()Whether to push forcefully- Returns:
- the force preference for push operation
-
setForce
Sets the force preference for push operation.- Parameters:
force- whether to push forcefully- Returns:
this
-
setOutputStream
Sets the output stream to write sideband messages to- Parameters:
out- anOutputStream- Returns:
this- Since:
- 3.0
-
getPushOptions
Get push options- Returns:
- the option strings associated with the push operation
- Since:
- 4.5
-
setPushOptions
Set the option strings associated with the push operation.- Parameters:
pushOptions- aListof push option strings- Returns:
this- Since:
- 4.5
-