* "git revert" did not properly fail when attempting to run with a
dirty index.
-Also included are a handful documentation updates.
+ * "git merge --no-commit --no-ff <other>" incorrectly made commits.
+
+ * "git merge --squash --no-ff <other>", which is a nonsense combination
+ of options, was not rejected.
+
+ * "git ls-remote" and "git remote show" against an empty repository
+ failed, instead of just giving an empty result (regression).
+
+ * "git fast-import" did not handle a renamed path whose name needs to be
+ quoted, due to a bug in unquote_c_style() function.
+
+ * "git cvsexportcommit" was confused when multiple files with the same
+ basename needed to be pushed out in the same commit.
+
+ * "git daemon" did not send early errors to syslog.
----
-exec >/var/tmp/1
-echo O=$(git describe maint)
-O=v1.5.4.3-32-g0f2d447
-git shortlog --no-merges $O..maint
+ * "git log --merge" did not work well with --left-right option.
+
+ * "git svn" promprted for client cert password every time it accessed the
+ server.
+
+ * The reset command in "git fast-import" data stream was documented to
+ end with an optional LF, but it actually required one.
+
+ * "git svn dcommit/rebase" did not honor --rewrite-root option.
+
+Also included are a handful documentation updates.
All of the fixes in v1.5.4 maintenance series are included in
this release, unless otherwise noted.
- * "git-daemon" did not send early errors to syslog.
-
* "git-http-push" did not allow deletion of remote ref with the usual
"push <remote> :<branch>" syntax.
- * "git-log --merge" did not well work with --left-right option.
-
* "git-rebase --abort" did not go back to the right location if
"git-reset" was run during the "git-rebase" session.
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
<div class="verseblock">\r
-<div class="content"><em>git-am</em> [--signoff] [--dotest=<dir>] [--keep] [--utf8 | --no-utf8]\r
+<div class="content"><em>git-am</em> [--signoff] [--keep] [--utf8 | --no-utf8]\r
[--3way] [--interactive] [--binary]\r
[--whitespace=<option>] [-C<n>] [-p<n>]\r
<mbox>|<Maildir>…\r
</p>\r
</dd>\r
<dt>\r
--d=<dir>, --dotest=<dir>\r
-</dt>\r
-<dd>\r
-<p>\r
- Instead of <tt>.dotest</tt> directory, use <dir> as a working\r
- area to store extracted patches.\r
-</p>\r
-</dd>\r
-<dt>\r
-k, --keep\r
</dt>\r
<dd>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 26-Feb-2008 09:16:45 UTC\r
+Last updated 09-Mar-2008 10:38:32 UTC\r
</div>\r
</div>\r
</body>\r
SYNOPSIS
--------
[verse]
-'git-am' [--signoff] [--dotest=<dir>] [--keep] [--utf8 | --no-utf8]
+'git-am' [--signoff] [--keep] [--utf8 | --no-utf8]
[--3way] [--interactive] [--binary]
[--whitespace=<option>] [-C<n>] [-p<n>]
<mbox>|<Maildir>...
Add `Signed-off-by:` line to the commit message, using
the committer identity of yourself.
--d=<dir>, --dotest=<dir>::
- Instead of `.dotest` directory, use <dir> as a working
- area to store extracted patches.
-
-k, --keep::
Pass `-k` flag to `git-mailinfo` (see linkgit:git-mailinfo[1]).
</div>\r
<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
-<p><em>git-fetch-pack</em> [--all] [--quiet|-q] [--keep|-k] [--thin] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [-v] [<host>:]<directory> [<refs>…]</p>\r
+<p><em>git-fetch-pack</em> [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [-v] [<host>:]<directory> [<refs>…]</p>\r
</div>\r
<h2>DESCRIPTION</h2>\r
<div class="sectionbody">\r
</p>\r
</dd>\r
<dt>\r
+--include-tag\r
+</dt>\r
+<dd>\r
+<p>\r
+ If the remote side supports it, annotated tags objects will\r
+ be downloaded on the same connection as the other objects if\r
+ the object the tag references is downloaded. The caller must\r
+ otherwise determine the tags this option made available.\r
+</p>\r
+</dd>\r
+<dt>\r
--upload-pack=<git-upload-pack>\r
</dt>\r
<dd>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 07-Jan-2008 07:50:18 UTC\r
+Last updated 09-Mar-2008 10:38:32 UTC\r
</div>\r
</div>\r
</body>\r
SYNOPSIS
--------
-'git-fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [-v] [<host>:]<directory> [<refs>...]
+'git-fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [-v] [<host>:]<directory> [<refs>...]
DESCRIPTION
-----------
Spend extra cycles to minimize the number of objects to be sent.
Use it on slower connection.
+\--include-tag::
+ If the remote side supports it, annotated tags objects will
+ be downloaded on the same connection as the other objects if
+ the object the tag references is downloaded. The caller must
+ otherwise determine the tags this option made available.
+
\--upload-pack=<git-upload-pack>::
Use this to specify the path to 'git-upload-pack' on the
remote side, if is not found on your $PATH.
</div>\r
<h2>DESCRIPTION</h2>\r
<div class="sectionbody">\r
-<p>Use <em>git mergetool</em> to run one of several merge utilities to resolve\r
+<p>Use <tt>git mergetool</tt> to run one of several merge utilities to resolve\r
merge conflicts. It is typically run after <a href="git-merge.html">git-merge(1)</a>.</p>\r
<p>If one or more <file> parameters are given, the merge tool program will\r
be run to resolve differences on each file. If no <file> names are\r
-specified, <em>git mergetool</em> will run the merge tool program on every file\r
+specified, <tt>git mergetool</tt> will run the merge tool program on every file\r
with merge conflicts.</p>\r
</div>\r
<h2>OPTIONS</h2>\r
Valid merge tools are:\r
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff\r
</p>\r
-<p>If a merge resolution program is not specified, <em>git mergetool</em>\r
-will use the configuration variable merge.tool. If the\r
-configuration variable merge.tool is not set, <em>git mergetool</em>\r
+<p>If a merge resolution program is not specified, <tt>git mergetool</tt>\r
+will use the configuration variable <tt>merge.tool</tt>. If the\r
+configuration variable <tt>merge.tool</tt> is not set, <tt>git mergetool</tt>\r
will pick a suitable default.</p>\r
<p>You can explicitly provide a full path to the tool by setting the\r
-configuration variable mergetool.<tool>.path. For example, you\r
+configuration variable <tt>mergetool.<tool>.path</tt>. For example, you\r
can configure the absolute path to kdiff3 by setting\r
-mergetool.kdiff3.path. Otherwise, <em>git mergetool</em> assumes the tool\r
-is available in PATH.</p>\r
+<tt>mergetool.kdiff3.path</tt>. Otherwise, <tt>git mergetool</tt> assumes the\r
+tool is available in PATH.</p>\r
+<p>Instead of running one of the known merge tool programs\r
+<tt>git mergetool</tt> can be customized to run an alternative program\r
+by specifying the command line to invoke in a configration\r
+variable <tt>mergetool.<tool>.cmd</tt>.</p>\r
+<p>When <tt>git mergetool</tt> is invoked with this tool (either through the\r
+<tt>-t</tt> or <tt>--tool</tt> option or the <tt>merge.tool</tt> configuration\r
+variable) the configured command line will be invoked with <tt>$BASE</tt>\r
+set to the name of a temporary file containing the common base for\r
+the merge, if available; <tt>$LOCAL</tt> set to the name of a temporary\r
+file containing the contents of the file on the current branch;\r
+<tt>$REMOTE</tt> set to the name of a temporary file containing the\r
+contents of the file to be merged, and <tt>$MERGED</tt> set to the name\r
+of the file to which the merge tool should write the result of the\r
+merge resolution.</p>\r
+<p>If the custom merge tool correctly indicates the success of a\r
+merge resolution with its exit code then the configuration\r
+variable <tt>mergetool.<tool>.trustExitCode</tt> can be set to <tt>true</tt>.\r
+Otherwise, <tt>git mergetool</tt> will prompt the user to indicate the\r
+success of the resolution after the custom tool has exited.</p>\r
</dd>\r
</dl>\r
</div>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 07-Jan-2008 07:50:32 UTC\r
+Last updated 09-Mar-2008 10:38:33 UTC\r
</div>\r
</div>\r
</body>\r
DESCRIPTION
-----------
-Use 'git mergetool' to run one of several merge utilities to resolve
+Use `git mergetool` to run one of several merge utilities to resolve
merge conflicts. It is typically run after linkgit:git-merge[1].
If one or more <file> parameters are given, the merge tool program will
be run to resolve differences on each file. If no <file> names are
-specified, 'git mergetool' will run the merge tool program on every file
+specified, `git mergetool` will run the merge tool program on every file
with merge conflicts.
OPTIONS
Valid merge tools are:
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff
+
-If a merge resolution program is not specified, 'git mergetool'
-will use the configuration variable merge.tool. If the
-configuration variable merge.tool is not set, 'git mergetool'
+If a merge resolution program is not specified, `git mergetool`
+will use the configuration variable `merge.tool`. If the
+configuration variable `merge.tool` is not set, `git mergetool`
will pick a suitable default.
+
You can explicitly provide a full path to the tool by setting the
-configuration variable mergetool.<tool>.path. For example, you
+configuration variable `mergetool.<tool>.path`. For example, you
can configure the absolute path to kdiff3 by setting
-mergetool.kdiff3.path. Otherwise, 'git mergetool' assumes the tool
-is available in PATH.
+`mergetool.kdiff3.path`. Otherwise, `git mergetool` assumes the
+tool is available in PATH.
++
+Instead of running one of the known merge tool programs
+`git mergetool` can be customized to run an alternative program
+by specifying the command line to invoke in a configration
+variable `mergetool.<tool>.cmd`.
++
+When `git mergetool` is invoked with this tool (either through the
+`-t` or `--tool` option or the `merge.tool` configuration
+variable) the configured command line will be invoked with `$BASE`
+set to the name of a temporary file containing the common base for
+the merge, if available; `$LOCAL` set to the name of a temporary
+file containing the contents of the file on the current branch;
+`$REMOTE` set to the name of a temporary file containing the
+contents of the file to be merged, and `$MERGED` set to the name
+of the file to which the merge tool should write the result of the
+merge resolution.
++
+If the custom merge tool correctly indicates the success of a
+merge resolution with its exit code then the configuration
+variable `mergetool.<tool>.trustExitCode` can be set to `true`.
+Otherwise, `git mergetool` will prompt the user to indicate the
+success of the resolution after the custom tool has exited.
Author
------
</p>\r
</dd>\r
<dt>\r
+--include-tag\r
+</dt>\r
+<dd>\r
+<p>\r
+ Include unasked-for annotated tags if the object they\r
+ reference was included in the resulting packfile. This\r
+ can be useful to send new tags to native git clients.\r
+</p>\r
+</dd>\r
+<dt>\r
--window=[N], --depth=[N]\r
</dt>\r
<dd>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 28-Feb-2008 00:25:42 UTC\r
+Last updated 09-Mar-2008 10:38:33 UTC\r
</div>\r
</div>\r
</body>\r
as if all refs under `$GIT_DIR/refs` are specified to be
included.
+--include-tag::
+ Include unasked-for annotated tags if the object they
+ reference was included in the resulting packfile. This
+ can be useful to send new tags to native git clients.
+
--window=[N], --depth=[N]::
These two options affect how the objects contained in
the pack are stored using delta compression. The
<p>Each line of options has this format:</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt><opt_spec><arg_spec>? SP+ help LF</tt></pre>\r
+<pre><tt><opt_spec><flags>* SP+ help LF</tt></pre>\r
</div></div>\r
<dl>\r
<dt>\r
</p>\r
</dd>\r
<dt>\r
-<tt><arg_spec></tt>\r
+<tt><flags></tt>\r
</dt>\r
<dd>\r
<p>\r
- an <tt><arg_spec></tt> tells the option parser if the option has an argument\r
- (<tt>=</tt>), an optional one (<tt>?</tt> though its use is discouraged) or none\r
- (no <tt><arg_spec></tt> in that case).\r
+ <tt><flags></tt> are of <tt>*</tt>, <tt>=</tt>, <tt>?</tt> or <tt>!</tt>.\r
</p>\r
+<ul>\r
+<li>\r
+<p>\r
+Use <tt>=</tt> if the option takes an argument.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Use <tt>?</tt> to mean that the option is optional (though its use is discouraged).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Use <tt>*</tt> to mean that this option should not be listed in the usage\r
+ generated for the <tt>-h</tt> argument. It's shown for <tt>--help-all</tt> as\r
+ documented in <a href="gitcli.html">gitcli(5)</a>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Use <tt>!</tt> to not make the corresponding negated long option available.\r
+</p>\r
+</li>\r
+</ul>\r
</dd>\r
</dl>\r
<p>The remainder of the line, after stripping the spaces, is used\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 01-Feb-2008 10:52:24 UTC\r
+Last updated 09-Mar-2008 10:38:33 UTC\r
</div>\r
</div>\r
</body>\r
Each line of options has this format:
------------
-<opt_spec><arg_spec>? SP+ help LF
+<opt_spec><flags>* SP+ help LF
------------
`<opt_spec>`::
is necessary. `h,help`, `dry-run` and `f` are all three correct
`<opt_spec>`.
-`<arg_spec>`::
- an `<arg_spec>` tells the option parser if the option has an argument
- (`=`), an optional one (`?` though its use is discouraged) or none
- (no `<arg_spec>` in that case).
+`<flags>`::
+ `<flags>` are of `*`, `=`, `?` or `!`.
+ * Use `=` if the option takes an argument.
+
+ * Use `?` to mean that the option is optional (though its use is discouraged).
+
+ * Use `*` to mean that this option should not be listed in the usage
+ generated for the `-h` argument. It's shown for `--help-all` as
+ documented in linkgit:gitcli[5].
+
+ * Use `!` to not make the corresponding negated long option available.
The remainder of the line, after stripping the spaces, is used
as the help associated to the option.
<dd>\r
<p>\r
Add the given repository as a submodule at the given path\r
- to the changeset to be committed next. In particular, the\r
- repository is cloned at the specified path, added to the\r
+ to the changeset to be committed next. If path is a valid\r
+ repository within the project, it is added as is. Otherwise,\r
+ repository is cloned at the specified path. path is added to the\r
changeset and registered in .gitmodules. If no path is\r
specified, the path is deduced from the repository specification.\r
If the repository url begins with ./ or ../, it is stored as\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 22-Jan-2008 08:38:57 UTC\r
+Last updated 09-Mar-2008 10:38:33 UTC\r
</div>\r
</div>\r
</body>\r
--------
add::
Add the given repository as a submodule at the given path
- to the changeset to be committed next. In particular, the
- repository is cloned at the specified path, added to the
+ to the changeset to be committed next. If path is a valid
+ repository within the project, it is added as is. Otherwise,
+ repository is cloned at the specified path. path is added to the
changeset and registered in .gitmodules. If no path is
specified, the path is deduced from the repository specification.
If the repository url begins with ./ or ../, it is stored as
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 23-Feb-2008 21:03:25 UTC\r
+Last updated 09-Mar-2008 10:38:34 UTC\r
</div>\r
</div>\r
</body>\r
branch of the `git.git` repository.
Documentation for older releases are available here:
-* link:v1.5.4.3/git.html[documentation for release 1.5.4.3]
+* link:v1.5.4.4/git.html[documentation for release 1.5.4.4]
* release notes for
+ link:RelNotes-1.5.4.4.txt[1.5.4.4],
link:RelNotes-1.5.4.3.txt[1.5.4.3],
link:RelNotes-1.5.4.2.txt[1.5.4.2],
link:RelNotes-1.5.4.1.txt[1.5.4.1],