org.eclipse.jgit.api
Class CommitCommand

java.lang.Object
  extended by org.eclipse.jgit.api.GitCommand<RevCommit>
      extended by org.eclipse.jgit.api.CommitCommand
All Implemented Interfaces:
Callable<RevCommit>

public class CommitCommand
extends GitCommand<RevCommit>

A class used to execute a Commit command. It has setters for all supported options and arguments of this command and a call() method to finally execute the command.

See Also:
Git documentation about Commit

Field Summary
 
Fields inherited from class org.eclipse.jgit.api.GitCommand
repo
 
Constructor Summary
protected CommitCommand(Repository repo)
           
 
Method Summary
 RevCommit call()
          Executes the commit command with all the options and parameters collected by the setter methods of this class.
 PersonIdent getAuthor()
           
 PersonIdent getCommitter()
           
 String getMessage()
           
 CommitCommand setAll(boolean all)
          If set to true the Commit command automatically stages files that have been modified and deleted, but new files not known by the repository are not affected.
 CommitCommand setAmend(boolean amend)
          Used to amend the tip of the current branch.
 CommitCommand setAuthor(PersonIdent author)
          Sets the author for this commit.
 CommitCommand setAuthor(String name, String email)
          Sets the author for this commit.
 CommitCommand setCommitter(PersonIdent committer)
          Sets the committer for this commit.
 CommitCommand setCommitter(String name, String email)
          Sets the committer for this commit.
 CommitCommand setInsertChangeId(boolean insertChangeId)
          If set to true a change id will be inserted into the commit message An existing change id is not replaced.
 CommitCommand setMessage(String message)
           
 CommitCommand setOnly(String only)
          Commit dedicated path only This method can be called several times to add multiple paths.
 CommitCommand setReflogComment(String reflogComment)
          Override the message written to the reflog
 
Methods inherited from class org.eclipse.jgit.api.GitCommand
checkCallable, getRepository, setCallable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CommitCommand

protected CommitCommand(Repository repo)
Parameters:
repo -
Method Detail

call

public RevCommit call()
               throws GitAPIException,
                      NoHeadException,
                      NoMessageException,
                      UnmergedPathsException,
                      ConcurrentRefUpdateException,
                      WrongRepositoryStateException
Executes the commit command 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 to call())

Specified by:
call in interface Callable<RevCommit>
Specified by:
call in class GitCommand<RevCommit>
Returns:
a RevCommit object representing the successful commit.
Throws:
NoHeadException - when called on a git repo without a HEAD reference
NoMessageException - when called without specifying a commit message
UnmergedPathsException - when the current index contained unmerged paths (conflicts)
ConcurrentRefUpdateException - when HEAD or branch ref is updated concurrently by someone else
WrongRepositoryStateException - when repository is not in the right state for committing
GitAPIException - or subclass thereof when an error occurs

setMessage

public CommitCommand setMessage(String message)
Parameters:
message - the commit message used for the commit
Returns:
this

getMessage

public String getMessage()
Returns:
the commit message used for the commit

setCommitter

public CommitCommand setCommitter(PersonIdent committer)
Sets the committer for this commit. If no committer is explicitly specified because this method is never called or called with null value then the committer will be deduced from config info in repository, with current time.

Parameters:
committer - the committer used for the commit
Returns:
this

setCommitter

public CommitCommand setCommitter(String name,
                                  String email)
Sets the committer for this commit. If no committer is explicitly specified because this method is never called or called with null value then the committer will be deduced from config info in repository, with current time.

Parameters:
name - the name of the committer used for the commit
email - the email of the committer used for the commit
Returns:
this

getCommitter

public PersonIdent getCommitter()
Returns:
the committer used for the commit. If no committer was specified null is returned and the default PersonIdent of this repo is used during execution of the command

setAuthor

public CommitCommand setAuthor(PersonIdent author)
Sets the author for this commit. If no author is explicitly specified because this method is never called or called with null value then the author will be set to the committer.

Parameters:
author - the author used for the commit
Returns:
this

setAuthor

public CommitCommand setAuthor(String name,
                               String email)
Sets the author for this commit. If no author is explicitly specified because this method is never called or called with null value then the author will be set to the committer.

Parameters:
name - the name of the author used for the commit
email - the email of the author used for the commit
Returns:
this

getAuthor

public PersonIdent getAuthor()
Returns:
the author used for the commit. If no author was specified null is returned and the default PersonIdent of this repo is used during execution of the command

setAll

public CommitCommand setAll(boolean all)
If set to true the Commit command automatically stages files that have been modified and deleted, but new files not known by the repository are not affected. This corresponds to the parameter -a on the command line.

Parameters:
all -
Returns:
this
Throws:
JGitInternalException - in case of an illegal combination of arguments/ options

setAmend

public CommitCommand setAmend(boolean amend)
Used to amend the tip of the current branch. If set to true, the previous commit will be amended. This is equivalent to --amend on the command line.

Parameters:
amend -
Returns:
this

setOnly

public CommitCommand setOnly(String only)
Commit dedicated path only This method can be called several times to add multiple paths. Full file paths are supported as well as directory paths; in the latter case this commits all files/ directories below the specified path.

Parameters:
only - path to commit
Returns:
this

setInsertChangeId

public CommitCommand setInsertChangeId(boolean insertChangeId)
If set to true a change id will be inserted into the commit message An existing change id is not replaced. An initial change id (I000...) will be replaced by the change id.

Parameters:
insertChangeId -
Returns:
this

setReflogComment

public CommitCommand setReflogComment(String reflogComment)
Override the message written to the reflog

Parameters:
reflogComment -
Returns:
this


Copyright © 2012. All Rights Reserved.