mirror of
https://github.com/git/git.git
synced 2024-11-05 08:47:56 +01:00
50f84e34a1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
200 lines
8.3 KiB
Text
200 lines
8.3 KiB
Text
Git v2.1 Release Notes
|
|
======================
|
|
|
|
Backward compatibility notes
|
|
----------------------------
|
|
|
|
* The default value we give to the environment variable LESS has been
|
|
changed from "FRSX" to "FRX", losing "S" (chop long lines instead
|
|
of wrapping). Existing users who prefer not to see line-wrapped
|
|
output may want to set
|
|
|
|
$ git config core.pager "less -S"
|
|
|
|
to restore the traditional behaviour. It is expected that people
|
|
find output from the most subcommands easier to read with the new
|
|
default, except for "blame" which tends to produce really long
|
|
lines. To override the new default only for "git blame", you can
|
|
do this:
|
|
|
|
$ git config pager.blame "less -S"
|
|
|
|
* A few disused directories in contrib/ have been retired.
|
|
|
|
|
|
Updates since v2.0
|
|
------------------
|
|
|
|
UI, Workflows & Features
|
|
|
|
* Since the very beginning of Git, we gave the LESS environment a
|
|
default value "FRSX" when we spawn "less" as the pager. "S" (chop
|
|
long lines instead of wrapping) has been removed from this default
|
|
set of options, because it is more or less a personal taste thing,
|
|
as opposed to others that have good justifications (i.e. "R" is
|
|
very much justified because many kinds of output we produce are
|
|
colored and "FX" is justified because output we produce is often
|
|
shorter than a page).
|
|
|
|
* The logic and data used to compute the display width needed for
|
|
UTF-8 strings have been updated to match Unicode 6.3 better.
|
|
|
|
* "git commit --date=<date>" option learned to read from more
|
|
timestamp formats, including "--date=now".
|
|
|
|
* The `core.commentChar` configuration variable is used to specify a
|
|
custom comment character other than the default "#" to be used in
|
|
the commit log editor. This can be set to `auto` to attempt to
|
|
choose a different character that does not conflict with what
|
|
already starts a line in the message being edited for cases like
|
|
"git commit --amend".
|
|
|
|
* "git grep" learned grep.fullname configuration variable to force
|
|
"--full-name" to be default. This may cause regressions on
|
|
scripted users that do not expect this new behaviour.
|
|
|
|
* "git imap-send" learned to ask the credential helper for auth
|
|
material.
|
|
|
|
* "git merge" without argument, even when there is an upstream
|
|
defined for the current branch, refused to run until
|
|
merge.defaultToUpstream is set to true. Flip the default of that
|
|
configuration variable to true.
|
|
|
|
* "git mergetool" learned to drive the vimdiff3 backend.
|
|
|
|
* mergetool.prompt used to default to 'true', always asking "do you
|
|
really want to run the tool on this path?". Among the two
|
|
purposes this prompt serves, ignore the use case to confirm that
|
|
the user wants to view particular path with the named tool, and
|
|
redefine the meaning of the prompt only to confirm the choice of
|
|
the tool made by the autodetection (for those who configured the
|
|
tool explicitly, the prompt shown for the latter purpose is
|
|
simply annoying).
|
|
|
|
Strictly speaking, this is a backward incompatible change and the
|
|
users need to explicitly set the variable to 'true' if they want
|
|
to resurrect the now-ignored use case.
|
|
|
|
* "git svn" learned to cope with malformed timestamps with only one
|
|
digit in the hour part, e.g. 2014-01-07T5:01:02.048176Z, emitted
|
|
by some broken subversion server implementations.
|
|
|
|
* "git tag" when editing the tag message shows the name of the tag
|
|
being edited as a comment in the editor.
|
|
|
|
|
|
Performance, Internal Implementation, etc.
|
|
|
|
* Build procedure for 'subtree' (in contrib/) has been cleaned up.
|
|
|
|
* The `core.deltabasecachelimit` used to default to 16 MiB , but this
|
|
proved to be too small, and has been bumped to 96 MiB.
|
|
|
|
* "git blame" has been optimized greatly by reorganising the data
|
|
structure that is used to keep track of the work to be done.
|
|
|
|
* "git diff" that compares 3-or-more trees (e.g. parents and the
|
|
result of a merge) have been optimized.
|
|
|
|
* The API to update/delete references are being converted to handle
|
|
updates to multiple references in a transactional way. As an
|
|
example, "update-ref --stdin [-z]" has been updated to use this
|
|
API.
|
|
|
|
|
|
Also contains various documentation updates and code clean-ups.
|
|
|
|
|
|
Fixes since v2.0
|
|
----------------
|
|
|
|
Unless otherwise noted, all the fixes since v2.0 in the maintenance
|
|
track are contained in this release (see the maintenance releases'
|
|
notes for details).
|
|
|
|
* We used to unconditionally disable the pager in the pager process
|
|
we spawn to feed out output, but that prevented people who want to
|
|
run "less" within "less" from doing so.
|
|
(merge c0459ca je/pager-do-not-recurse later to maint).
|
|
|
|
* Tools that read diagnostic output in our standard error stream do
|
|
not want to see terminal control sequence (e.g. erase-to-eol).
|
|
Detect them by checking if the standard error stream is connected
|
|
to a tty.
|
|
(merge 38de156 mn/sideband-no-ansi later to maint).
|
|
|
|
* Mishandling of patterns in .gitignore that has trailing SPs quoted
|
|
with backslashes (e.g. ones that end with "\ ") have been
|
|
corrected.
|
|
(merge e61a6c1 pb/trim-trailing-spaces later to maint).
|
|
|
|
* "--ignore-space-change" option of "git apply" ignored the spaces
|
|
at the beginning of line too aggressively, which is inconsistent
|
|
with the option of the same name "diff" and "git diff" have.
|
|
(merge 14d3bb4 jc/apply-ignore-whitespace later to maint).
|
|
|
|
* "git blame" miscounted number of columns needed to show localized
|
|
timestamps, resulting in jaggy left-side-edge of the source code
|
|
lines in its output.
|
|
(merge dd75553 jx/blame-align-relative-time later to maint).
|
|
|
|
* "git blame" assigned the blame to the copy in the working-tree if
|
|
the repository is set to core.autocrlf=input and the file used CRLF
|
|
line endings.
|
|
(merge 4d4813a bc/blame-crlf-test later to maint).
|
|
|
|
* "git commit --allow-empty-messag -C $commit" did not work when the
|
|
commit did not have any log message.
|
|
(merge 076cbd6 jk/commit-C-pick-empty later to maint).
|
|
|
|
* "git grep -O" to show the lines that hit in the pager did not work
|
|
well with case insensitive search. We now spawn "less" with its
|
|
"-I" option when it is used as the pager (which is the default).
|
|
(merge f7febbe sk/spawn-less-case-insensitively-from-grep-O-i later to maint).
|
|
|
|
* We used to disable threaded "git index-pack" on platforms without
|
|
thread-safe pread(); use a different workaround for such
|
|
platforms to allow threaded "git index-pack".
|
|
(merge 3953949 nd/index-pack-one-fd-per-thread later to maint).
|
|
|
|
* The error reporting from "git index-pack" has been improved to
|
|
distinguish missing objects from type errors.
|
|
(merge 77583e7 jk/index-pack-report-missing later to maint).
|
|
|
|
* "git mailinfo" used to read beyond the end of header string while
|
|
parsing an incoming e-mail message to extract the patch.
|
|
(merge b1a013d rs/mailinfo-header-cmp later to maint).
|
|
|
|
* On a case insensitive filesystem, merge-recursive incorrectly
|
|
deleted the file that is to be renamed to a name that is the same
|
|
except for case differences.
|
|
(merge baa37bf dt/merge-recursive-case-insensitive later to maint).
|
|
|
|
* "git rerere forget" did not work well when merge.conflictstyle
|
|
was set to a non-default value.
|
|
(merge de3d8bb fc/rerere-conflict-style later to maint).
|
|
|
|
* "git log --exclude=<glob> --all | git shortlog" worked as expected,
|
|
but "git shortlog --exclude=<glob> --all", which is supposed to be
|
|
identical to the above pipeline, was not accepted at the command
|
|
line argument parser level.
|
|
(merge eb07774 jc/shortlog-ref-exclude later to maint).
|
|
|
|
* "git show -s" (i.e. show log message only) used to incorrectly emit
|
|
an extra blank line after a merge commit.
|
|
(merge ad2f725 mk/show-s-no-extra-blank-line-for-merges later to maint).
|
|
|
|
* "git status", even though it is a read-only operation, tries to
|
|
update the index with refreshed lstat(2) info to optimize future
|
|
accesses to the working tree opportunistically, but this could
|
|
race with a "read-write" operation that modify the index while it
|
|
is running. Detect such a race and avoid overwriting the index.
|
|
(merge 426ddee ym/fix-opportunistic-index-update-race later to maint).
|
|
|
|
* "git update-index --cacheinfo" in 2.0 release crashed on a
|
|
malformed command line.
|
|
(merge c8e1ee4 jc/rev-parse-argh-dashed-multi-words later to maint).
|
|
|
|
* The mode to run tests with HTTP server tests disabled was broken.
|
|
(merge afa53fe na/no-http-test-in-the-middle later to maint).
|