Allow the user to control the verbosity of merge-recursive.
[gitweb.git] / Documentation / repository-layout.txt
index 499b070598e9854b44ef240de95e650f541ea3e9..0fdd36614d8db6f52d1bdc6f8bf2e5a667edeff0 100644 (file)
@@ -1,10 +1,9 @@
-GIT repository layout
+git repository layout
 =====================
-v0.99.5, Sep 2005
 
 You may find these things in your git repository (`.git`
 directory for a repository associated with your working tree, or
-`'project'.git` directory for a public 'naked' repository).
+`'project'.git` directory for a public 'bare' repository).
 
 objects::
        Object store associated with this repository.  Usually
@@ -22,7 +21,7 @@ outside world but sometimes useful for private repository.
 . You can be using `objects/info/alternates` mechanism, or
 `$GIT_ALTERNATE_OBJECT_DIRECTORIES` mechanism to 'borrow'
 objects from other object stores.  A repository with this kind
-of incompete object store is not suitable to be published for
+of incomplete object store is not suitable to be published for
 use with dumb transports but otherwise is OK as long as
 `objects/info/alternates` points at the right object stores
 it borrows from.
@@ -53,9 +52,20 @@ objects/info/packs::
        by default.
 
 objects/info/alternates::
-       This file records absolute filesystem paths of alternate
-       object stores that this object store borrows objects
-       from, one pathname per line.
+       This file records paths to alternate object stores that
+       this object store borrows objects from, one pathname per
+       line. Note that not only native Git tools use it locally,
+       but the HTTP fetcher also tries to use it remotely; this
+       will usually work if you have relative paths (relative
+       to the object database, not to the repository!) in your
+       alternates file, but it will not work if you use absolute
+       paths unless the absolute path in filesystem and web URL
+       is the same. See also 'objects/info/http-alternates'.
+
+objects/info/http-alternates::
+       This file records URLs to alternate object stores that
+       this object store borrows objects from, to be used when
+       the repository is fetched over HTTP.
 
 refs::
        References are stored in subdirectories of this
@@ -71,12 +81,16 @@ refs/tags/`name`::
        object, or a tag object that points at a commit object).
 
 HEAD::
-       A symlink of the form `refs/heads/'name'` to point at
-       the current branch, if exists.  It does not mean much if
-       the repository is not associated with any working tree
-       (i.e. 'naked' repository), but a valid git repository
-       *must* have such a symlink here.  It is legal if the
-       named branch 'name' does not (yet) exist.
+       A symref (see glossary) to the `refs/heads/` namespace
+       describing the currently active branch.  It does not mean
+       much if the repository is not associated with any working tree
+       (i.e. a 'bare' repository), but a valid git repository
+       *must* have the HEAD file; some porcelains may use it to
+       guess the designated "default" branch of the repository
+       (usually 'master').  It is legal if the named branch
+       'name' does not (yet) exist.  In some legacy setups, it is
+       a symbolic link instead of a symref that points at the current
+       branch.
 
 branches::
        A slightly deprecated way to store shorthands to be used
@@ -88,12 +102,14 @@ branches::
 hooks::
        Hooks are customization scripts used by various git
        commands.  A handful of sample hooks are installed when
-       `git init-db` is run, but all of them are disabled by
+       `git init` is run, but all of them are disabled by
        default.  To enable, they need to be made executable.
+       Read link:hooks.html[hooks] for more details about
+       each hook.
 
 index::
        The current index file for the repository.  It is
-       usually not found in a naked repository.
+       usually not found in a bare repository.
 
 info::
        Additional information about the repository is recorded
@@ -107,7 +123,7 @@ info/refs::
        up-to-date if the repository is published for dumb
        transports.  The `git-receive-pack` command, which is
        run on a remote repository when you `git push` into it,
-       runs `hooks/update` hook to help you achive this.
+       runs `hooks/update` hook to help you achieve this.
 
 info/grafts::
        This file records fake commit ancestry information, to
@@ -117,20 +133,26 @@ info/grafts::
        listing their 40-byte hexadecimal object names separated
        by a space and terminated by a newline.
 
-info/rev-cache::
-       No higher-level tool currently takes advantage of this
-       file, but it is generated when `git update-server-info`
-       is run.  It records the commit ancestry information of
-       the commits in this repository in a concise binary
-       format, and can be read with `git-show-rev-cache`.
-
 info/exclude::
        This file, by convention among Porcelains, stores the
-       exclude pattern list.  `git status` looks at it, but
-       otherwise it is not looked at by any of the core GIT
-       commands.
+       exclude pattern list. `.gitignore` is the per-directory
+       ignore file.  `git status`, `git add`, `git rm` and `git
+       clean` look at it but the core git commands do not look
+       at it.  See also: gitlink:git-ls-files[1] `--exclude-from`
+       and `--exclude-per-directory`.
 
 remotes::
        Stores shorthands to be used to give URL and default
        refnames to interact with remote repository to `git
        fetch`, `git pull` and `git push` commands.
+
+logs::
+       Records of changes made to refs are stored in this
+       directory.  See the documentation on git-update-ref
+       for more information.
+
+logs/refs/heads/`name`::
+       Records all changes made to the branch tip named `name`.
+
+logs/refs/tags/`name`::
+       Records all changes made to the tag named `name`.