Class ReflogWriter


  • public class ReflogWriter
    extends java.lang.Object
    Utility for writing reflog entries using the traditional one-file-per-log format.
    • Field Detail

      • forceWrite

        private final boolean forceWrite
    • Constructor Detail

      • ReflogWriter

        public ReflogWriter​(RefDirectory refdb)
        Create writer for ref directory.
        Parameters:
        refdb - a RefDirectory object.
      • ReflogWriter

        public ReflogWriter​(RefDirectory refdb,
                            boolean forceWrite)
        Create writer for ref directory.
        Parameters:
        refdb - a RefDirectory object.
        forceWrite - true to write to disk all entries logged, false to respect the repository's config and current log file status.
    • Method Detail

      • refLockFor

        public static java.lang.String refLockFor​(java.lang.String name)
        Get the ref name to be used for when locking a ref's log for rewriting.
        Parameters:
        name - name of the ref, relative to the Git repository top level directory (so typically starts with refs/).
        Returns:
        the name of the ref's lock ref.
      • create

        public ReflogWriter create()
                            throws java.io.IOException
        Create the log directories.
        Returns:
        this writer.
        Throws:
        java.io.IOException
      • log

        public ReflogWriter log​(java.lang.String refName,
                                ReflogEntry entry)
                         throws java.io.IOException
        Write the given entry to the ref's log.
        Parameters:
        refName - a String object.
        entry - a ReflogEntry object.
        Returns:
        this writer
        Throws:
        java.io.IOException
      • log

        public ReflogWriter log​(java.lang.String refName,
                                ObjectId oldId,
                                ObjectId newId,
                                PersonIdent ident,
                                java.lang.String message)
                         throws java.io.IOException
        Write the given entry information to the ref's log
        Parameters:
        refName - ref name
        oldId - old object id
        newId - new object id
        ident - a PersonIdent
        message - reflog message
        Returns:
        this writer
        Throws:
        java.io.IOException
      • log

        public ReflogWriter log​(RefUpdate update,
                                java.lang.String msg,
                                boolean deref)
                         throws java.io.IOException
        Write the given ref update to the ref's log.
        Parameters:
        update - a RefUpdate
        msg - reflog message
        deref - whether to dereference symbolic refs
        Returns:
        this writer
        Throws:
        java.io.IOException
      • getFileOutputStream

        private java.io.FileOutputStream getFileOutputStream​(java.io.File log)
                                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • log

        private ReflogWriter log​(java.lang.String refName,
                                 byte[] rec)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • shouldAutoCreateLog

        private boolean shouldAutoCreateLog​(java.lang.String refName)