Class RefRename

java.lang.Object
org.eclipse.jgit.lib.RefRename
Direct Known Subclasses:
DfsRefRename, FileReftableDatabase.FileRefRename, RefDirectoryRename

public abstract class RefRename extends Object
A RefUpdate combination for renaming a reference.

If the source reference is currently pointed to by HEAD, then the HEAD symbolic reference is updated to point to the new destination.

  • Field Details

    • source

      protected final RefUpdate source
      Update operation to read and delete the source reference.
    • destination

      protected final RefUpdate destination
      Update operation to create/overwrite the destination reference.
    • result

      private RefUpdate.Result result
  • Constructor Details

    • RefRename

      protected RefRename(RefUpdate src, RefUpdate dst)
      Initialize a new rename operation.
      Parameters:
      src - operation to read and delete the source.
      dst - operation to create (or overwrite) the destination.
  • Method Details

    • getRefLogIdent

      public PersonIdent getRefLogIdent()
      Get identity of the user making the change in the reflog.
      Returns:
      identity of the user making the change in the reflog.
    • setRefLogIdent

      public void setRefLogIdent(PersonIdent pi)
      Set the identity of the user appearing in the reflog.

      The timestamp portion of the identity is ignored. A new identity with the current timestamp will be created automatically when the rename occurs and the log record is written.

      Parameters:
      pi - identity of the user. If null the identity will be automatically determined based on the repository configuration.
    • getRefLogMessage

      public String getRefLogMessage()
      Get the message to include in the reflog.
      Returns:
      message the caller wants to include in the reflog; null if the rename should not be logged.
    • setRefLogMessage

      public void setRefLogMessage(String msg)
      Set the message to include in the reflog.
      Parameters:
      msg - the message to describe this change.
    • disableRefLog

      public void disableRefLog()
      Don't record this rename in the ref's associated reflog.
    • getResult

      public RefUpdate.Result getResult()
      Get result of rename operation
      Returns:
      result of rename operation
    • rename

      public RefUpdate.Result rename() throws IOException
      Rename
      Returns:
      the result of the new ref update
      Throws:
      IOException
    • doRename

      protected abstract RefUpdate.Result doRename() throws IOException
      Do the actual rename
      Returns:
      the result of the rename operation.
      Throws:
      IOException
    • needToUpdateHEAD

      protected boolean needToUpdateHEAD() throws IOException
      Whether the Constants#HEAD reference needs to be linked to the new destination name.
      Returns:
      true if the Constants#HEAD reference needs to be linked to the new destination name.
      Throws:
      IOException - the current value of HEAD cannot be read.