2012-11-15 20:21:47 +01:00
|
|
|
Git v1.8.1 Release Notes
|
|
|
|
========================
|
|
|
|
|
|
|
|
Backward compatibility notes
|
|
|
|
----------------------------
|
|
|
|
|
|
|
|
In the next major release (not *this* one), we will change the
|
|
|
|
behavior of the "git push" command.
|
|
|
|
|
|
|
|
When "git push [$there]" does not say what to push, we have used the
|
|
|
|
traditional "matching" semantics so far (all your branches were sent
|
|
|
|
to the remote as long as there already are branches of the same name
|
|
|
|
over there). We will use the "simple" semantics that pushes the
|
|
|
|
current branch to the branch with the same name, only when the current
|
|
|
|
branch is set to integrate with that remote branch. There is a user
|
|
|
|
preference configuration variable "push.default" to change this, and
|
|
|
|
"git push" will warn about the upcoming change until you set this
|
|
|
|
variable in this release.
|
|
|
|
|
|
|
|
"git branch --set-upstream" is deprecated and may be removed in a
|
|
|
|
relatively distant future. "git branch [-u|--set-upstream-to]" has
|
|
|
|
been introduced with a saner order of arguments.
|
|
|
|
|
|
|
|
|
|
|
|
Updates since v1.8.0
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
UI, Workflows & Features
|
|
|
|
|
2012-11-26 03:52:42 +01:00
|
|
|
* Command-line completion for tcsh has been added.
|
|
|
|
|
2012-11-15 20:21:47 +01:00
|
|
|
* We used to have a workaround for a bug in ancient "less" that
|
|
|
|
causes it to exit without any output when the terminal is resized.
|
|
|
|
The bug has been fixed in "less" version 406 (June 2007), and the
|
|
|
|
workaround has been removed in this release.
|
|
|
|
|
2012-11-20 19:46:29 +01:00
|
|
|
* Some documentation pages that used to ship only in the plain text
|
|
|
|
format are now formatted in HTML as well.
|
|
|
|
|
2012-11-21 22:23:18 +01:00
|
|
|
* "git-prompt" scriptlet (in contrib/completion) can be told to paint
|
|
|
|
pieces of the hints in the prompt string in colors.
|
|
|
|
|
2012-11-15 20:21:47 +01:00
|
|
|
* A new configuration variable "diff.context" can be used to
|
|
|
|
give the default number of context lines in the patch output, to
|
|
|
|
override the hardcoded default of 3 lines.
|
|
|
|
|
2012-11-21 22:23:18 +01:00
|
|
|
* "git config --get" used to diagnose presence of multiple
|
|
|
|
definitions of the same variable in the same configuration file as
|
|
|
|
an error, but it now applies the "last one wins" rule used by the
|
|
|
|
internal configuration logic. Strictly speaking, this may be an
|
|
|
|
API regression but it is expected that nobody will notice it in
|
|
|
|
practice.
|
|
|
|
|
2012-11-20 19:46:29 +01:00
|
|
|
* "git format-patch" learned the "--notes=<ref>" option to give
|
2012-11-15 20:21:47 +01:00
|
|
|
notes for the commit after the three-dash lines in its output.
|
|
|
|
|
|
|
|
* "git log --grep=<pcre>" learned to honor the "grep.patterntype"
|
|
|
|
configuration set to "perl".
|
|
|
|
|
2012-11-20 19:46:29 +01:00
|
|
|
* "git replace -d <object>" now interprets <object>, instead of only
|
|
|
|
accepting full hex object name.
|
|
|
|
|
2012-11-15 20:21:47 +01:00
|
|
|
* "git rm $submodule" used to punt on removing a submodule working
|
|
|
|
tree to avoid losing the repository embedded in it. Because
|
|
|
|
recent git uses a mechanism to separate the submodule repository
|
|
|
|
from the submodule working tree, "git rm" learned to detect this
|
|
|
|
case and removes the submodule working tree when it is safe.
|
|
|
|
|
|
|
|
* "git submodule add" learned to add a new submodule at the same
|
|
|
|
path as the path where an unrelated submodule was bound to in an
|
|
|
|
existing revision via the "--name" option.
|
|
|
|
|
|
|
|
* "git submodule sync" learned the "--recursive" option.
|
|
|
|
|
2012-11-26 03:52:42 +01:00
|
|
|
* "diff.submodule" configuration variable can be used to give custom
|
|
|
|
default value to the "git diff --submodule" option.
|
|
|
|
|
2012-11-15 20:21:47 +01:00
|
|
|
* "git symbolic-ref" learned the "-d $symref" option to delete the
|
|
|
|
named symbolic ref, which is more intuitive way to spell it than
|
|
|
|
"update-ref -d --no-deref".
|
|
|
|
|
|
|
|
|
|
|
|
Foreign Interface
|
|
|
|
|
|
|
|
* "git cvsimport" can be told to record timezones (other than GMT)
|
|
|
|
per-author via its author info file.
|
|
|
|
|
|
|
|
* The remote helper interface to interact with subversion
|
|
|
|
repositories (one of the GSoC 2012 projects) has been merged.
|
|
|
|
|
|
|
|
|
|
|
|
Performance, Internal Implementation, etc.
|
|
|
|
|
2012-11-20 19:46:29 +01:00
|
|
|
* Compilation on Cygwin with newer header files are supported now.
|
|
|
|
|
2012-11-15 20:21:47 +01:00
|
|
|
* The logic to generate the initial advertisement from
|
|
|
|
"upload-pack" (what is invoked by "git fetch" on the other side
|
|
|
|
of the connection) to list what refs are available in the
|
|
|
|
repository has been optimized.
|
|
|
|
|
|
|
|
* The logic to find set of attributes that match a given path has
|
|
|
|
been optimized.
|
|
|
|
|
2012-11-20 19:46:29 +01:00
|
|
|
* Use preloadindex in "git diff-index" and "git update-index", which
|
|
|
|
has a nice speedup on systems with slow stat calls (and even on
|
|
|
|
Linux).
|
|
|
|
|
2012-11-15 20:21:47 +01:00
|
|
|
|
|
|
|
Also contains minor documentation updates and code clean-ups.
|
|
|
|
|
|
|
|
|
|
|
|
Fixes since v1.8.0
|
|
|
|
------------------
|
|
|
|
|
|
|
|
Unless otherwise noted, all the fixes since v1.8.0 in the maintenance
|
|
|
|
track are contained in this release (see release notes to them for
|
|
|
|
details).
|
|
|
|
|
|
|
|
* The configuration parser had an unnecessary hardcoded limit on
|
|
|
|
variable names that was not checked consistently.
|
|
|
|
(merge 0971e99 bw/config-lift-variable-name-length-limit later to maint).
|
|
|
|
|
|
|
|
* The "say" function in the test scaffolding incorrectly allowed
|
|
|
|
"echo" to interpret "\a" as if it were a C-string asking for a
|
|
|
|
BEL output.
|
|
|
|
(merge 7bc0911 jc/test-say-color-avoid-echo-escape later to maint).
|
|
|
|
|
|
|
|
* "git mergetool" feeds /dev/null as a common ancestor when dealing
|
|
|
|
with an add/add conflict, but p4merge backend cannot handle
|
|
|
|
it. Work it around by passing a temporary empty file.
|
|
|
|
(merge 3facc60 da/mergetools-p4 later to maint).
|
|
|
|
|
|
|
|
* "git log -F -E --grep='<ere>'" failed to use the given <ere>
|
|
|
|
pattern as extended regular expression, and instead looked for the
|
|
|
|
string literally.
|
|
|
|
(merge 727b6fc jc/grep-pcre-loose-ends~1 later to maint).
|
|
|
|
|
|
|
|
* "git grep -e pattern <tree>" asked the attribute system to read
|
|
|
|
"<tree>:.gitattributes" file in the working tree, which was
|
|
|
|
nonsense.
|
|
|
|
(merge 55c6168 nd/grep-true-path later to maint).
|
|
|
|
|
|
|
|
* A symbolic ref refs/heads/SYM was not correctly removed with "git
|
|
|
|
branch -d SYM"; the command removed the ref pointed by SYM
|
|
|
|
instead.
|
|
|
|
(merge 13baa9f rs/branch-del-symref later to maint).
|
|
|
|
|
|
|
|
* Update "remote tracking branch" in the documentation to
|
|
|
|
"remote-tracking branch".
|
|
|
|
(merge a6d3bde mm/maint-doc-remote-tracking later to maint).
|
|
|
|
|
|
|
|
* "git pull --rebase" run while the HEAD is detached tried to find
|
|
|
|
the upstream branch of the detached HEAD (which by definition
|
|
|
|
does not exist) and emitted unnecessary error messages.
|
|
|
|
(merge e980765 ph/pull-rebase-detached later to maint).
|
|
|
|
|
|
|
|
* The refs/replace hierarchy was not mentioned in the
|
|
|
|
repository-layout docs.
|
|
|
|
(merge 11fbe18 po/maint-refs-replace-docs later to maint).
|
|
|
|
|
|
|
|
* Various rfc2047 quoting issues around a non-ASCII name on the
|
2012-11-20 19:46:29 +01:00
|
|
|
From: line in the output from format-patch have been corrected.
|
2012-11-15 20:21:47 +01:00
|
|
|
(merge 25dc8da js/format-2047 later to maint).
|
|
|
|
|
|
|
|
* Sometimes curl_multi_timeout() function suggested a wrong timeout
|
2012-11-20 19:46:29 +01:00
|
|
|
value when there is no file descriptor to wait on and the http
|
2012-11-15 20:21:47 +01:00
|
|
|
transport ended up sleeping for minutes in select(2) system call.
|
|
|
|
A workaround has been added for this.
|
|
|
|
(merge 7202b81 sz/maint-curl-multi-timeout later to maint).
|
|
|
|
|
|
|
|
* For a fetch refspec (or the result of applying wildcard on one),
|
|
|
|
we always want the RHS to map to something inside "refs/"
|
|
|
|
hierarchy, but the logic to check it was not exactly right.
|
|
|
|
(merge 5c08c1f jc/maint-fetch-tighten-refname-check later to maint).
|
|
|
|
|
|
|
|
* "git diff -G<pattern>" did not honor textconv filter when looking
|
|
|
|
for changes.
|
|
|
|
(merge b1c2f57 jk/maint-diff-grep-textconv later to maint).
|
2012-11-20 19:46:29 +01:00
|
|
|
|
|
|
|
* Some HTTP servers ask for auth only during the actual packing phase
|
|
|
|
(not in ls-remote phase); this is not really a recommended
|
|
|
|
configuration, but the clients used to fail to authenticate with
|
|
|
|
such servers.
|
|
|
|
(merge 2e736fd jk/maint-http-half-auth-fetch later to maint).
|
|
|
|
|
|
|
|
* "git p4" used to try expanding malformed "$keyword$" that spans
|
|
|
|
across multiple lines.
|
|
|
|
(merge 6b2bf41 pw/maint-p4-rcs-expansion-newline later to maint).
|
|
|
|
|
|
|
|
* Syntax highlighting in "gitweb" was not quite working.
|
|
|
|
(merge 048b399 rh/maint-gitweb-highlight-ext later to maint).
|
|
|
|
|
|
|
|
* RSS feed from "gitweb" had a xss hole in its title output.
|
|
|
|
(merge 0f0ecf6 jk/maint-gitweb-xss later to maint).
|
|
|
|
|
|
|
|
* "git config --path $key" segfaulted on "[section] key" (a boolean
|
|
|
|
"true" spelled without "=", not "[section] key = true").
|
|
|
|
(merge 962c38e cn/config-missing-path later to maint).
|
|
|
|
|
|
|
|
* "git checkout -b foo" while on an unborn branch did not say
|
|
|
|
"Switched to a new branch 'foo'" like other cases.
|
|
|
|
(merge afa8c07 jk/checkout-out-of-unborn later to maint).
|
2012-11-26 03:52:42 +01:00
|
|
|
|
|
|
|
* We failed to mention a file without any content change but whose
|
|
|
|
permission bit was modified, or (worse yet) a new file without any
|
|
|
|
content in the "git diff --stat" output.
|
|
|
|
(merge 74faaa1 lt/diff-stat-show-0-lines later to maint).
|
|
|
|
|
|
|
|
* "update-ref -d --deref SYM" to delete a ref through a symbolic ref
|
|
|
|
that points to it did not remove it correctly.
|
|
|
|
(merge b274a71 jh/update-ref-d-through-symref later to maint).
|