<em>git-repo-config</em> [type] --get name [value_regex]\r
<em>git-repo-config</em> [type] --get-all name [value_regex]\r
<em>git-repo-config</em> [type] --unset name [value_regex]\r
-<em>git-repo-config</em> [type] --unset-all name [value_regex]</div></div>\r
+<em>git-repo-config</em> [type] --unset-all name [value_regex]\r
+<em>git-repo-config</em> -l | --list</div></div>\r
</div>\r
<h2>DESCRIPTION</h2>\r
<div class="sectionbody">\r
<p>You can query/set/replace/unset options with this command. The name is\r
actually the section and the key separated by a dot, and the value will be\r
escaped.</p>\r
-<p>If you want to set/unset an option which can occur on multiple lines, you\r
-should provide a POSIX regex for the value. If you want to handle the lines\r
-<strong>not</strong> matching the regex, just prepend a single exclamation mark in front\r
-(see EXAMPLES).</p>\r
+<p>If you want to set/unset an option which can occur on multiple\r
+lines, a POSIX regexp <tt>value_regex</tt> needs to be given. Only the\r
+existing values that match the regexp are updated or unset. If\r
+you want to handle the lines that do <strong>not</strong> match the regex, just\r
+prepend a single exclamation mark in front (see EXAMPLES).</p>\r
<p>The type specifier can be either <em>--int</em> or <em>--bool</em>, which will make\r
<em>git-repo-config</em> ensure that the variable(s) are of the given type and\r
convert the value to the canonical form (simple decimal number for int,\r
a "true" or "false" string for bool). If no type specifier is passed,\r
no checks or transformations are performed on the value.</p>\r
-<p>This command will fail if</p>\r
+<p>This command will fail if:</p>\r
<ol>\r
<li>\r
<p>\r
-.git/config is invalid,\r
+The .git/config file is invalid,\r
</p>\r
</li>\r
<li>\r
<p>\r
-.git/config can not be written to,\r
+Can not write to .git/config,\r
</p>\r
</li>\r
<li>\r
</dt>\r
<dd>\r
<p>\r
- Default behaviour is to replace at most one line. This replaces\r
- all lines matching the key (and optionally the value_regex)\r
+ Default behavior is to replace at most one line. This replaces\r
+ all lines matching the key (and optionally the value_regex).\r
</p>\r
</dd>\r
<dt>\r
</p>\r
</dd>\r
<dt>\r
+--get-regexp\r
+</dt>\r
+<dd>\r
+<p>\r
+ Like --get-all, but interprets the name as a regular expression.\r
+</p>\r
+</dd>\r
+<dt>\r
--unset\r
</dt>\r
<dd>\r
Remove all matching lines from .git/config.\r
</p>\r
</dd>\r
+<dt>\r
+-l, --list\r
+</dt>\r
+<dd>\r
+<p>\r
+ List all variables set in .git/config.\r
+</p>\r
+</dd>\r
</dl>\r
</div>\r
<h2>EXAMPLE</h2>\r
<div class="literalblock">\r
<div class="content">\r
<pre><tt>; Proxy settings\r
-[proxy]\r
- command="ssh" for "ssh://kernel.org/"\r
- command="proxy-command" for kernel.org\r
- command="myprotocol-command" for "my://"\r
- command=default-proxy ; for all the rest</tt></pre>\r
+[core]\r
+ gitproxy="ssh" for "ssh://kernel.org/"\r
+ gitproxy="proxy-command" for kernel.org\r
+ gitproxy="myprotocol-command" for "my://"\r
+ gitproxy=default-proxy ; for all the rest</tt></pre>\r
</div></div>\r
<p>you can set the filemode to true with</p>\r
<div class="listingblock">\r
to "ssh".</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config proxy.command '"ssh" for kernel.org' 'for kernel.org$'</tt></pre>\r
+<pre><tt>% git repo-config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</tt></pre>\r
</div></div>\r
<p>This makes sure that only the key/value pair for kernel.org is replaced.</p>\r
<p>To delete the entry for renames, do</p>\r
<div class="content">\r
<pre><tt>% git repo-config --unset diff.renames</tt></pre>\r
</div></div>\r
-<p>If you want to delete an entry for a multivar (like proxy.command above),\r
+<p>If you want to delete an entry for a multivar (like core.gitproxy above),\r
you have to provide a regex matching the value of exactly one line.</p>\r
<p>To query the value for a given key, do</p>\r
<div class="listingblock">\r
<p>or, to query a multivar:</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config --get proxy.command "for kernel.org$"</tt></pre>\r
+<pre><tt>% git repo-config --get core.gitproxy "for kernel.org$"</tt></pre>\r
</div></div>\r
<p>If you want to know all the values for a multivar, do:</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config --get-all proxy.command</tt></pre>\r
+<pre><tt>% git repo-config --get-all core.gitproxy</tt></pre>\r
</div></div>\r
-<p>If you like to live dangerous, you can replace <strong>all</strong> proxy.commands by a\r
+<p>If you like to live dangerous, you can replace <strong>all</strong> core.gitproxy by a\r
new one with</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config --replace-all proxy.command ssh</tt></pre>\r
+<pre><tt>% git repo-config --replace-all core.gitproxy ssh</tt></pre>\r
</div></div>\r
<p>However, if you really only want to replace the line for the default proxy,\r
i.e. the one without a "for …" postfix, do something like this:</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config proxy.command ssh '! for '</tt></pre>\r
+<pre><tt>% git repo-config core.gitproxy ssh '! for '</tt></pre>\r
</div></div>\r
<p>To actually match only values with an exclamation mark, you have to</p>\r
<div class="listingblock">\r
<pre><tt>% git repo-config section.key value '[!]'</tt></pre>\r
</div></div>\r
</div>\r
+<h2>CONFIGURATION FILE</h2>\r
+<div class="sectionbody">\r
+<p>The git configuration file contains a number of variables that affect\r
+the git command's behavior. They can be used by both the git plumbing\r
+and the porcelains. The variables are divided into sections, where\r
+in the fully qualified variable name the variable itself is the last\r
+dot-separated segment and the section name is everything before the last\r
+dot. The variable names are case-insensitive and only alphanumeric\r
+characters are allowed. Some variables may appear multiple times.</p>\r
+<p>The syntax is fairly flexible and permissive; whitespaces are mostly\r
+ignored. The <em>#</em> and <em>;</em> characters begin comments to the end of line,\r
+blank lines are ignored, lines containing strings enclosed in square\r
+brackets start sections and all the other lines are recognized\r
+as setting variables, in the form <em>name = value</em>. If there is no equal\r
+sign on the line, the entire line is taken as <em>name</em> and the variable\r
+is recognized as boolean "true". String values may be entirely or partially\r
+enclosed in double quotes; some variables may require special value format.</p>\r
+<h3>Example</h3>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt># Core variables\r
+[core]\r
+ ; Don't trust file modes\r
+ filemode = false</tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt># Our diff algorithm\r
+[diff]\r
+ external = "/usr/local/bin/gnu-diff -u"\r
+ renames = true</tt></pre>\r
+</div></div>\r
+<h3>Variables</h3>\r
+<p>Note that this list is non-comprehensive and not necessarily complete.\r
+For command-specific variables, you will find a more detailed description\r
+in the appropriate manual page. You will find a description of non-core\r
+porcelain configuration variables in the respective porcelain documentation.</p>\r
+<dl>\r
+<dt>\r
+core.fileMode\r
+</dt>\r
+<dd>\r
+<p>\r
+ If false, the executable bit differences between the index and\r
+ the working copy are ignored; useful on broken filesystems like FAT.\r
+ See <a href="git-update-index.html">git-update-index(1)</a>. True by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.gitProxy\r
+</dt>\r
+<dd>\r
+<p>\r
+ A "proxy command" to execute (as <em>command host port</em>) instead\r
+ of establishing direct connection to the remote server when\r
+ using the git protocol for fetching. If the variable value is\r
+ in the "COMMAND for DOMAIN" format, the command is applied only\r
+ on hostnames ending with the specified domain string. This variable\r
+ may be set multiple times and is matched in the given order;\r
+ the first match wins.\r
+</p>\r
+<p>Can be overridden by the <em>GIT_PROXY_COMMAND</em> environment variable\r
+(which always applies universally, without the special "for"\r
+handling).</p>\r
+</dd>\r
+<dt>\r
+core.ignoreStat\r
+</dt>\r
+<dd>\r
+<p>\r
+ The working copy files are assumed to stay unchanged until you\r
+ mark them otherwise manually - Git will not detect the file changes\r
+ by lstat() calls. This is useful on systems where those are very\r
+ slow, such as Microsoft Windows. See <a href="git-update-index.html">git-update-index(1)</a>.\r
+ False by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.preferSymlinkRefs\r
+</dt>\r
+<dd>\r
+<p>\r
+ Instead of the default "symref" format for HEAD\r
+ and other symbolic reference files, use symbolic links.\r
+ This is sometimes needed to work with old scripts that\r
+ expect HEAD to be a symbolic link.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.logAllRefUpdates\r
+</dt>\r
+<dd>\r
+<p>\r
+ If true, <tt>git-update-ref</tt> will append a line to\r
+ "$GIT_DIR/logs/<ref>" listing the new SHA1 and the date/time\r
+ of the update. If the file does not exist it will be\r
+ created automatically. This information can be used to\r
+ determine what commit was the tip of a branch "2 days ago".\r
+ This value is false by default (no logging).\r
+</p>\r
+</dd>\r
+<dt>\r
+core.repositoryFormatVersion\r
+</dt>\r
+<dd>\r
+<p>\r
+ Internal variable identifying the repository format and layout\r
+ version.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.sharedRepository\r
+</dt>\r
+<dd>\r
+<p>\r
+ If true, the repository is made shareable between several users\r
+ in a group (making sure all the files and objects are group-writable).\r
+ See <a href="git-init-db.html">git-init-db(1)</a>. False by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.warnAmbiguousRefs\r
+</dt>\r
+<dd>\r
+<p>\r
+ If true, git will warn you if the ref name you passed it is ambiguous\r
+ and might match multiple refs in the .git/refs/ tree. True by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+alias.*\r
+</dt>\r
+<dd>\r
+<p>\r
+ Command aliases for the <a href="git.html">git(1)</a> command wrapper - e.g.\r
+ after defining "alias.last = cat-file commit HEAD", the invocation\r
+ "git last" is equivalent to "git cat-file commit HEAD". To avoid\r
+ confusion and troubles with script usage, aliases that\r
+ hide existing git commands are ignored. Arguments are split by\r
+ spaces, the usual shell quoting and escaping is supported.\r
+ quote pair and a backslash can be used to quote them.\r
+</p>\r
+</dd>\r
+<dt>\r
+apply.whitespace\r
+</dt>\r
+<dd>\r
+<p>\r
+ Tells <tt>git-apply</tt> how to handle whitespaces, in the same way\r
+ as the <em>--whitespace</em> option. See <a href="git-apply.html">git-apply(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+diff.renameLimit\r
+</dt>\r
+<dd>\r
+<p>\r
+ The number of files to consider when performing the copy/rename\r
+ detection; equivalent to the git diff option <em>-l</em>.\r
+</p>\r
+</dd>\r
+<dt>\r
+format.headers\r
+</dt>\r
+<dd>\r
+<p>\r
+ Additional email headers to include in a patch to be submitted\r
+ by mail. See <a href="git-format-patch.html">git-format-patch(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+gitcvs.enabled\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether the cvs pserver interface is enabled for this repository.\r
+ See <a href="git-cvsserver.html">git-cvsserver(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+gitcvs.logfile\r
+</dt>\r
+<dd>\r
+<p>\r
+ Path to a log file where the cvs pserver interface well… logs\r
+ various stuff. See <a href="git-cvsserver.html">git-cvsserver(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslVerify\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether to verify the SSL certificate when fetching or pushing\r
+ over HTTPS. Can be overridden by the <em>GIT_SSL_NO_VERIFY</em> environment\r
+ variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslCert\r
+</dt>\r
+<dd>\r
+<p>\r
+ File containing the SSL certificate when fetching or pushing\r
+ over HTTPS. Can be overridden by the <em>GIT_SSL_CERT</em> environment\r
+ variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslKey\r
+</dt>\r
+<dd>\r
+<p>\r
+ File containing the SSL private key when fetching or pushing\r
+ over HTTPS. Can be overridden by the <em>GIT_SSL_KEY</em> environment\r
+ variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslCAInfo\r
+</dt>\r
+<dd>\r
+<p>\r
+ File containing the certificates to verify the peer with when\r
+ fetching or pushing over HTTPS. Can be overridden by the\r
+ <em>GIT_SSL_CAINFO</em> environment variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslCAPath\r
+</dt>\r
+<dd>\r
+<p>\r
+ Path containing files with the CA certificates to verify the peer\r
+ with when fetching or pushing over HTTPS. Can be overridden\r
+ by the <em>GIT_SSL_CAPATH</em> environment variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.maxRequests\r
+</dt>\r
+<dd>\r
+<p>\r
+ How many HTTP requests to launch in parallel. Can be overridden\r
+ by the <em>GIT_HTTP_MAX_REQUESTS</em> environment variable. Default is 5.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.lowSpeedLimit, http.lowSpeedTime\r
+</dt>\r
+<dd>\r
+<p>\r
+ If the HTTP transfer speed is less than <em>http.lowSpeedLimit</em>\r
+ for longer than <em>http.lowSpeedTime</em> seconds, the transfer is aborted.\r
+ Can be overridden by the <em>GIT_HTTP_LOW_SPEED_LIMIT</em> and\r
+ <em>GIT_HTTP_LOW_SPEED_TIME</em> environment variables.\r
+</p>\r
+</dd>\r
+<dt>\r
+i18n.commitEncoding\r
+</dt>\r
+<dd>\r
+<p>\r
+ Character encoding the commit messages are stored in; git itself\r
+ does not care per se, but this information is necessary e.g. when\r
+ importing commits from emails or in the gitk graphical history\r
+ browser (and possibly at other places in the future or in other\r
+ porcelains). See e.g. <a href="git-mailinfo.html">git-mailinfo(1)</a>. Defaults to <em>utf-8</em>.\r
+</p>\r
+</dd>\r
+<dt>\r
+merge.summary\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether to include summaries of merged commits in newly created\r
+ merge commit messages. False by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+pull.octopus\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default merge strategy to use when pulling multiple branches\r
+ at once.\r
+</p>\r
+</dd>\r
+<dt>\r
+pull.twohead\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default merge strategy to use when pulling a single branch.\r
+</p>\r
+</dd>\r
+<dt>\r
+show.difftree\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used\r
+ for <a href="git-show.html">git-show(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+showbranch.default\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default set of branches for <a href="git-show-branch.html">git-show-branch(1)</a>.\r
+ See <a href="git-show-branch.html">git-show-branch(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+user.email\r
+</dt>\r
+<dd>\r
+<p>\r
+ Your email address to be recorded in any newly created commits.\r
+ Can be overridden by the <em>GIT_AUTHOR_EMAIL</em> and <em>GIT_COMMITTER_EMAIL</em>\r
+ environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+user.name\r
+</dt>\r
+<dd>\r
+<p>\r
+ Your full name to be recorded in any newly created commits.\r
+ Can be overridden by the <em>GIT_AUTHOR_NAME</em> and <em>GIT_COMMITTER_NAME</em>\r
+ environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+whatchanged.difftree\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used\r
+ for <a href="git-whatchanged.html">git-whatchanged(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+imap\r
+</dt>\r
+<dd>\r
+<p>\r
+ The configuration variables in the <em>imap</em> section are described\r
+ in <a href="git-imap-send.html">git-imap-send(1)</a>.\r
+</p>\r
+</dd>\r
+</dl>\r
+</div>\r
<h2>Author</h2>\r
<div class="sectionbody">\r
<p>Written by Johannes Schindelin <Johannes.Schindelin@gmx.de></p>\r
</div>\r
<h2>Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Johannes Schindelin.</p>\r
+<p>Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>.</p>\r
</div>\r
<h2>GIT</h2>\r
<div class="sectionbody">\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 10-Mar-2006 00:31:33 UTC\r
+Last updated 08-Jun-2006 00:48:14 UTC\r
</div>\r
</div>\r
</body>\r