Updates since v1.7.1
--------------------
+ * core.eol configuration and eol attribute are the new way to control
+ the end of line conventions for files in the working tree;
+ core.autocrlf overrides it, keeping the traditional behaviour by
+ default.
+
* 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"); this does not have nicer sequencing control "rebase [-i]" has,
+ though.
* "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 help -w" learned "chrome" and "chromium" browsers.
* "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 remote" learned "set-branches" subcommand.
+
* "git revert" learned --strategy option to specify the merge strategy.
- * "git send-email" learned --smtp-domain option to specify the domainname
- used in the EHLO/HELO exchange.
+ * "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 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.
+
* Various "gitweb" enhancements and clean-ups, including syntax
- highlighting.
+ highlighting, "plackup" support for instaweb, .fcgi suffix to run
+ it as FastCGI script, etc.
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 didn't URL decode "file:///path/to/repo" correctly when path/to/repo
+ had percent-encoded characters (638794c, 9d2e942).
- * 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 commit" did not honor GIT_REFLOG_ACTION environment variable, resulting
+ reflog messages for cherry-pick and revert actions to be recorded as "commit".
* "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).
+ an error condition (0e71bc3).
* "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" inside a tree with many pathnames that have certain
+ characters has become very slow in 1.7.0 by mistake (will merge
+ e53e6b443 to 'maint').
+
+ * "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 rebase" did not faithfully reproduce a malformed author ident, that
+ is often seen in a repository converted from foreign SCMs (43c23251).
* "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
+O=v1.7.1-592-gcf4403a
+echo O=$(git describe HEAD)
+git shortlog --no-merges HEAD ^maint ^$O