Class LfsFactory

java.lang.Object
org.eclipse.jgit.util.LfsFactory

public class LfsFactory extends Object
Represents an optionally present LFS support implementation
Since:
4.11
  • Constructor Details

    • LfsFactory

      protected LfsFactory()
      Constructor
  • Method Details

    • getInstance

      public static LfsFactory getInstance()
      Get the LFS factory instance
      Returns:
      the current LFS implementation
    • setInstance

      public static void setInstance(LfsFactory instance)
      Set the LFS factory instance
      Parameters:
      instance - register a LfsFactory instance as the LfsFactory implementation to use.
    • isAvailable

      public boolean isAvailable()
      Whether LFS support is available
      Returns:
      whether LFS support is available
    • applyCleanFilter

      public LfsFactory.LfsInputStream applyCleanFilter(Repository db, InputStream input, long length, Attribute attribute) throws IOException
      Apply clean filtering to the given stream, writing the file content to the LFS storage if required and returning a stream to the LFS pointer instead.
      Parameters:
      db - the repository
      input - the original input
      length - the expected input stream length
      attribute - the attribute used to check for LFS enablement (i.e. "merge", "diff", "filter" from .gitattributes).
      Returns:
      a stream to the content that should be written to the object store along with the expected length of the stream. the original stream is not applicable.
      Throws:
      IOException - in case of an error
    • applySmudgeFilter

      public ObjectLoader applySmudgeFilter(Repository db, ObjectLoader loader, Attribute attribute) throws IOException
      Apply smudge filtering to a given loader, potentially redirecting it to a LFS blob which is downloaded on demand.
      Parameters:
      db - the repository
      loader - the loader for the blob
      attribute - the attribute used to check for LFS enablement (i.e. "merge", "diff", "filter" from .gitattributes).
      Returns:
      a loader for the actual data of a blob, or the original loader in case LFS is not applicable.
      Throws:
      IOException - if an IO error occurred
    • getPrePushHook

      @Nullable public PrePushHook getPrePushHook(Repository repo, PrintStream outputStream)
      Retrieve a pre-push hook to be applied using the default error stream.
      Parameters:
      repo - the Repository the hook is applied to.
      outputStream - output stream
      Returns:
      a PrePushHook implementation or null
    • getPrePushHook

      @Nullable public PrePushHook getPrePushHook(Repository repo, PrintStream outputStream, PrintStream errorStream)
      Retrieve a pre-push hook to be applied.
      Parameters:
      repo - the Repository the hook is applied to.
      outputStream - output stream
      errorStream - error stream
      Returns:
      a PrePushHook implementation or null
      Since:
      5.6
    • getInstallCommand

      @Nullable public LfsFactory.LfsInstallCommand getInstallCommand()
      Retrieve an LfsFactory.LfsInstallCommand which can be used to enable LFS support (if available) either per repository or for the user.
      Returns:
      a command to install LFS support.
    • isEnabled

      public boolean isEnabled(Repository db)
      Whether LFS is enabled
      Parameters:
      db - the repository to check
      Returns:
      whether LFS is enabled for the given repository locally or globally.
    • getAttributesForPath

      public static Attributes getAttributesForPath(Repository db, String path) throws IOException
      Get git attributes for given path
      Parameters:
      db - the repository
      path - the path to find attributes for
      Returns:
      the Attributes for the given path.
      Throws:
      IOException - in case of an error
    • getAttributesForPath

      public static Attributes getAttributesForPath(Repository db, String path, RevCommit commit) throws IOException
      Get attributes for given path and commit
      Parameters:
      db - the repository
      path - the path to find attributes for
      commit - the commit to inspect.
      Returns:
      the Attributes for the given path.
      Throws:
      IOException - in case of an error