You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
267 lines
11 KiB
267 lines
11 KiB
Git v1.8.0 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.7.12 |
|
--------------------- |
|
|
|
UI, Workflows & Features |
|
|
|
* A credential helper for Win32 to allow access to the keychain of |
|
the logged-in user has been added. |
|
|
|
* An initial port to HP NonStop. |
|
|
|
* A credential helper to allow access to the Gnome keyring has been |
|
added. |
|
|
|
* When "git am" sanitizes the "Subject:" line, we strip the prefix from |
|
"Re: subject" and also from a less common "re: subject", but left |
|
the even less common "RE: subject" intact. Now we strip that too. |
|
|
|
* It was tempting to say "git branch --set-upstream origin/master", |
|
but that tells Git to arrange the local branch "origin/master" to |
|
integrate with the currently checked out branch, which is highly |
|
unlikely what the user meant. The option is deprecated; use the |
|
new "--set-upstream-to" (with a short-and-sweet "-u") option |
|
instead. |
|
|
|
* "git cherry-pick" learned the "--allow-empty-message" option to |
|
allow it to replay a commit without any log message. |
|
|
|
* After "git cherry-pick -s" gave control back to the user asking |
|
help to resolve conflicts, concluding "git commit" used to need to |
|
be run with "-s" if the user wants to sign it off; now the command |
|
leaves the sign-off line in the log template. |
|
|
|
* "git daemon" learned the "--access-hook" option to allow an |
|
external command to decline service based on the client address, |
|
repository path, etc. |
|
|
|
* "git difftool --dir-diff" learned to use symbolic links to prepare |
|
a temporary copy of the working tree when available. |
|
|
|
* "git grep" learned to use a non-standard pattern type by default if |
|
a configuration variable tells it to. |
|
|
|
* Accumulated updates to "git gui" has been merged. |
|
|
|
* "git log -g" learned the "--grep-reflog=<pattern>" option to limit |
|
its output to commits with a reflog message that matches the given |
|
pattern. |
|
|
|
* "git merge-base" learned the "--is-ancestor A B" option to tell if A is |
|
an ancestor of B. The result is indicated by its exit status code. |
|
|
|
* "git mergetool" now allows users to override the actual command used |
|
with the mergetool.$name.cmd configuration variable even for built-in |
|
mergetool backends. |
|
|
|
* "git rebase -i" learned the "--edit-todo" option to open an editor |
|
to edit the instruction sheet. |
|
|
|
|
|
Foreign Interface |
|
|
|
* "git svn" has been updated to work with SVN 1.7. |
|
|
|
* "git p4" learned the "--conflicts" option to specify what to do when |
|
encountering a conflict during "p4 submit". |
|
|
|
|
|
Performance, Internal Implementation, etc. |
|
|
|
* Git ships with a fall-back regexp implementation for platforms with |
|
buggy regexp library, but it was easy for people to keep using their |
|
platform regexp by mistake. A new test has been added to check this. |
|
|
|
* The "check-docs" build target has been updated and greatly |
|
simplified. |
|
|
|
* The test suite is run under MALLOC_CHECK_ when running with a glibc |
|
that supports the feature. |
|
|
|
* The documentation in the TeXinfo format was using indented output |
|
for materials meant to be examples that are better typeset in |
|
monospace. |
|
|
|
* Compatibility wrapper around some mkdir(2) implementations that |
|
reject parameters with trailing slash has been introduced. |
|
|
|
* Compatibility wrapper for systems that lack usable setitimer() has |
|
been added. |
|
|
|
* The option parsing of "git checkout" had error checking, dwim and |
|
defaulting missing options, all mixed in the code, and issuing an |
|
appropriate error message with useful context was getting harder. |
|
The code has been reorganized to allow giving a proper diagnosis |
|
when the user says "git checkout -b -t foo bar" (e.g. "-t" is not a |
|
good name for a branch). |
|
|
|
* Many internal uses of a "git merge-base" equivalent were only to see |
|
if one commit fast-forwards to the other, which did not need the |
|
full set of merge bases to be computed. They have been updated to |
|
use less expensive checks. |
|
|
|
* The heuristics to detect and silently convert latin1 to utf8 when |
|
we were told to use utf-8 in the log message has been transplanted |
|
from "mailinfo" to "commit" and "commit-tree". |
|
|
|
* Messages given by "git <subcommand> -h" from many subcommands have |
|
been marked for translation. |
|
|
|
|
|
Also contains minor documentation updates and code clean-ups. |
|
|
|
|
|
Fixes since v1.7.12 |
|
------------------- |
|
|
|
Unless otherwise noted, all the fixes since v1.7.12 in the |
|
maintenance track are contained in this release (see release notes |
|
to them for details). |
|
|
|
* The attribute system may be asked for a path that itself or its |
|
leading directories no longer exists in the working tree, and it is |
|
fine if we cannot open .gitattribute file in such a case. Failure |
|
to open per-directory .gitattributes with error status other than |
|
ENOENT and ENOTDIR should be diagnosed, but it wasn't. |
|
|
|
* When looking for $HOME/.gitconfig etc., it is OK if we cannot read |
|
them because they do not exist, but we did not diagnose existing |
|
files that we cannot read. |
|
|
|
* When "git am" is fed an input that has multiple "Content-type: ..." |
|
header, it did not grok charset= attribute correctly. |
|
|
|
* "git am" mishandled a patch attached as application/octet-stream |
|
(e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not |
|
honored correctly. |
|
|
|
* "git blame MAKEFILE" run in a history that has "Makefile" but not |
|
"MAKEFILE" should say "No such file MAKEFILE in HEAD", but got |
|
confused on a case insensitive filesystem and failed to do so. |
|
|
|
* Even during a conflicted merge, "git blame $path" always meant to |
|
blame uncommitted changes to the "working tree" version; make it |
|
more useful by showing cleanly merged parts as coming from the other |
|
branch that is being merged. |
|
|
|
* It was unclear in the documentation for "git blame" that it is |
|
unnecessary for users to use the "--follow" option. |
|
|
|
* Output from "git branch -v" contains "(no branch)" that could be |
|
localized, but the code to align it along with the names of |
|
branches was counting in bytes, not in display columns. |
|
|
|
* "git cherry-pick A C B" used to replay changes in A and then B and |
|
then C if these three commits had committer timestamps in that |
|
order, which is not what the user who said "A C B" naturally |
|
expects. |
|
|
|
* A repository created with "git clone --single" had its fetch |
|
refspecs set up just like a clone without "--single", leading the |
|
subsequent "git fetch" to slurp all the other branches, defeating |
|
the whole point of specifying "only this branch". |
|
|
|
* Documentation talked about "first line of commit log" when it meant |
|
the title of the commit. The description was clarified by defining |
|
how the title is decided and rewording the casual mention of "first |
|
line" to "title". |
|
|
|
* "git cvsimport" did not thoroughly cleanse tag names that it |
|
inferred from the names of the tags it obtained from CVS, which |
|
caused "git tag" to barf and stop the import in the middle. |
|
|
|
* Earlier we made the diffstat summary line that shows the number of |
|
lines added/deleted localizable, but it was found irritating having |
|
to see them in various languages on a list whose discussion language |
|
is English, and this change has been reverted. |
|
|
|
* "git fetch --all", when passed "--no-tags", did not honor the |
|
"--no-tags" option while fetching from individual remotes (the same |
|
issue existed with "--tags", but the combination "--all --tags" makes |
|
much less sense than "--all --no-tags"). |
|
|
|
* "git fetch" over http had an old workaround for an unlikely server |
|
misconfiguration; it turns out that this hurts debuggability of the |
|
configuration in general, and has been reverted. |
|
|
|
* "git fetch" over http advertised that it supports "deflate", which |
|
is much less common, and did not advertise the more common "gzip" on |
|
its Accept-Encoding header. |
|
|
|
* "git fetch" over the dumb-http revision walker could segfault when |
|
curl's multi interface was used. |
|
|
|
* "git gc --auto" notified the user that auto-packing has triggered |
|
even under the "--quiet" option. |
|
|
|
* After "gitk" showed the contents of a tag, neither "Reread |
|
references" nor "Reload" updated what is shown as the |
|
contents of it when the user overwrote the tag with "git tag -f". |
|
|
|
* "git log --all-match --grep=A --grep=B" ought to show commits that |
|
mention both A and B, but when these three options are used with |
|
--author or --committer, it showed commits that mention either A or |
|
B (or both) instead. |
|
|
|
* The "-Xours" backend option to "git merge -s recursive" was ignored |
|
for binary files. |
|
|
|
* "git p4", when "--use-client-spec" and "--detect-branches" are used |
|
together, misdetected branches. |
|
|
|
* "git receive-pack" (the counterpart to "git push") did not give |
|
progress output while processing objects it received to the user |
|
when run over the smart-http protocol. |
|
|
|
* When you misspell the command name you give to the "exec" action in |
|
the "git rebase -i" instruction sheet you were told that 'rebase' is not a |
|
git subcommand from "git rebase --continue". |
|
|
|
* The subcommand in "git remote" to remove a defined remote was |
|
"rm" and the command did not take a fully-spelled "remove". |
|
|
|
* The interactive prompt that "git send-email" gives was error prone. It |
|
asked "What e-mail address do you want to use?" with the address it |
|
guessed (correctly) the user would want to use in its prompt, |
|
tempting the user to say "y". But the response was taken as "No, |
|
please use 'y' as the e-mail address instead", which is most |
|
certainly not what the user meant. |
|
|
|
* "git show --format='%ci'" did not give the timestamp correctly for |
|
commits created without human readable name on the "committer" line. |
|
|
|
* "git show --quiet" ought to be a synonym for "git show -s", but |
|
wasn't. |
|
|
|
* "git submodule frotz" was not diagnosed as "frotz" being an unknown |
|
subcommand to "git submodule"; the user instead got a complaint |
|
that "git submodule status" was run with an unknown path "frotz". |
|
|
|
* "git status" honored the ignore=dirty settings in .gitmodules but |
|
"git commit" didn't. |
|
|
|
* "gitweb" did not give the correct committer timezone in its feed |
|
output due to a typo.
|
|
|