org.eclipse.jgit.lib
Class RefRename

java.lang.Object
  extended by org.eclipse.jgit.lib.RefRename

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 Summary
protected  RefUpdate destination
          Update operation to create/overwrite the destination reference.
protected  RefUpdate source
          Update operation to read and delete the source reference.
 
Constructor Summary
protected RefRename(RefUpdate src, RefUpdate dst)
          Initialize a new rename operation.
 
Method Summary
 void disableRefLog()
          Don't record this rename in the ref's associated reflog.
protected abstract  RefUpdate.Result doRename()
           
 PersonIdent getRefLogIdent()
           
 String getRefLogMessage()
          Get the message to include in the reflog.
 RefUpdate.Result getResult()
           
protected  boolean needToUpdateHEAD()
           
 RefUpdate.Result rename()
           
 void setRefLogIdent(PersonIdent pi)
          Set the identity of the user appearing in the reflog.
 void setRefLogMessage(String msg)
          Set the message to include in the reflog.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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.

Constructor Detail

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 Detail

getRefLogIdent

public PersonIdent getRefLogIdent()
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()
Returns:
result of rename operation

rename

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

doRename

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

needToUpdateHEAD

protected boolean needToUpdateHEAD()
                            throws IOException
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.


Copyright © 2012. All Rights Reserved.