Fixes since v1.5.3.3
--------------------
- * Sample 'post-receive-hook' incorrectly sent out push
+ * Change to "git-ls-files" in v1.5.3.3 that was introduced to support
+ partial commit of removal better had a segfaulting bug, which was
+ diagnosed and fixed by Keith and Carl.
+
+ * Performance improvements for rename detection has been backported
+ from the 'master' branch.
+
+ * "git-for-each-ref --format='%(numparent)'" was not working
+ correctly at all, and --format='%(parent)' was not working for
+ merge commits.
+
+ * Sample "post-receive-hook" incorrectly sent out push
notification e-mails marked as "From: " the committer of the
commit that happened to be at the tip of the branch that was
pushed, not from the person who pushed.
- * git-remote did not exit non-zero status upon error.
+ * "git-remote" did not exit non-zero status upon error.
* "git-add -i" did not respond very well to EOF from tty nor
bogus input.
- * "git rebase -i" squash subcommand incorrectly made the
+ * "git-rebase -i" squash subcommand incorrectly made the
author of later commit the author of resulting commit,
instead of taking from the first one in the squashed series.
- * "git stash apply --index" was not documented.
-
+ * "git-stash apply --index" was not documented.
---
-exec >/var/tmp/1
-O=v1.5.3.3-6-g0bdcac5
-echo O=`git describe refs/heads/maint`
-git shortlog --no-merges $O..refs/heads/maint
+ * autoconfiguration learned that "ar" command is found as "gas" on
+ some systems.
branch.<name>.merge to the desired branch, and use the special setting
`.` (a period) for branch.<name>.remote.
+branch.<name>.mergeoptions::
+ Sets default options for merging into branch <name>. The syntax and
+ supported options are equal to that of gitlink:git-merge[1], but
+ option values containing whitespace characters are currently not
+ supported.
+
clean.requireForce::
A boolean to make git-clean do nothing unless given -f or -n. Defaults
to false.
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
merge.tool::
Controls which merge resolution program is used by
- gitlink:git-mergetool[l]. Valid values are: "kdiff3", "tkdiff",
+ gitlink:git-mergetool[1]. Valid values are: "kdiff3", "tkdiff",
"meld", "xxdiff", "emerge", "vimdiff", "gvimdiff", and "opendiff".
merge.verbosity::
--ext-diff::
Allow an external diff helper to be executed. If you set an
- external diff driver with gitlink:gitattributes(5), you need
- to use this option with gitlink:git-log(1) and friends.
+ external diff driver with gitlink:gitattributes[5], you need
+ to use this option with gitlink:git-log[1] and friends.
--no-ext-diff::
Disallow external diff drivers.
It will start out with a head equal to the one given as <start-point>.\r
If no <start-point> is given, the branch will be created with a head\r
equal to that of the currently checked out branch.</p>\r
+<p>Note that this will create the new branch, but it will not switch the\r
+working tree to it; use "git checkout <newbranch>" to switch to the\r
+new branch.</p>\r
<p>When a local branch is started off a remote branch, git can setup the\r
branch so that <a href="git-pull.html">git-pull(1)</a> will appropriately merge from that\r
remote branch. If this behavior is desired, it is possible to make it\r
</p>\r
</dd>\r
<dt>\r
+--track\r
+</dt>\r
+<dd>\r
+<p>\r
+ Set up configuration so that git-pull will automatically\r
+ retrieve data from the remote branch. Use this if you always\r
+ pull from the same remote branch into the new branch, or if you\r
+ don't want to use "git pull <repository> <refspec>" explicitly. Set the\r
+ branch.autosetupmerge configuration variable to true if you\r
+ want git-checkout and git-branch to always behave as if\r
+ <em>--track</em> were given.\r
+</p>\r
+</dd>\r
+<dt>\r
+--no-track\r
+</dt>\r
+<dd>\r
+<p>\r
+ When -b is given and a branch is created off a remote branch,\r
+ set up configuration so that git-pull will not retrieve data\r
+ from the remote branch, ignoring the branch.autosetupmerge\r
+ configuration variable.\r
+</p>\r
+</dd>\r
+<dt>\r
<branchname>\r
</dt>\r
<dd>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Aug-2007 07:23:08 UTC\r
+Last updated 03-Oct-2007 12:03:44 UTC\r
</div>\r
</div>\r
</body>\r
If no <start-point> is given, the branch will be created with a head
equal to that of the currently checked out branch.
+Note that this will create the new branch, but it will not switch the
+working tree to it; use "git checkout <newbranch>" to switch to the
+new branch.
+
When a local branch is started off a remote branch, git can setup the
branch so that gitlink:git-pull[1] will appropriately merge from that
remote branch. If this behavior is desired, it is possible to make it
--no-abbrev::
Display the full sha1s in output listing rather than abbreviating them.
+--track::
+ Set up configuration so that git-pull will automatically
+ retrieve data from the remote branch. Use this if you always
+ pull from the same remote branch into the new branch, or if you
+ don't want to use "git pull <repository> <refspec>" explicitly. Set the
+ branch.autosetupmerge configuration variable to true if you
+ want git-checkout and git-branch to always behave as if
+ '--track' were given.
+
+--no-track::
+ When -b is given and a branch is created off a remote branch,
+ set up configuration so that git-pull will not retrieve data
+ from the remote branch, ignoring the branch.autosetupmerge
+ configuration variable.
+
<branchname>::
The name of the branch to create or delete.
The new branch name must pass all checks defined by
<p>\r
When -b is given and a branch is created off a remote branch,\r
set up configuration so that git-pull will automatically\r
- retrieve data from the remote branch. Set the\r
+ retrieve data from the remote branch. Use this if you always\r
+ pull from the same remote branch into the new branch, or if you\r
+ don't want to use "git pull <repository> <refspec>" explicitly. Set the\r
branch.autosetupmerge configuration variable to true if you\r
want git-checkout and git-branch to always behave as if\r
<em>--track</em> were given.\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 21-Aug-2007 02:20:17 UTC\r
+Last updated 03-Oct-2007 12:03:44 UTC\r
</div>\r
</div>\r
</body>\r
--track::
When -b is given and a branch is created off a remote branch,
set up configuration so that git-pull will automatically
- retrieve data from the remote branch. Set the
+ retrieve data from the remote branch. Use this if you always
+ pull from the same remote branch into the new branch, or if you
+ don't want to use "git pull <repository> <refspec>" explicitly. Set the
branch.autosetupmerge configuration variable to true if you
want git-checkout and git-branch to always behave as if
'--track' were given.
</p>\r
</dd>\r
<dt>\r
+branch.<name>.mergeoptions\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sets default options for merging into branch <name>. The syntax and\r
+ supported options are equal to that of <a href="git-merge.html">git-merge(1)</a>, but\r
+ option values containing whitespace characters are currently not\r
+ supported.\r
+</p>\r
+</dd>\r
+<dt>\r
clean.requireForce\r
</dt>\r
<dd>\r
</p>\r
</dd>\r
<dt>\r
+gc.auto\r
+</dt>\r
+<dd>\r
+<p>\r
+ When there are approximately more than this many loose\r
+ objects in the repository, <tt>git gc --auto</tt> will pack them.\r
+ Some Porcelain commands use this command to perform a\r
+ light-weight garbage collection from time to time. Setting\r
+ this to 0 disables it.\r
+</p>\r
+</dd>\r
+<dt>\r
+gc.autopacklimit\r
+</dt>\r
+<dd>\r
+<p>\r
+ When there are more than this many packs that are not\r
+ marked with <tt>*.keep</tt> file in the repository, <tt>git gc\r
+ --auto</tt> consolidates them into one larger pack. Setting\r
+ this to 0 disables this.\r
+</p>\r
+</dd>\r
+<dt>\r
gc.packrefs\r
</dt>\r
<dd>\r
<dd>\r
<p>\r
Controls which merge resolution program is used by\r
- <a href="git-mergetool.html">git-mergetool(l)</a>. Valid values are: "kdiff3", "tkdiff",\r
+ <a href="git-mergetool.html">git-mergetool(1)</a>. Valid values are: "kdiff3", "tkdiff",\r
"meld", "xxdiff", "emerge", "vimdiff", "gvimdiff", and "opendiff".\r
</p>\r
</dd>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 15-Sep-2007 07:45:30 UTC\r
+Last updated 03-Oct-2007 12:03:44 UTC\r
</div>\r
</div>\r
</body>\r
<dd>\r
<p>\r
Allow an external diff helper to be executed. If you set an\r
- external diff driver with gitlink:gitattributes(5), you need\r
- to use this option with gitlink:git-log(1) and friends.\r
+ external diff driver with <a href="gitattributes.html">gitattributes(5)</a>, you need\r
+ to use this option with <a href="git-log.html">git-log(1)</a> and friends.\r
</p>\r
</dd>\r
<dt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 27-Jul-2007 07:25:20 UTC\r
+Last updated 03-Oct-2007 12:03:44 UTC\r
</div>\r
</div>\r
</body>\r
<dd>\r
<p>\r
Allow an external diff helper to be executed. If you set an\r
- external diff driver with gitlink:gitattributes(5), you need\r
- to use this option with gitlink:git-log(1) and friends.\r
+ external diff driver with <a href="gitattributes.html">gitattributes(5)</a>, you need\r
+ to use this option with <a href="git-log.html">git-log(1)</a> and friends.\r
</p>\r
</dd>\r
<dt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 27-Jul-2007 07:25:22 UTC\r
+Last updated 03-Oct-2007 12:03:46 UTC\r
</div>\r
</div>\r
</body>\r
<dd>\r
<p>\r
Allow an external diff helper to be executed. If you set an\r
- external diff driver with gitlink:gitattributes(5), you need\r
- to use this option with gitlink:git-log(1) and friends.\r
+ external diff driver with <a href="gitattributes.html">gitattributes(5)</a>, you need\r
+ to use this option with <a href="git-log.html">git-log(1)</a> and friends.\r
</p>\r
</dd>\r
<dt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 27-Jul-2007 07:25:23 UTC\r
+Last updated 03-Oct-2007 12:03:47 UTC\r
</div>\r
</div>\r
</body>\r
<dd>\r
<p>\r
Allow an external diff helper to be executed. If you set an\r
- external diff driver with gitlink:gitattributes(5), you need\r
- to use this option with gitlink:git-log(1) and friends.\r
+ external diff driver with <a href="gitattributes.html">gitattributes(5)</a>, you need\r
+ to use this option with <a href="git-log.html">git-log(1)</a> and friends.\r
</p>\r
</dd>\r
<dt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 29-Aug-2007 07:30:53 UTC\r
+Last updated 03-Oct-2007 12:03:48 UTC\r
</div>\r
</div>\r
</body>\r
<p>In any case, a field name that refers to a field inapplicable to\r
the object referred by the ref does not cause an error. It\r
returns an empty string instead.</p>\r
+<p>As a special case for the date-type fields, you may specify a format for\r
+the date by adding one of <tt>:default</tt>, <tt>:relative</tt>, <tt>:short</tt>, <tt>:local</tt>,\r
+<tt>:iso8601</tt> or <tt>:rfc2822</tt> to the end of the fieldname; e.g.\r
+<tt>%(taggerdate:relative)</tt>.</p>\r
</div>\r
<h2>EXAMPLES</h2>\r
<div class="sectionbody">\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 19-Jul-2007 02:09:41 UTC\r
+Last updated 03-Oct-2007 12:03:48 UTC\r
</div>\r
</div>\r
</body>\r
the object referred by the ref does not cause an error. It
returns an empty string instead.
+As a special case for the date-type fields, you may specify a format for
+the date by adding one of `:default`, `:relative`, `:short`, `:local`,
+`:iso8601` or `:rfc2822` to the end of the fieldname; e.g.
+`%(taggerdate:relative)`.
+
EXAMPLES
--------
<dd>\r
<p>\r
Allow an external diff helper to be executed. If you set an\r
- external diff driver with gitlink:gitattributes(5), you need\r
- to use this option with gitlink:git-log(1) and friends.\r
+ external diff driver with <a href="gitattributes.html">gitattributes(5)</a>, you need\r
+ to use this option with <a href="git-log.html">git-log(1)</a> and friends.\r
</p>\r
</dd>\r
<dt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 29-Aug-2007 07:30:57 UTC\r
+Last updated 03-Oct-2007 12:03:48 UTC\r
</div>\r
</div>\r
</body>\r
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git-gc</em> [--prune] [--aggressive]</p>\r
+<p><em>git-gc</em> [--prune] [--aggressive] [--auto]</p>\r
</div>\r
<h2>DESCRIPTION</h2>\r
<div class="sectionbody">\r
few hundred changesets or so.\r
</p>\r
</dd>\r
+<dt>\r
+--auto\r
+</dt>\r
+<dd>\r
+<p>\r
+ With this option, <tt>git gc</tt> checks if there are too many\r
+ loose objects in the repository and runs\r
+ <a href="git-repack.html">git-repack(1)</a> with <tt>-d -l</tt> option to pack them.\r
+ The threshold for loose objects is set with <tt>gc.auto</tt> configuration\r
+ variable, and can be disabled by setting it to 0. Some\r
+ Porcelain commands use this after they perform operation\r
+ that could create many loose objects automatically.\r
+ Additionally, when there are too many packs are present,\r
+ they are consolidated into one larger pack by running\r
+ the <tt>git-repack</tt> command with <tt>-A</tt> option. The\r
+ threshold for number of packs is set with\r
+ <tt>gc.autopacklimit</tt> configuration variable.\r
+</p>\r
+</dd>\r
</dl>\r
</div>\r
<h2>Configuration</h2>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 19-Jul-2007 02:09:42 UTC\r
+Last updated 03-Oct-2007 12:03:49 UTC\r
</div>\r
</div>\r
</body>\r
SYNOPSIS
--------
-'git-gc' [--prune] [--aggressive]
+'git-gc' [--prune] [--aggressive] [--auto]
DESCRIPTION
-----------
persistent, so this option only needs to be used occasionally; every
few hundred changesets or so.
+--auto::
+ With this option, `git gc` checks if there are too many
+ loose objects in the repository and runs
+ gitlink:git-repack[1] with `-d -l` option to pack them.
+ The threshold for loose objects is set with `gc.auto` configuration
+ variable, and can be disabled by setting it to 0. Some
+ Porcelain commands use this after they perform operation
+ that could create many loose objects automatically.
+ Additionally, when there are too many packs are present,
+ they are consolidated into one larger pack by running
+ the `git-repack` command with `-A` option. The
+ threshold for number of packs is set with
+ `gc.autopacklimit` configuration variable.
+
Configuration
-------------
</p>\r
</dd>\r
<dt>\r
+--commit\r
+</dt>\r
+<dd>\r
+<p>\r
+ Perform the merge and commit the result. This option can\r
+ be used to override --no-commit.\r
+</p>\r
+</dd>\r
+<dt>\r
--squash\r
</dt>\r
<dd>\r
</p>\r
</dd>\r
<dt>\r
+--no-squash\r
+</dt>\r
+<dd>\r
+<p>\r
+ Perform the merge and commit the result. This option can\r
+ be used to override --squash.\r
+</p>\r
+</dd>\r
+<dt>\r
+--no-ff\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate a merge commit even if the merge resolved as a\r
+ fast-forward.\r
+</p>\r
+</dd>\r
+<dt>\r
+--ff\r
+</dt>\r
+<dd>\r
+<p>\r
+ Do not generate a merge commit if the merge resolved as\r
+ a fast-forward, only update the branch pointer. This is\r
+ the default behavior of git-merge.\r
+</p>\r
+</dd>\r
+<dt>\r
-s <strategy>, --strategy=<strategy>\r
</dt>\r
<dd>\r
Can be overridden by <em>GIT_MERGE_VERBOSITY</em> environment variable.\r
</p>\r
</dd>\r
+<dt>\r
+branch.<name>.mergeoptions\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sets default options for merging into branch <name>. The syntax and\r
+ supported options are equal to that of git-merge, but option values\r
+ containing whitespace characters are currently not supported.\r
+</p>\r
+</dd>\r
</dl>\r
</div>\r
<h2>HOW MERGE WORKS</h2>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 30-Sep-2007 00:49:43 UTC\r
+Last updated 03-Oct-2007 12:03:50 UTC\r
</div>\r
</div>\r
</body>\r
above outputs debugging information. The default is level 2.
Can be overridden by 'GIT_MERGE_VERBOSITY' environment variable.
+branch.<name>.mergeoptions::
+ Sets default options for merging into branch <name>. The syntax and
+ supported options are equal to that of git-merge, but option values
+ containing whitespace characters are currently not supported.
HOW MERGE WORKS
---------------
</p>\r
</dd>\r
<dt>\r
+--commit\r
+</dt>\r
+<dd>\r
+<p>\r
+ Perform the merge and commit the result. This option can\r
+ be used to override --no-commit.\r
+</p>\r
+</dd>\r
+<dt>\r
--squash\r
</dt>\r
<dd>\r
</p>\r
</dd>\r
<dt>\r
+--no-squash\r
+</dt>\r
+<dd>\r
+<p>\r
+ Perform the merge and commit the result. This option can\r
+ be used to override --squash.\r
+</p>\r
+</dd>\r
+<dt>\r
+--no-ff\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate a merge commit even if the merge resolved as a\r
+ fast-forward.\r
+</p>\r
+</dd>\r
+<dt>\r
+--ff\r
+</dt>\r
+<dd>\r
+<p>\r
+ Do not generate a merge commit if the merge resolved as\r
+ a fast-forward, only update the branch pointer. This is\r
+ the default behavior of git-merge.\r
+</p>\r
+</dd>\r
+<dt>\r
-s <strategy>, --strategy=<strategy>\r
</dt>\r
<dd>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 01-Sep-2007 11:16:25 UTC\r
+Last updated 03-Oct-2007 12:03:50 UTC\r
</div>\r
</div>\r
</body>\r
<p>This hook is meant primarily for notification, and cannot affect\r
the outcome of <tt>git-commit</tt>.</p>\r
</div>\r
+<h2>post-checkout</h2>\r
+<div class="sectionbody">\r
+<p>This hook is invoked when a <tt>git-checkout</tt> is run after having updated the\r
+worktree. The hook is given three parameters: the ref of the previous HEAD,\r
+the ref of the new HEAD (which may or may not have changed), and a flag\r
+indicating whether the checkout was a branch checkout (changing branches,\r
+flag=1) or a file checkout (retrieving a file from the index, flag=0).\r
+This hook cannot affect the outcome of <tt>git-checkout</tt>.</p>\r
+<p>This hook can be used to perform repository validity checks, auto-display\r
+differences from the previous HEAD if different, or set working dir metadata\r
+properties.</p>\r
+</div>\r
<h2>post-merge</h2>\r
<div class="sectionbody">\r
<p>This hook is invoked by <tt>git-merge</tt>, which happens when a <tt>git pull</tt>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 24-Sep-2007 07:36:59 UTC\r
+Last updated 03-Oct-2007 12:03:51 UTC\r
</div>\r
</div>\r
</body>\r
This hook is meant primarily for notification, and cannot affect
the outcome of `git-commit`.
+post-checkout
+-----------
+
+This hook is invoked when a `git-checkout` is run after having updated the
+worktree. The hook is given three parameters: the ref of the previous HEAD,
+the ref of the new HEAD (which may or may not have changed), and a flag
+indicating whether the checkout was a branch checkout (changing branches,
+flag=1) or a file checkout (retrieving a file from the index, flag=0).
+This hook cannot affect the outcome of `git-checkout`.
+
+This hook can be used to perform repository validity checks, auto-display
+differences from the previous HEAD if different, or set working dir metadata
+properties.
+
post-merge
-----------
not autocommit, to give the user a chance to inspect and
further tweak the merge result before committing.
+--commit::
+ Perform the merge and commit the result. This option can
+ be used to override --no-commit.
+
--squash::
Produce the working tree and index state as if a real
merge happened, but do not actually make a commit or
top of the current branch whose effect is the same as
merging another branch (or more in case of an octopus).
+--no-squash::
+ Perform the merge and commit the result. This option can
+ be used to override --squash.
+
+--no-ff::
+ Generate a merge commit even if the merge resolved as a
+ fast-forward.
+
+--ff::
+ Do not generate a merge commit if the merge resolved as
+ a fast-forward, only update the branch pointer. This is
+ the default behavior of git-merge.
+
-s <strategy>, \--strategy=<strategy>::
Use the given merge strategy; can be supplied more than
once to specify them in the order they should be tried.