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.

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


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 gitlink:git[7] suite

