Matthias Lederhofer 892c41b98a introduce GIT_WORK_TREE to specify the work tree
setup_gdg is used as abbreviation for setup_git_directory_gently.

The work tree can be specified using the environment variable
GIT_WORK_TREE and the config option core.worktree (the environment
variable has precendence over the config option).  Additionally
there is a command line option --work-tree which sets the
environment variable.

setup_gdg does the following now:

GIT_DIR unspecified
repository in .git directory
    parent directory of the .git directory is used as work tree,
    GIT_WORK_TREE is ignored

GIT_DIR unspecified
repository in cwd
    GIT_DIR is set to cwd
    see the cases with GIT_DIR specified what happens next and
    also see the note below

GIT_DIR specified
GIT_WORK_TREE/core.worktree unspecified
    cwd is used as work tree

GIT_DIR specified
GIT_WORK_TREE/core.worktree specified
    the specified work tree is used

Note on the case where GIT_DIR is unspecified and repository is in cwd:
    GIT_WORK_TREE is used but is_inside_git_dir is always true.
    I did it this way because setup_gdg might be called multiple
    times (e.g. when doing alias expansion) and in successive calls
    setup_gdg should do the same thing every time.

Meaning of is_bare/is_inside_work_tree/is_inside_git_dir:

(1) is_bare_repository
    A repository is bare if core.bare is true or core.bare is
    unspecified and the name suggests it is bare (directory not
    named .git).  The bare option disables a few protective
    checks which are useful with a working tree.  Currently
    this changes if a repository is bare:
        updates of HEAD are allowed
        git gc packs the refs
        the reflog is disabled by default

(2) is_inside_work_tree
    True if the cwd is inside the associated working tree (if there
    is one), false otherwise.

(3) is_inside_git_dir
    True if the cwd is inside the git directory, false otherwise.
    Before this patch is_inside_git_dir was always true for bare
    repositories.

When setup_gdg finds a repository git_config(git_default_config) is
always called.  This ensure that is_bare_repository makes use of
core.bare and does not guess even though core.bare is specified.

inside_work_tree and inside_git_dir are set if setup_gdg finds a
repository.  The is_inside_work_tree and is_inside_git_dir functions
will die if they are called before a successful call to setup_gdg.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-06 16:07:53 -07:00
2007-02-03 21:49:54 -08:00
2007-06-06 00:28:10 -07:00
2007-05-30 10:45:55 -07:00
2007-05-21 23:34:54 -07:00
2007-05-21 23:34:54 -07:00
2007-04-22 10:44:56 -07:00
2007-05-30 15:03:50 -07:00
2007-05-06 00:21:03 -07:00
2007-02-27 22:15:42 -08:00
2007-06-04 22:42:49 -07:00
2007-05-23 00:17:47 -07:00
2007-04-07 02:26:24 -07:00
2007-05-24 21:35:29 -07:00
2007-03-20 22:17:47 -07:00
2007-02-24 01:42:06 -08:00
2007-04-25 23:31:45 -07:00
2007-05-24 19:01:56 -07:00
2007-05-21 23:34:54 -07:00
2006-05-01 22:29:16 -07:00
2007-06-02 12:00:26 -07:00
2007-04-25 21:39:43 -07:00
2007-05-20 02:19:19 -07:00
2005-10-14 17:17:27 -07:00
2006-05-15 12:32:13 -07:00
2007-04-21 17:21:10 -07:00
2007-04-22 22:16:14 -07:00
2007-05-21 23:34:54 -07:00
2007-05-21 23:34:54 -07:00
2007-05-21 23:34:54 -07:00
2007-05-20 02:19:19 -07:00
2007-05-23 22:37:23 -07:00
2007-05-26 00:33:03 -07:00
2007-05-16 12:43:05 -07:00
2006-02-06 21:43:27 -08:00
2007-02-03 21:49:54 -08:00
2007-05-29 00:38:52 -07:00
2007-06-06 00:40:50 -07:00
2005-09-07 17:45:20 -07:00
2007-04-23 21:39:28 -07:00
2007-05-17 17:36:57 -07:00
2007-05-26 20:24:07 -07:00
2007-06-02 16:02:49 -07:00
2007-05-13 13:34:40 -07:00
2006-09-27 23:59:09 -07:00
2007-03-27 16:57:57 -07:00
2007-06-02 13:14:18 -07:00
2007-03-07 10:47:10 -08:00
2007-03-07 10:47:10 -08:00
2007-05-21 23:34:54 -07:00
2007-05-06 00:21:03 -07:00
2006-06-26 14:58:41 -07:00
2007-04-07 02:29:40 -07:00
2007-03-19 02:48:37 -07:00
2007-04-24 00:08:49 -07:00
2007-06-02 13:14:18 -07:00
2007-06-02 13:14:18 -07:00
2007-03-07 10:47:10 -08:00
2007-05-21 23:34:54 -07:00
2007-02-08 17:48:22 -08:00
2007-06-02 12:18:51 -07:00
2007-05-28 23:54:26 -07:00
2005-11-02 16:50:58 -08:00
2006-03-25 16:35:43 -08:00
2007-05-01 02:59:08 -07:00
2007-06-06 15:43:24 -07:00
2007-05-07 22:02:40 -07:00

////////////////////////////////////////////////////////////////

	GIT - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room.
 - "goddamn idiotic truckload of sh*t": when it breaks

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

Git is an Open Source project covered by the GNU General Public License.
It was originally written by Linus Torvalds with help of a group of
hackers around the net. It is currently maintained by Junio C Hamano.

Please read the file INSTALL for installation instructions.
See Documentation/tutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands,
and "man git-commandname" for documentation of each command.
CVS users may also want to read Documentation/cvs-migration.txt.

Many Git online resources are accessible from http://git.or.cz/
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org. To subscribe
to the list, send an email with just "subscribe git" in the body to
majordomo@vger.kernel.org. The mailing list archives are available at
http://marc.theaimsgroup.com/?l=git and other archival sites.

The messages titled "A note from the maintainer", "What's in
git.git (stable)" and "What's cooking in git.git (topics)" and
the discussion following them on the mailing list give a good
reference for project status, development direction and
remaining tasks.
Description
No description provided
Readme 582 MiB
Languages
C 50.5%
Shell 38.7%
Perl 4.5%
Tcl 3.2%
Python 0.8%
Other 2.1%