Fixes since v1.5.3.5
--------------------
- * git-cvsexportcommit handles root commits better;
+ * git-cvsexportcommit handles root commits better.
* git-svn dcommit used to clobber when sending a series of
- patches;
+ patches.
* git-svn dcommit failed after attempting to rebase when
started with a dirty index; now it stops upfront.
* git-grep sometimes refused to work when your index was
- unmerged;
+ unmerged.
+
+ * "git-grep -A1 -B2" acted as if it was told to run "git -A1 -B21".
* git-hash-object did not honor configuration variables, such as
core.compression.
of deflateBound() has been added.
* Quite a lot of documentation clarifications.
-
---
-exec >/var/tmp/1
-O=v1.5.3.5-57-gb574c8d
-echo O=`git describe refs/heads/maint`
-git shortlog --no-merges $O..refs/heads/maint
(read: safer than the usual one) after the user accumulates
too many loose objects.
- * You need to explicitly set clean.requireForce to true to allow
- git-clean to do any damage now (the configuration variable used
- to default to false).
+ * You need to explicitly set clean.requireForce to "false" to allow
+ git-clean to do any damage (lack of the configuration variable
+ used to mean "do not require", but we now use the safer default).
* git-push has been rewritten in C.
* git-lost-found was deprecated in favor of git-fsck's --lost-found
option.
+ * "git log" learned --early-output option to help interactive
+ GUI implementations.
+
* git-svnimport was removed in favor of git-svn.
* git-bisect learned "skip" action to mark untestable commits.
* "git cvsexportcommit" learned -w option to specify and switch
to the CVS working directory.
+ * "git checkout" from a subdirectory learned to use "../path"
+ to allow checking out a path outside the current directory
+ without cd'ing up.
+
* Output processing for '--pretty=format:<user format>' has
been optimized.
* git-svn talking with the SVN over http will correctly quote branch
and project names.
+ * "git rev-list --objects A..B" choked when the lower boundary
+ of the range involved a subproject. This fix is also queued
+ for 'maint' (but not in there yet).
+
--
exec >/var/tmp/1
-O=v1.5.3.5-736-geb9d2b9
+O=v1.5.3.6-727-g5d3d1ca
echo O=`git describe refs/heads/master`
git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
<div class="sectionbody">\r
<dl>\r
<dt>\r
+--parseopt\r
+</dt>\r
+<dd>\r
+<p>\r
+ Use <tt>git-rev-parse</tt> in option parsing mode (see PARSEOPT section below).\r
+</p>\r
+</dd>\r
+<dt>\r
+--keep-dash-dash\r
+</dt>\r
+<dd>\r
+<p>\r
+ Only meaningful in <tt>--parseopt</tt> mode. Tells the option parser to echo\r
+ out the first <tt>--</tt> met instead of skipping it.\r
+</p>\r
+</dd>\r
+<dt>\r
--revs-only\r
</dt>\r
<dd>\r
F^! D G H D F</tt></pre>\r
</div></div>\r
</div>\r
+<h2>PARSEOPT</h2>\r
+<div class="sectionbody">\r
+<p>In <tt>--parseopt</tt> mode, <tt>git-rev-parse</tt> helps massaging options to bring to shell\r
+scripts the same facilities C builtins have. It works as an option normalizer\r
+(e.g. splits single switches aggregate values), a bit like <tt>getopt(1)</tt> does.</p>\r
+<p>It takes on the standard input the specification of the options to parse and\r
+understand, and echoes on the standard output a line suitable for <tt>sh(1)</tt> <tt>eval</tt>\r
+to replace the arguments with normalized ones. In case of error, it outputs\r
+usage on the standard error stream, and exits with code 129.</p>\r
+<h3>Input Format</h3>\r
+<p><tt>git-rev-parse --parseopt</tt> input format is fully text based. It has two parts,\r
+separated by a line that contains only <tt>--</tt>. The lines before the separator\r
+(should be more than one) are used for the usage.\r
+The lines after the separator describe the options.</p>\r
+<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
+</div></div>\r
+<dl>\r
+<dt>\r
+<tt><opt_spec></tt>\r
+</dt>\r
+<dd>\r
+<p>\r
+ its format is the short option character, then the long option name\r
+ separated by a comma. Both parts are not required, though at least one\r
+ is necessary. <tt>h,help</tt>, <tt>dry-run</tt> and <tt>f</tt> are all three correct\r
+ <tt><opt_spec></tt>.\r
+</p>\r
+</dd>\r
+<dt>\r
+<tt><arg_spec></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
+</p>\r
+</dd>\r
+</dl>\r
+<p>The remainder of the line, after stripping the spaces, is used\r
+as the help associated to the option.</p>\r
+<p>Blank lines are ignored, and lines that don't match this specification are used\r
+as option group headers (start the line with a space to create such\r
+lines on purpose).</p>\r
+<h3>Example</h3>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>OPTS_SPEC="\\r
+some-command [options] <args>...\r
+\r
+some-command does foo and bar!\r
+--\r
+h,help show the help\r
+\r
+foo some nifty option --foo\r
+bar= some cool option --bar with an argument\r
+\r
+ An option group Header\r
+C? option C with an optional argument"\r
+\r
+eval `echo "$OPTS_SPEC" | git-rev-parse --parseopt -- "$@" || echo exit $?`</tt></pre>\r
+</div></div>\r
+</div>\r
<h2>Author</h2>\r
<div class="sectionbody">\r
-<p>Written by Linus Torvalds <torvalds@osdl.org> and\r
-Junio C Hamano <junkio@cox.net></p>\r
+<p>Written by Linus Torvalds <torvalds@osdl.org> .\r
+Junio C Hamano <junkio@cox.net> and Pierre Habouzit <madcoder@debian.org></p>\r
</div>\r
<h2>Documentation</h2>\r
<div class="sectionbody">\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 14-Nov-2007 12:11:46 UTC\r
+Last updated 19-Nov-2007 05:02:45 UTC\r
</div>\r
</div>\r
</body>\r
OPTIONS
-------
+--parseopt::
+ Use `git-rev-parse` in option parsing mode (see PARSEOPT section below).
+
+--keep-dash-dash::
+ Only meaningful in `--parseopt` mode. Tells the option parser to echo
+ out the first `--` met instead of skipping it.
+
--revs-only::
Do not output flags and parameters not meant for
`git-rev-list` command.
C^@ I J F
F^! D G H D F
+PARSEOPT
+--------
+
+In `--parseopt` mode, `git-rev-parse` helps massaging options to bring to shell
+scripts the same facilities C builtins have. It works as an option normalizer
+(e.g. splits single switches aggregate values), a bit like `getopt(1)` does.
+
+It takes on the standard input the specification of the options to parse and
+understand, and echoes on the standard output a line suitable for `sh(1)` `eval`
+to replace the arguments with normalized ones. In case of error, it outputs
+usage on the standard error stream, and exits with code 129.
+
+Input Format
+~~~~~~~~~~~~
+
+`git-rev-parse --parseopt` input format is fully text based. It has two parts,
+separated by a line that contains only `--`. The lines before the separator
+(should be more than one) are used for the usage.
+The lines after the separator describe the options.
+
+Each line of options has this format:
+
+------------
+<opt_spec><arg_spec>? SP+ help LF
+------------
+
+`<opt_spec>`::
+ its format is the short option character, then the long option name
+ separated by a comma. Both parts are not required, though at least one
+ 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).
+
+The remainder of the line, after stripping the spaces, is used
+as the help associated to the option.
+
+Blank lines are ignored, and lines that don't match this specification are used
+as option group headers (start the line with a space to create such
+lines on purpose).
+
+Example
+~~~~~~~
+
+------------
+OPTS_SPEC="\
+some-command [options] <args>...
+
+some-command does foo and bar!
+--
+h,help show the help
+
+foo some nifty option --foo
+bar= some cool option --bar with an argument
+
+ An option group Header
+C? option C with an optional argument"
+
+eval `echo "$OPTS_SPEC" | git-rev-parse --parseopt -- "$@" || echo exit $?`
+------------
+
+
Author
------
-Written by Linus Torvalds <torvalds@osdl.org> and
-Junio C Hamano <junkio@cox.net>
+Written by Linus Torvalds <torvalds@osdl.org> .
+Junio C Hamano <junkio@cox.net> and Pierre Habouzit <madcoder@debian.org>
Documentation
--------------
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 14-Nov-2007 12:11:58 UTC\r
+Last updated 19-Nov-2007 05:02:44 UTC\r
</div>\r
</div>\r
</body>\r
* link:v1.5.3/git.html[documentation for release 1.5.3]
* release notes for
+ link:RelNotes-1.5.3.6.txt[1.5.3.6],
link:RelNotes-1.5.3.5.txt[1.5.3.5],
link:RelNotes-1.5.3.4.txt[1.5.3.4],
link:RelNotes-1.5.3.3.txt[1.5.3.3],