diff options
Diffstat (limited to 'Documentation/git-sh-setup.txt')
-rw-r--r-- | Documentation/git-sh-setup.txt | 74 |
1 files changed, 58 insertions, 16 deletions
diff --git a/Documentation/git-sh-setup.txt b/Documentation/git-sh-setup.txt index 6742c9bfcf..a2f346ca71 100644 --- a/Documentation/git-sh-setup.txt +++ b/Documentation/git-sh-setup.txt @@ -7,29 +7,71 @@ git-sh-setup - Common git shell script setup code SYNOPSIS -------- -'git-sh-setup' +[verse] +'. "$(git --exec-path)/git-sh-setup"' DESCRIPTION ----------- -Sets up the normal git environment variables and a few helper functions -(currently just "die()"), and returns ok if it all looks like a git archive. -So, to make the rest of the git scripts more careful and readable, -use it as follows: +This is not a command the end user would want to run. Ever. +This documentation is meant for people who are studying the +Porcelain-ish scripts and/or are writing new ones. -------------------------------------------------- -. git-sh-setup || die "Not a git archive" -------------------------------------------------- +The 'git sh-setup' scriptlet is designed to be sourced (using +`.`) by other shell scripts to set up some variables pointing at +the normal git directories and a few helper shell functions. -Author ------- -Written by Linus Torvalds <torvalds@osdl.org> +Before sourcing it, your script should set up a few variables; +`USAGE` (and `LONG_USAGE`, if any) is used to define message +given by `usage()` shell function. `SUBDIRECTORY_OK` can be set +if the script can run from a subdirectory of the working tree +(some commands do not). -Documentation --------------- -Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. +The scriptlet sets `GIT_DIR` and `GIT_OBJECT_DIRECTORY` shell +variables, but does *not* export them to the environment. + +FUNCTIONS +--------- + +die:: + exit after emitting the supplied error message to the + standard error stream. + +usage:: + die with the usage message. + +set_reflog_action:: + set the message that will be recorded to describe the + end-user action in the reflog, when the script updates a + ref. + +git_editor:: + runs an editor of user's choice (GIT_EDITOR, core.editor, VISUAL or + EDITOR) on a given file, but error out if no editor is specified + and the terminal is dumb. + +is_bare_repository:: + outputs `true` or `false` to the standard output stream + to indicate if the repository is a bare repository + (i.e. without an associated working tree). + +cd_to_toplevel:: + runs chdir to the toplevel of the working tree. + +require_work_tree:: + checks if the current directory is within the working tree + of the repository, and otherwise dies. + +require_work_tree_exists:: + checks if the working tree associated with the repository + exists, and otherwise dies. Often done before calling + cd_to_toplevel, which is impossible to do if there is no + working tree. + +get_author_ident_from_commit:: + outputs code for use with eval to set the GIT_AUTHOR_NAME, + GIT_AUTHOR_EMAIL and GIT_AUTHOR_DATE variables for a given commit. GIT --- -Part of the gitlink:git[7] suite - +Part of the linkgit:git[1] suite |