-Git v1.7.2 Release Notes (draft)
-================================
+Git v1.7.2 Release Notes
+========================
Updates since v1.7.1
--------------------
+ * core.eol configuration and text/eol attributes are the new way to control
+ the end of line conventions for files in the working tree.
+
+ * core.autocrlf has been made safer - it will now only handle line
+ endings for new files and files that are LF-only in the
+ repository. To normalize content that has been checked in with
+ CRLF, use the new eol/text attributes.
+
* The whitespace rules used in "git apply --whitespace" and "git diff"
gained a new member in the family (tab-in-indent) to help projects with
policy to indent only with spaces.
- * Authentication over http transport can now be made lazily, in that the
- request can first go to a URL without username, get a 401 response and
- then the client will ask for the username to use.
-
* When working from a subdirectory, by default, git does not look for its
metadirectory ".git" across filesystems, primarily to help people who
have invocations of git in their custom PS1 prompts, as being outside
environment variable can be used to tell git not to stop at a
filesystem boundary.
+ * Usage help messages generated by parse-options library (i.e. most
+ of the Porcelain commands) are sent to the standard output now.
+
+ * ':/<string>' notation to look for a commit now takes regular expression
+ and it is not anchored at the beginning of the commit log message
+ anymore (this is a backward incompatible change).
+
* "git" wrapper learned "-c name=value" option to override configuration
variable from the command line.
- * After "git apply --whitespace=fix" removed trailing blank lines in an
- patch in a patch series, it failed to apply later patches that depend
- on the presense of such blank lines.
+ * Improved portability for various platforms including older SunOS,
+ HP-UX 10/11, AIX, Tru64, etc. and platforms with Python 2.4.
+
+ * The message from "git am -3" has been improved when conflict
+ resolution ended up making the patch a no-op.
+
+ * "git blame" applies the textconv filter to the contents it works
+ on, when available.
* "git checkout --orphan newbranch" is similar to "-b newbranch" but
prepares to create a root commit that is not connected to any existing
commit.
- * "git commit --amend" on a commit with an invalid author-name line that
- lacks the display name didn't work (fb7749e4).
+ * "git cherry-pick" learned to pick a range of commits
+ (e.g. "cherry-pick A..B" and "cherry-pick --stdin"), so did "git
+ revert"; these do not support the nicer sequencing control "rebase
+ [-i]" has, though.
+
+ * "git cherry-pick" and "git revert" learned --strategy option to specify
+ the merge strategy to be used when performing three-way merges.
* "git cvsserver" can be told to use pserver; its password file can be
stored outside the repository.
- * "git describe" tie-breaks tags that point at the same commit better by
- paying attention to the tagger date (newer ones are preferred).
-
* The output from the textconv filter used by "git diff" can be cached to
speed up their reuse.
- * "git diff --color" did not paint extended diff headers per line
- (i.e. the coloring escape sequence didn't end at the end of line),
- which confused "less -R".
-
* "git diff --word-diff=<mode>" extends the existing "--color-words"
option, making it more useful in color-challenged environments.
been enhanced for visibility modifiers (public, protected, etc.) to
better support PHP5.
- * "git fetch" over HTTP verifies the downloaded packfiles more robustly.
+ * "diff.noprefix" configuration variable can be used to implicitly
+ ask for "diff --no-prefix" behaviour.
* "git for-each-ref" learned "%(objectname:short)" that gives the object
name abbreviated.
+ * "git format-patch" learned --signature option and format.signature
+ configuration variable to customize the e-mail signature used in the
+ output.
+
* Various options to "git grep" (e.g. --count, --name-only) work better
with binary files.
- * The memory usage by "git index-pack" (run during "git fetch" and "git
- push") got leaner.
+ * "git grep" learned "-Ovi" to open the files with hits in your editor.
+
+ * "git help -w" learned "chrome" and "chromium" browsers.
+
+ * "git log --decorate" shows commit decorations in various colours.
* "git log --follow <path>" follows across copies (it used to only follow
renames). This may make the processing more expensive.
+ * "git log --pretty=format:<template>" specifier learned "% <something>"
+ magic that inserts a space only when %<something> expands to a
+ non-empty string; this is similar to "%+<something>" magic, but is
+ useful in a context to generate a single line output.
+
* "git notes prune" learned "-n" (dry-run) and "-v" options, similar to
what "git prune" has.
* "git patch-id" can be fed a mbox without getting confused by the
signature line in the format-patch output.
- * "git revert" learned --strategy option to specify the merge strategy.
+ * "git remote" learned "set-branches" subcommand.
+
+ * "git rev-list A..B" learned --ancestry-path option to further limit
+ the result to the commits that are on the ancestry chain between A and
+ B (i.e. commits that are not descendants of A are excluded).
- * "git send-email" learned --smtp-domain option to specify the domainname
- used in the EHLO/HELO exchange.
+ * "git show -5" is equivalent to "git show --do-walk 5"; this is similar
+ to the update to make "git show master..next" walk the history,
+ introduced in 1.6.4.
* "git status [-s] --ignored" can be used to list ignored paths.
+ * "git status -s -b" shows the current branch in the output.
+
+ * "git status" learned "--ignore-submodules" option.
+
* Various "gitweb" enhancements and clean-ups, including syntax
- highlighting.
+ highlighting, "plackup" support for instaweb, .fcgi suffix to run
+ it as FastCGI script, etc.
+
+ * The test harness has been updated to produce TAP-friendly output.
+
+ * Many documentation improvement patches are also included.
Fixes since v1.7.1
All of the fixes in v1.7.1.X maintenance series are included in this
release, unless otherwise noted.
- * We didn't recognize timezone "Z" as a synonym for "UTC" (75b37e70).
-
- * In 1.7.1, "git status" stopped refreshing the index by mistake
- (e251a7b3^2).
-
- * We used to mistakenly think "../work" is a subdirectory of the current
- directory when we are in "../work-xyz" (490544b).
-
- * "git checkout" and "git rebase" overwrote paths that are marked "assume
- unchanged" (aecda37c).
-
- * "git clone/fetch/pull" issued an incorrect error message when a ref and
- a symref that points to the ref were updated at the same time. This
- obviously would update them to the same value, and should not result in
- an error condition (da3efdb).
+ * We didn't URL decode "file:///path/to/repo" correctly when path/to/repo
+ had percent-encoded characters (638794c, 9d2e942, ce83eda, 3c73a1d).
* "git clone" did not configure remote.origin.url correctly for bare
clones (df61c889).
- * "git diff" used to tell underlying xdiff machinery to work very hard to
- minimize the output, but this often was spending too many extra cycles
- for very little gain (582aa00).
+ * "git diff --graph" works better with "--color-words" and other options
+ (81fa024..4297c0a).
- * "git pull" accepted "--dry-run", gave it to underlying "git fetch" but
- ignored the option itself, resulting in a bogus attempt to merge
- unrelated commit (29609e68).
+ * "git diff" could show ambiguous abbreviation of blob object names on
+ its "index" line (3e5a188).
* "git reset --hard" started from a wrong directory and a working tree in
a nonstandard location is in use got confused (560fb6a1).
- * "git stash" incorrectly lost paths in the working tree that were
- previously removed from the index (7aa5d43).
-
---
-exec >/var/tmp/1
-O=v1.7.1-336-g0925c02
-echo O=$(git describe master)
-git shortlog --no-merges master ^maint ^$O
+ * "git read-tree -m A B" used to switch to branch B while retaining
+ local changes added an incorrect cache-tree information (b1f47514).