Interface Commit

All Superinterfaces:
MinimalCommit, PropertySupport
All Known Implementing Classes:
SimpleCommit

public interface Commit extends PropertySupport, MinimalCommit
Describes a single commit. A commit represents a snapshot of a repository at a given point in time, with additional metadata detailing who authored the commit and when, any message provided, and some number of parents (which may be zero). Parents represent a commit's direct ancestors. Commits generally have a single parent, but:
  • Commits which merge multiple streams of work may have multiple parents
    • For SCMs which support merge commits, the exact number of possible parents is SCM-specific
  • A repository will generally include a "root commit", the first commit to the repository, which will not have a parent
    • Whether or not a repository can have multiple root commits is SCM-specific
  • Method Details

    • getAuthor

      @Nonnull Person getAuthor()
      Returns:
      the person who authored the changes
    • getAuthorTimestamp

      @Nonnull Date getAuthorTimestamp()
      Returns:
      the timestamp when the changes were authored
    • getCommitter

      @Nonnull default Person getCommitter()
      Returns:
      the person who committed the changes
      Since:
      5.0
    • getCommitterTimestamp

      @Nonnull default Date getCommitterTimestamp()
      Returns:
      the timestamp when the changes were committed
      Since:
      5.0
    • getMessage

      @Nullable String getMessage()
      Returns:
      the commit message
    • getParents

      @Nonnull Collection<MinimalCommit> getParents()
      Returns:
      the commit's parents, which may be empty for the initial commit to a repository but will never be null
    • getRepository

      @Nullable Repository getRepository()
      Retrieves the repository this commit was loaded from, if it's available.

      Note: For reasons of performance and conciseness this field may be null depending on the service used to construct this commit. If an explicit repository context has been provided by some other mechanism (for example, web-fragments on the commit page will have an explicit 'repository' object in their render context) it is preferable to use that instead of this.

      Returns:
      the repository that this commit belongs to