Class Constants

java.lang.Object
org.eclipse.jgit.lib.Constants

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

    • HASH_FUNCTION

      private static final String HASH_FUNCTION
      Hash function used natively by Git for all objects.
      See Also:
    • 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:
    • 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_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:
    • FETCH_HEAD

      public static final String FETCH_HEAD
      Special name for the "FETCH_HEAD" symbolic-ref.
      See Also:
    • 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:
    • 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:
    • 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:
    • 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:
    • ENCODED_TYPE_COMMIT

      private static final byte[] ENCODED_TYPE_COMMIT
    • ENCODED_TYPE_BLOB

      private static final byte[] ENCODED_TYPE_BLOB
    • ENCODED_TYPE_TREE

      private static final byte[] ENCODED_TYPE_TREE
    • ENCODED_TYPE_TAG

      private static final byte[] ENCODED_TYPE_TAG
    • OBJ_BAD

      public static final int OBJ_BAD
      An unknown or invalid object type code.
      See Also:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • OBJ_TYPE_5

      public static final int OBJ_TYPE_5
      In-pack object type: reserved for future use.
      See Also:
    • 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:
    • 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:
    • 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.

    • CHARSET

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

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

      public static final String MASTER
      Default main branch name
      See Also:
    • STASH

      public static final String STASH
      Default stash branch name
      See Also:
    • R_HEADS

      public static final String R_HEADS
      Prefix for branch refs
      See Also:
    • R_REMOTES

      public static final String R_REMOTES
      Prefix for remotes refs
      See Also:
    • R_TAGS

      public static final String R_TAGS
      Prefix for tag refs
      See Also:
    • R_NOTES

      public static final String R_NOTES
      Prefix for notes refs
      See Also:
    • R_NOTES_COMMITS

      public static final String R_NOTES_COMMITS
      Standard notes ref
      See Also:
    • R_REFS

      public static final String R_REFS
      Prefix for any ref
      See Also:
    • R_STASH

      public static final String R_STASH
      Standard stash ref
      See Also:
    • LOGS

      public static final String LOGS
      Logs folder name
      See Also:
    • OBJECTS

      public static final String OBJECTS
      Objects folder name
      Since:
      5.5
      See Also:
    • REFTABLE

      public static final String REFTABLE
      Reftable folder name
      Since:
      5.6
      See Also:
    • TABLES_LIST

      public static final String TABLES_LIST
      Reftable table list name.
      Since:
      5.6.2
      See Also:
    • INFO_REFS

      public static final String INFO_REFS
      Info refs folder
      See Also:
    • INFO_ALTERNATES

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

      public static final String INFO_HTTP_ALTERNATES
      HTTP alternates file (goes under OBJECTS)
      Since:
      5.5
      See Also:
    • PACKED_REFS

      public static final String PACKED_REFS
      Packed refs file
      See Also:
    • INFO_EXCLUDE

      public static final String INFO_EXCLUDE
      Excludes-file
      Since:
      3.0
      See Also:
    • INFO_ATTRIBUTES

      public static final String INFO_ATTRIBUTES
      Attributes-override-file
      Since:
      4.2
      See Also:
    • OS_USER_DIR

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

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

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

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

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

      public static final String GIT_COMMITTER_EMAIL_KEY
      The environment variable that contains the commiter's email
      See Also:
    • 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:
    • 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:
    • 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:
    • GIT_DIR_KEY

      public static final String GIT_DIR_KEY
      The environment variable that tells us which directory is the ".git" directory
      See Also:
    • 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:
    • 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:
    • GIT_OBJECT_DIRECTORY_KEY

      public static final String GIT_OBJECT_DIRECTORY_KEY
      The environment variable that tells us where objects are stored
      See Also:
    • 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:
    • UNKNOWN_USER_DEFAULT

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

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

      public static final String GITIGNORE_FILENAME
      A gitignore file name
      See Also:
    • DEFAULT_REMOTE_NAME

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

      public static final String DOT_GIT
      Default name for the Git repository directory
      See Also:
    • CONFIG

      public static final String CONFIG
      Default name for the Git repository configuration
      See Also:
    • DOT_GIT_EXT

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

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

      public static final String DOT_GIT_ATTRIBUTES
      Name of the attributes file
      Since:
      3.7
      See Also:
    • ATTR_FILTER

      public static final String ATTR_FILTER
      Key for filters in .gitattributes
      Since:
      4.2
      See Also:
    • 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:
    • 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:
    • BUILTIN_FILTER_PREFIX

      public static final String BUILTIN_FILTER_PREFIX
      Builtin filter commands start with this prefix
      Since:
      4.6
      See Also:
    • DOT_GIT_IGNORE

      public static final String DOT_GIT_IGNORE
      Name of the ignore file
      See Also:
    • DOT_GIT_MODULES

      public static final String DOT_GIT_MODULES
      Name of the submodules file
      See Also:
    • SHALLOW

      public static final String SHALLOW
      Name of the .git/shallow file
      See Also:
    • GITDIR

      public static final String GITDIR
      Prefix of the first line in a ".git" file
      Since:
      3.6
      See Also:
    • MODULES

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

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

      public static final String ATTR_MERGE
      Merge attribute.
      Since:
      4.9
      See Also:
    • ATTR_DIFF

      public static final String ATTR_DIFF
      Diff attribute.
      Since:
      4.11
      See Also:
    • ATTR_BUILTIN_BINARY_MERGER

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

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

      public static final String MERGE_HEAD
      name of the file containing the IDs of the parents of a merge commit
      See Also:
    • 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:
    • SQUASH_MSG

      public static final String SQUASH_MSG
      name of the file containing the commit msg for a squash commit
      See Also:
    • 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:
    • 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:
    • 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:
    • 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
    • LOCK_SUFFIX

      public static final String LOCK_SUFFIX
      Suffix of lock file name
      Since:
      4.7
      See Also:
  • Constructor Details

    • Constants

      private Constants()
  • Method Details

    • 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: