Merge branch 'jc/autogc' into js/rebase-i
[gitweb.git] / Documentation / config.txt
index aaae9ac3052b5a4de6ec53817e79797626f7da31..2f04226988cb070a8fede8db757949ea7cab09c7 100644 (file)
@@ -101,7 +101,7 @@ Example
 
        # Proxy settings
        [core]
-               gitProxy="ssh" for "ssh://kernel.org/"
+               gitProxy="ssh" for "kernel.org"
                gitProxy=default-proxy ; for the rest
 
 Variables
@@ -117,6 +117,28 @@ core.fileMode::
        the working copy are ignored; useful on broken filesystems like FAT.
        See gitlink:git-update-index[1]. True by default.
 
+core.quotepath::
+       The commands that output paths (e.g. `ls-files`,
+       `diff`), when not given the `-z` option, will quote
+       "unusual" characters in the pathname by enclosing the
+       pathname in a double-quote pair and with backslashes the
+       same way strings in C source code are quoted.  If this
+       variable is set to false, the bytes higher than 0x80 are
+       not quoted but output as verbatim.  Note that double
+       quote, backslash and control characters are always
+       quoted without `-z` regardless of the setting of this
+       variable.
+
+core.autocrlf::
+       If true, makes git convert `CRLF` at the end of lines in text files to
+       `LF` when reading from the filesystem, and convert in reverse when
+       writing to the filesystem.  The variable can be set to
+       'input', in which case the conversion happens only while
+       reading from the filesystem but files are written out with
+       `LF` at the end of lines.  Currently, which paths to consider
+       "text" (i.e. be subjected to the autocrlf mechanism) is
+       decided purely based on the contents.
+
 core.symlinks::
        If false, symbolic links are checked out as small plain files that
        contain the link text. gitlink:git-update-index[1] and
@@ -162,8 +184,15 @@ repository that ends in "/.git" is assumed to be not bare (bare =
 false), while all other repositories are assumed to be bare (bare
 = true).
 
+core.worktree::
+       Set the path to the working tree.  The value will not be
+       used in combination with repositories found automatically in
+       a .git directory (i.e. $GIT_DIR is not set).
+       This can be overriden by the GIT_WORK_TREE environment
+       variable and the '--work-tree' command line option.
+
 core.logAllRefUpdates::
-       Updates to a ref <ref> is logged to the file
+       Enable the reflog. Updates to a ref <ref> is logged to the file
        "$GIT_DIR/logs/<ref>", by appending the new and old
        SHA1, the date/time and the reason of the update, but
        only when the file exists.  If this configuration
@@ -194,23 +223,16 @@ core.warnAmbiguousRefs::
        and might match multiple refs in the .git/refs/ tree. True by default.
 
 core.compression::
+       An integer -1..9, indicating a default compression level.
+       -1 is the zlib default. 0 means no compression,
+       and 1..9 are various speed/size tradeoffs, 9 being slowest.
+
+core.loosecompression::
        An integer -1..9, indicating the compression level for objects that
-       are not in a pack file. -1 is the zlib and git default. 0 means no
+       are not in a pack file. -1 is the zlib default. 0 means no
        compression, and 1..9 are various speed/size tradeoffs, 9 being
-       slowest.
-
-core.legacyheaders::
-       A boolean which
-       changes the format of loose objects so that they are more
-       efficient to pack and to send out of the repository over git
-       native protocol, since v1.4.2.  However, loose objects
-       written in the new format cannot be read by git older than
-       that version; people fetching from your repository using
-       older versions of git over dumb transports (e.g. http)
-       will also be affected.
-+
-To let git use the new loose object format, you have to
-set core.legacyheaders to false.
+       slowest.  If not set,  defaults to core.compression.  If that is
+       not set,  defaults to 0 (best speed).
 
 core.packedGitWindowSize::
        Number of bytes of a pack file to map into memory in a
@@ -240,6 +262,37 @@ the largest projects.  You probably do not need to adjust this value.
 +
 Common unit suffixes of 'k', 'm', or 'g' are supported.
 
+core.deltaBaseCacheLimit::
+       Maximum number of bytes to reserve for caching base objects
+       that multiple deltafied objects reference.  By storing the
+       entire decompressed base objects in a cache Git is able
+       to avoid unpacking and decompressing frequently used base
+       objects multiple times.
++
+Default is 16 MiB on all platforms.  This should be reasonable
+for all users/operating systems, except on the largest projects.
+You probably do not need to adjust this value.
++
+Common unit suffixes of 'k', 'm', or 'g' are supported.
+
+core.excludesfile::
+       In addition to '.gitignore' (per-directory) and
+       '.git/info/exclude', git looks into this file for patterns
+       of files which are not meant to be tracked.  See
+       gitlink:gitignore[5].
+
+core.editor::
+       Commands such as `commit` and `tag` that lets you edit
+       messages by launching an editor uses the value of this
+       variable when it is set, and the environment variable
+       `GIT_EDITOR` is not set.  The order of preference is
+       `GIT_EDITOR` environment, `core.editor`, `VISUAL` and
+       `EDITOR` environment variables and then finally `vi`.
+
+core.pager::
+       The command that git will use to paginate output.  Can be overridden
+       with the `GIT_PAGER` environment variable.
+
 alias.*::
        Command aliases for the gitlink:git[1] command wrapper - e.g.
        after defining "alias.last = cat-file commit HEAD", the invocation
@@ -248,17 +301,24 @@ alias.*::
        hide existing git commands are ignored. Arguments are split by
        spaces, the usual shell quoting and escaping is supported.
        quote pair and a backslash can be used to quote them.
-
-       If the alias expansion is prefixed with an exclamation point,
-       it will be treated as a shell command.  For example, defining
-       "alias.new = !gitk --all --not ORIG_HEAD", the invocation
-       "git new" is equivalent to running the shell command
-       "gitk --all --not ORIG_HEAD".
++
+If the alias expansion is prefixed with an exclamation point,
+it will be treated as a shell command.  For example, defining
+"alias.new = !gitk --all --not ORIG_HEAD", the invocation
+"git new" is equivalent to running the shell command
+"gitk --all --not ORIG_HEAD".
 
 apply.whitespace::
        Tells `git-apply` how to handle whitespaces, in the same way
        as the '--whitespace' option. See gitlink:git-apply[1].
 
+branch.autosetupmerge::
+       Tells `git-branch` and `git-checkout` to setup new branches
+       so that gitlink:git-pull[1] will appropriately merge from that
+       remote branch.  Note that even if this option is not set,
+       this behavior can be chosen per-branch using the `--track`
+       and `--no-track` options.  This option defaults to false.
+
 branch.<name>.remote::
        When in branch <name>, it tells `git fetch` which remote to fetch.
        If this option is not given, `git fetch` defaults to remote "origin".
@@ -272,6 +332,14 @@ branch.<name>.merge::
        `git fetch`) to lookup the default branch for merging. Without
        this option, `git pull` defaults to merge the first refspec fetched.
        Specify multiple values to get an octopus merge.
+       If you wish to setup `git pull` so that it merges into <name> from
+       another branch in the local repository, you can point
+       branch.<name>.merge to the desired branch, and use the special setting
+       `.` (a period) for branch.<name>.remote.
+
+clean.requireForce::
+       A boolean to make git-clean do nothing unless given -f or -n.  Defaults
+       to false.
 
 color.branch::
        A boolean to enable/disable color in the output of
@@ -325,6 +393,19 @@ color.status.<slot>::
        or `untracked` (files which are not tracked by git). The values of
        these variables may be specified as in color.branch.<slot>.
 
+commit.template::
+       Specify a file to use as the template for new commit messages.
+
+diff.autorefreshindex::
+       When using `git diff` to compare with work tree
+       files, do not consider stat-only change as changed.
+       Instead, silently run `git update-index --refresh` to
+       update the cached stat information for paths whose
+       contents in the work tree match the contents in the
+       index.  This option defaults to true.  Note that this
+       affects only `git diff` Porcelain, and not lower level
+       `diff` commands, such as `git diff-files`.
+
 diff.renameLimit::
        The number of files to consider when performing the copy/rename
        detection; equivalent to the git diff option '-l'.
@@ -353,6 +434,24 @@ format.suffix::
        `.patch`. Use this variable to change that suffix (make sure to
        include the dot if you want it).
 
+gc.aggressiveWindow::
+       The window size parameter used in the delta compression
+       algorithm used by 'git gc --aggressive'.  This defaults
+       to 10.
+
+gc.auto::
+       When there are approximately more than this many loose
+       objects in the repository, `git gc --auto` will pack them.
+       Some Porcelain commands use this command to perform a
+       light-weight garbage collection from time to time.  Setting
+       this to 0 disables it.
+
+gc.autopacklimit::
+       When there are more than this many packs that are not
+       marked with `*.keep` file in the repository, `git gc
+       --auto` consolidates them into one larger pack.  Setting
+       this to 0 disables this.
+
 gc.packrefs::
        `git gc` does not run `git pack-refs` in a bare repository by
        default so that older dumb-transport clients can still fetch
@@ -383,14 +482,52 @@ gc.rerereunresolved::
        kept for this many days when `git rerere gc` is run.
        The default is 15 days.  See gitlink:git-rerere[1].
 
+rerere.enabled::
+       Activate recording of resolved conflicts, so that identical
+       conflict hunks can be resolved automatically, should they
+       be encountered again.  See gitlink:git-rerere[1].
+
 gitcvs.enabled::
-       Whether the cvs pserver interface is enabled for this repository.
+       Whether the CVS server interface is enabled for this repository.
        See gitlink:git-cvsserver[1].
 
 gitcvs.logfile::
-       Path to a log file where the cvs pserver interface well... logs
+       Path to a log file where the CVS server interface well... logs
        various stuff. See gitlink:git-cvsserver[1].
 
+gitcvs.allbinary::
+       If true, all files are sent to the client in mode '-kb'. This
+       causes the client to treat all files as binary files which suppresses
+       any newline munging it otherwise might do. A work-around for the
+       fact that there is no way yet to set single files to mode '-kb'.
+
+gitcvs.dbname::
+       Database used by git-cvsserver to cache revision information
+       derived from the git repository. The exact meaning depends on the
+       used database driver, for SQLite (which is the default driver) this
+       is a filename. Supports variable substitution (see
+       gitlink:git-cvsserver[1] for details). May not contain semicolons (`;`).
+       Default: '%Ggitcvs.%m.sqlite'
+
+gitcvs.dbdriver::
+       Used Perl DBI driver. You can specify any available driver
+        for this here, but it might not work. git-cvsserver is tested
+       with 'DBD::SQLite', reported to work with 'DBD::Pg', and
+       reported *not* to work with 'DBD::mysql'. Experimental feature.
+       May not contain double colons (`:`). Default: 'SQLite'.
+       See gitlink:git-cvsserver[1].
+
+gitcvs.dbuser, gitcvs.dbpass::
+       Database user and password. Only useful if setting 'gitcvs.dbdriver',
+       since SQLite has no concept of database users and/or passwords.
+       'gitcvs.dbuser' supports variable substitution (see
+       gitlink:git-cvsserver[1] for details).
+
+All gitcvs variables except for 'gitcvs.allbinary' can also be
+specified as 'gitcvs.<access_method>.<varname>' (where 'access_method'
+is one of "ext" and "pserver") to make them apply only for the given
+access method.
+
 http.sslVerify::
        Whether to verify the SSL certificate when fetching or pushing
        over HTTPS. Can be overridden by the 'GIT_SSL_NO_VERIFY' environment
@@ -428,7 +565,7 @@ http.lowSpeedLimit, http.lowSpeedTime::
 
 http.noEPSV::
        A boolean which disables using of EPSV ftp command by curl.
-       This can helpful with some "poor" ftp servers which doesn't
+       This can helpful with some "poor" ftp servers which don't
        support EPSV mode. Can be overridden by the 'GIT_CURL_FTP_NO_EPSV'
        environment variable. Default is false (curl will use EPSV).
 
@@ -456,7 +593,7 @@ merge.summary::
 merge.tool::
        Controls which merge resolution program is used by
        gitlink:git-mergetool[l].  Valid values are: "kdiff3", "tkdiff",
-       "meld", "xxdiff", "emerge"
+       "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff", and "opendiff".
 
 merge.verbosity::
        Controls the amount of output shown by the recursive merge
@@ -464,11 +601,59 @@ merge.verbosity::
        message if conflicts were detected. Level 1 outputs only
        conflicts, 2 outputs conflicts and file changes.  Level 5 and
        above outputs debugging information.  The default is level 2.
+       Can be overriden by 'GIT_MERGE_VERBOSITY' environment variable.
+
+merge.<driver>.name::
+       Defines a human readable name for a custom low-level
+       merge driver.  See gitlink:gitattributes[5] for details.
+
+merge.<driver>.driver::
+       Defines the command that implements a custom low-level
+       merge driver.  See gitlink:gitattributes[5] for details.
+
+merge.<driver>.recursive::
+       Names a low-level merge driver to be used when
+       performing an internal merge between common ancestors.
+       See gitlink:gitattributes[5] for details.
 
 pack.window::
        The size of the window used by gitlink:git-pack-objects[1] when no
        window size is given on the command line. Defaults to 10.
 
+pack.depth::
+       The maximum delta depth used by gitlink:git-pack-objects[1] when no
+       maximum depth is given on the command line. Defaults to 50.
+
+pack.windowMemory::
+       The window memory size limit used by gitlink:git-pack-objects[1]
+       when no limit is given on the command line.  The value can be
+       suffixed with "k", "m", or "g".  Defaults to 0, meaning no
+       limit.
+
+pack.compression::
+       An integer -1..9, indicating the compression level for objects
+       in a pack file. -1 is the zlib default. 0 means no
+       compression, and 1..9 are various speed/size tradeoffs, 9 being
+       slowest.  If not set,  defaults to core.compression.  If that is
+       not set,  defaults to -1.
+
+pack.deltaCacheSize::
+       The maximum memory in bytes used for caching deltas in
+       gitlink:git-pack-objects[1].
+       A value of 0 means no limit. Defaults to 0.
+
+pack.deltaCacheLimit::
+       The maximum size of a delta, that is cached in
+       gitlink:git-pack-objects[1]. Defaults to 1000.
+
+pack.threads::
+       Specifies the number of threads to spawn when searching for best
+       delta matches.  This requires that gitlink:git-pack-objects[1]
+       be compiled with pthreads otherwise this option is ignored with a
+       warning. This is meant to reduce packing time on multiprocessor
+       machines. The required amount of memory for the delta search window
+       is however multiplied by the number of threads.
+
 pull.octopus::
        The default merge strategy to use when pulling multiple branches
        at once.
@@ -521,20 +706,16 @@ showbranch.default::
        See gitlink:git-show-branch[1].
 
 tar.umask::
-       By default, gitlink:git-tar-tree[1] sets file and directories modes
-       to 0666 or 0777. While this is both useful and acceptable for projects
-       such as the Linux Kernel, it might be excessive for other projects.
-       With this variable, it becomes possible to tell
-       gitlink:git-tar-tree[1] to apply a specific umask to the modes above.
-       The special value "user" indicates that the user's current umask will
-       be used. This should be enough for most projects, as it will lead to
-       the same permissions as gitlink:git-checkout[1] would use. The default
-       value remains 0, which means world read-write.
+       This variable can be used to restrict the permission bits of
+       tar archive entries.  The default is 0002, which turns off the
+       world write bit.  The special value "user" indicates that the
+       archiving user's umask will be used instead.  See umask(2) and
+       gitlink:git-archive[1].
 
 user.email::
        Your email address to be recorded in any newly created commits.
-       Can be overridden by the 'GIT_AUTHOR_EMAIL' and 'GIT_COMMITTER_EMAIL'
-       environment variables.  See gitlink:git-commit-tree[1].
+       Can be overridden by the 'GIT_AUTHOR_EMAIL', 'GIT_COMMITTER_EMAIL', and
+       'EMAIL' environment variables.  See gitlink:git-commit-tree[1].
 
 user.name::
        Your full name to be recorded in any newly created commits.
@@ -574,5 +755,3 @@ receive.denyNonFastForwards::
 transfer.unpackLimit::
        When `fetch.unpackLimit` or `receive.unpackLimit` are
        not set, the value of this variable is used instead.
-
-