git-sh-setup(1)
===============

NAME
----
git-sh-setup - Common git shell script setup code

SYNOPSIS
--------
'git-sh-setup'

DESCRIPTION
-----------

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.

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.

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).

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 repository is a bare repository, and dies
	if so.  Used by scripts that require working tree
	(e.g. `checkout`).

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.


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the linkgit:git[7] suite
