Class Constants


  • public final class Constants
    extends Object
    Misc. constants and helpers used throughout JGit.
    • Field Detail

      • OBJECT_ID_LENGTH

        public static final int OBJECT_ID_LENGTH
        A Git object hash is 160 bits, i.e. 20 bytes.

        Changing this assumption is not going to be as easy as changing this declaration.

        See Also:
        Constant Field Values
      • OBJECT_ID_STRING_LENGTH

        public static final int OBJECT_ID_STRING_LENGTH
        A Git object can be expressed as a 40 character string of hexadecimal digits.
        See Also:
        OBJECT_ID_LENGTH, Constant Field Values
      • OBJECT_ID_ABBREV_STRING_LENGTH

        public static final int OBJECT_ID_ABBREV_STRING_LENGTH
        The historic length of an abbreviated Git object hash string. Git 2.11 changed this static number to a dynamically calculated one that scales as the repository grows.
        Since:
        6.1
        See Also:
        Constant Field Values
      • TYPE_COMMIT

        public static final String TYPE_COMMIT
        Text string that identifies an object as a commit.

        Commits connect trees into a string of project histories, where each commit is an assertion that the best way to continue is to use this other tree (set of files).

        See Also:
        Constant Field Values
      • TYPE_BLOB

        public static final String TYPE_BLOB
        Text string that identifies an object as a blob.

        Blobs store whole file revisions. They are used for any user file, as well as for symlinks. Blobs form the bulk of any project's storage space.

        See Also:
        Constant Field Values
      • TYPE_TREE

        public static final String TYPE_TREE
        Text string that identifies an object as a tree.

        Trees attach object ids (hashes) to names and file modes. The normal use for a tree is to store a version of a directory and its contents.

        See Also:
        Constant Field Values
      • TYPE_TAG

        public static final String TYPE_TAG
        Text string that identifies an object as an annotated tag.

        Annotated tags store a pointer to any other object, and an additional message. It is most commonly used to record a stable release of the project.

        See Also:
        Constant Field Values
      • OBJ_BAD

        public static final int OBJ_BAD
        An unknown or invalid object type code.
        See Also:
        Constant Field Values
      • OBJ_EXT

        public static final int OBJ_EXT
        In-pack object type: extended types.

        This header code is reserved for future expansion. It is currently undefined/unsupported.

        See Also:
        Constant Field Values
      • OBJ_COMMIT

        public static final int OBJ_COMMIT
        In-pack object type: commit.

        Indicates the associated object is a commit.

        This constant is fixed and is defined by the Git packfile format.

        See Also:
        TYPE_COMMIT, Constant Field Values
      • OBJ_TREE

        public static final int OBJ_TREE
        In-pack object type: tree.

        Indicates the associated object is a tree.

        This constant is fixed and is defined by the Git packfile format.

        See Also:
        TYPE_BLOB, Constant Field Values
      • OBJ_BLOB

        public static final int OBJ_BLOB
        In-pack object type: blob.

        Indicates the associated object is a blob.

        This constant is fixed and is defined by the Git packfile format.

        See Also:
        TYPE_BLOB, Constant Field Values
      • OBJ_TAG

        public static final int OBJ_TAG
        In-pack object type: annotated tag.

        Indicates the associated object is an annotated tag.

        This constant is fixed and is defined by the Git packfile format.

        See Also:
        TYPE_TAG, Constant Field Values
      • OBJ_TYPE_5

        public static final int OBJ_TYPE_5
        In-pack object type: reserved for future use.
        See Also:
        Constant Field Values
      • OBJ_OFS_DELTA

        public static final int OBJ_OFS_DELTA
        In-pack object type: offset delta

        Objects stored with this type actually have a different type which must be obtained from their delta base object. Delta objects store only the changes needed to apply to the base object in order to recover the original object.

        An offset delta uses a negative offset from the start of this object to refer to its delta base. The base object must exist in this packfile (even in the case of a thin pack).

        This constant is fixed and is defined by the Git packfile format.

        See Also:
        Constant Field Values
      • OBJ_REF_DELTA

        public static final int OBJ_REF_DELTA
        In-pack object type: reference delta

        Objects stored with this type actually have a different type which must be obtained from their delta base object. Delta objects store only the changes needed to apply to the base object in order to recover the original object.

        A reference delta uses a full object id (hash) to reference the delta base. The base object is allowed to be omitted from the packfile, but only in the case of a thin pack being transferred over the network.

        This constant is fixed and is defined by the Git packfile format.

        See Also:
        Constant Field Values
      • PACK_SIGNATURE

        public static final byte[] PACK_SIGNATURE
        Pack file signature that occurs at file header - identifies file as Git packfile formatted.

        This constant is fixed and is defined by the Git packfile format.

      • CHARACTER_ENCODING

        @Deprecated
        public static final String CHARACTER_ENCODING
        Deprecated.
        Use StandardCharsets.UTF_8 directly instead.
        Native character encoding for commit messages, file names...
      • INFO_ALTERNATES

        public static final String INFO_ALTERNATES
        Info alternates file (goes under OBJECTS)
        Since:
        5.5
        See Also:
        Constant Field Values
      • INFO_HTTP_ALTERNATES

        public static final String INFO_HTTP_ALTERNATES
        HTTP alternates file (goes under OBJECTS)
        Since:
        5.5
        See Also:
        Constant Field Values
      • OS_USER_DIR

        public static final String OS_USER_DIR
        The system property that contains the system user name
        Since:
        3.6
        See Also:
        Constant Field Values
      • OS_USER_NAME_KEY

        public static final String OS_USER_NAME_KEY
        The system property that contains the system user name
        See Also:
        Constant Field Values
      • GIT_AUTHOR_NAME_KEY

        public static final String GIT_AUTHOR_NAME_KEY
        The environment variable that contains the author's name
        See Also:
        Constant Field Values
      • GIT_AUTHOR_EMAIL_KEY

        public static final String GIT_AUTHOR_EMAIL_KEY
        The environment variable that contains the author's email
        See Also:
        Constant Field Values
      • GIT_COMMITTER_NAME_KEY

        public static final String GIT_COMMITTER_NAME_KEY
        The environment variable that contains the commiter's name
        See Also:
        Constant Field Values
      • GIT_COMMITTER_EMAIL_KEY

        public static final String GIT_COMMITTER_EMAIL_KEY
        The environment variable that contains the commiter's email
        See Also:
        Constant Field Values
      • GIT_CONFIG_NOSYSTEM_KEY

        public static final String GIT_CONFIG_NOSYSTEM_KEY
        The environment variable that blocks use of the system config file
        Since:
        3.3
        See Also:
        Constant Field Values
      • XDG_CONFIG_HOME

        public static final String XDG_CONFIG_HOME
        The key of the XDG_CONFIG_HOME directory defined in the XDG base directory specification, see {@link "https://wiki.archlinux.org/index.php/XDG_Base_Directory"}
        Since:
        5.5.2
        See Also:
        Constant Field Values
      • GIT_CEILING_DIRECTORIES_KEY

        public static final String GIT_CEILING_DIRECTORIES_KEY
        The environment variable that limits how close to the root of the file systems JGit will traverse when looking for a repository root.
        See Also:
        Constant Field Values
      • GIT_DIR_KEY

        public static final String GIT_DIR_KEY
        The environment variable that tells us which directory is the ".git" directory
        See Also:
        Constant Field Values
      • GIT_WORK_TREE_KEY

        public static final String GIT_WORK_TREE_KEY
        The environment variable that tells us which directory is the working directory.
        See Also:
        Constant Field Values
      • GIT_INDEX_FILE_KEY

        public static final String GIT_INDEX_FILE_KEY
        The environment variable that tells us which file holds the Git index.
        See Also:
        Constant Field Values
      • GIT_OBJECT_DIRECTORY_KEY

        public static final String GIT_OBJECT_DIRECTORY_KEY
        The environment variable that tells us where objects are stored
        See Also:
        Constant Field Values
      • GIT_ALTERNATE_OBJECT_DIRECTORIES_KEY

        public static final String GIT_ALTERNATE_OBJECT_DIRECTORIES_KEY
        The environment variable that tells us where to look for objects, besides the default objects directory.
        See Also:
        Constant Field Values
      • UNKNOWN_USER_DEFAULT

        public static final String UNKNOWN_USER_DEFAULT
        Default value for the user name if no other information is available
        See Also:
        Constant Field Values
      • SIGNED_OFF_BY_TAG

        public static final String SIGNED_OFF_BY_TAG
        Beginning of the common "Signed-off-by: " commit message line
        See Also:
        Constant Field Values
      • DEFAULT_REMOTE_NAME

        public static final String DEFAULT_REMOTE_NAME
        Default remote name used by clone, push and fetch operations
        See Also:
        Constant Field Values
      • DOT_GIT_EXT

        public static final String DOT_GIT_EXT
        A bare repository typically ends with this string
        See Also:
        Constant Field Values
      • DOT_BUNDLE_EXT

        public static final String DOT_BUNDLE_EXT
        The default extension for local bundle files
        Since:
        5.8
        See Also:
        Constant Field Values
      • DOT_GIT_ATTRIBUTES

        public static final String DOT_GIT_ATTRIBUTES
        Name of the attributes file
        Since:
        3.7
        See Also:
        Constant Field Values
      • ATTR_FILTER_TYPE_CLEAN

        public static final String ATTR_FILTER_TYPE_CLEAN
        clean command name, used to call filter driver
        Since:
        4.2
        See Also:
        Constant Field Values
      • ATTR_FILTER_TYPE_SMUDGE

        public static final String ATTR_FILTER_TYPE_SMUDGE
        smudge command name, used to call filter driver
        Since:
        4.2
        See Also:
        Constant Field Values
      • BUILTIN_FILTER_PREFIX

        public static final String BUILTIN_FILTER_PREFIX
        Builtin filter commands start with this prefix
        Since:
        4.6
        See Also:
        Constant Field Values
      • MODULES

        public static final String MODULES
        Name of the folder (inside gitDir) where submodules are stored
        Since:
        3.6
        See Also:
        Constant Field Values
      • HOOKS

        public static final String HOOKS
        Name of the folder (inside gitDir) where the hooks are stored.
        Since:
        3.7
        See Also:
        Constant Field Values
      • ATTR_BUILTIN_BINARY_MERGER

        public static final String ATTR_BUILTIN_BINARY_MERGER
        Binary value for custom merger.
        Since:
        4.9
        See Also:
        Constant Field Values
      • MERGE_MSG

        public static final String MERGE_MSG
        name of the file containing the commit msg for a merge commit
        See Also:
        Constant Field Values
      • MERGE_HEAD

        public static final String MERGE_HEAD
        name of the file containing the IDs of the parents of a merge commit
        See Also:
        Constant Field Values
      • CHERRY_PICK_HEAD

        public static final String CHERRY_PICK_HEAD
        name of the file containing the ID of a cherry pick commit in case of conflicts
        See Also:
        Constant Field Values
      • SQUASH_MSG

        public static final String SQUASH_MSG
        name of the file containing the commit msg for a squash commit
        See Also:
        Constant Field Values
      • REVERT_HEAD

        public static final String REVERT_HEAD
        name of the file containing the ID of a revert commit in case of conflicts
        See Also:
        Constant Field Values
      • ORIG_HEAD

        public static final String ORIG_HEAD
        name of the ref ORIG_HEAD used by certain commands to store the original value of HEAD
        See Also:
        Constant Field Values
      • COMMIT_EDITMSG

        public static final String COMMIT_EDITMSG
        Name of the file in which git commands and hooks store and read the message prepared for the upcoming commit.
        Since:
        4.0
        See Also:
        Constant Field Values
      • EMPTY_BLOB_ID

        public static final ObjectId EMPTY_BLOB_ID
        Well-known object ID for the empty blob.
        Since:
        0.9.1
      • EMPTY_TREE_ID

        public static final ObjectId EMPTY_TREE_ID
        Well-known object ID for the empty tree.
        Since:
        5.1
      • INFINITE_DEPTH

        public static final int INFINITE_DEPTH
        Depth used to unshallow a repository
        Since:
        6.3
        See Also:
        Constant Field Values
    • Method Detail

      • newMessageDigest

        public static MessageDigest newMessageDigest()
        Create a new digest function for objects.
        Returns:
        a new digest object.
        Throws:
        RuntimeException - this Java virtual machine does not support the required hash function. Very unlikely given that JGit uses a hash function that is in the Java reference specification.
      • typeString

        public static String typeString​(int typeCode)
        Convert an OBJ_* type constant to a TYPE_* type constant.
        Parameters:
        typeCode - the type code, from a pack representation.
        Returns:
        the canonical string name of this type.
      • encodedTypeString

        public static byte[] encodedTypeString​(int typeCode)
        Convert an OBJ_* type constant to an ASCII encoded string constant.

        The ASCII encoded string is often the canonical representation of the type within a loose object header, or within a tag header.

        Parameters:
        typeCode - the type code, from a pack representation.
        Returns:
        the canonical ASCII encoded name of this type.
      • decodeTypeString

        public static int decodeTypeString​(AnyObjectId id,
                                           byte[] typeString,
                                           byte endMark,
                                           MutableInteger offset)
                                    throws CorruptObjectException
        Parse an encoded type string into a type constant.
        Parameters:
        id - object id this type string came from; may be null if that is not known at the time the parse is occurring.
        typeString - string version of the type code.
        endMark - character immediately following the type string. Usually ' ' (space) or '\n' (line feed).
        offset - position within typeString where the parse should start. Updated with the new position (just past endMark when the parse is successful.
        Returns:
        a type code constant (one of OBJ_BLOB, OBJ_COMMIT, OBJ_TAG, OBJ_TREE.
        Throws:
        CorruptObjectException - there is no valid type identified by typeString.
      • encodeASCII

        public static byte[] encodeASCII​(long s)
        Convert an integer into its decimal representation.
        Parameters:
        s - the integer to convert.
        Returns:
        a decimal representation of the input integer. The returned array is the smallest array that will hold the value.
      • encodeASCII

        public static byte[] encodeASCII​(String s)
        Convert a string to US-ASCII encoding.
        Parameters:
        s - the string to convert. Must not contain any characters over 127 (outside of 7-bit ASCII).
        Returns:
        a byte array of the same length as the input string, holding the same characters, in the same order.
        Throws:
        IllegalArgumentException - the input string contains one or more characters outside of the 7-bit ASCII character space.
      • encode

        public static byte[] encode​(String str)
        Convert a string to a byte array in the standard character encoding.
        Parameters:
        str - the string to convert. May contain any Unicode characters.
        Returns:
        a byte array representing the requested string, encoded using the default character encoding (UTF-8).
        See Also:
        CHARACTER_ENCODING