mirror of
https://github.com/git/git.git
synced 2024-11-16 06:03:44 +01:00
ce1d3a93a6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
132 lines
5.4 KiB
Text
132 lines
5.4 KiB
Text
Git v2.2 Release Notes
|
|
======================
|
|
|
|
Updates since v2.1
|
|
------------------
|
|
|
|
Ports
|
|
|
|
* Building on older MacOS X systems automatically sets
|
|
the necessary NO_APPLE_COMMON_CRYPTO build-time option.
|
|
|
|
|
|
UI, Workflows & Features
|
|
|
|
* "git config --edit --global" starts from a skeletal per-user
|
|
configuration file contents, instead of a total blank, when the
|
|
user does not already have any. This immediately reduces the
|
|
need for a later "Have you forgotten setting core.user?" and we
|
|
can add more to the template as we gain more experience.
|
|
|
|
* "git stash list -p" used to be almost always a no-op because each
|
|
stash entry is represented as a merge commit. It learned to show
|
|
the difference between the base commit version and the working tree
|
|
version, which is in line with what "git show" gives.
|
|
|
|
Performance, Internal Implementation, etc.
|
|
|
|
* The API to manipulate the "refs" is currently undergoing a revamp
|
|
to make it more transactional, with the eventual goal to allow
|
|
all-or-none atomic updates and migrating the storage to something
|
|
other than the traditional filesystem based one (e.g. databases).
|
|
|
|
* We no longer attempt to keep track of individual dependencies to
|
|
the header files in the build procedure, relying on automated
|
|
dependency generation support from modern compilers.
|
|
|
|
* In tests, we have been using NOT_{MINGW,CYGWIN} test prerequisites
|
|
long before negated prerequisites e.g. !MINGW were invented.
|
|
The former has been converted to the latter to avoid confusion.
|
|
|
|
* Looking up remotes configuration in a repository with very many
|
|
remotes defined has been optimized.
|
|
|
|
* There are cases where you lock and open to write a file, close it
|
|
to show the updated contents to external processes, and then have
|
|
to update the file again while still holding the lock, but the
|
|
lockfile API lacked support for such an access pattern.
|
|
|
|
* The API to allocate the structure to keep track of commit
|
|
decoration has been updated to make it less cumbersome to use.
|
|
|
|
* An in-core caching layer to let us avoid reading the same
|
|
configuration files number of times has been added. A few commands
|
|
have been converted to use this subsystem.
|
|
|
|
* Various code paths have been cleaned up and simplified by using
|
|
"strbuf", "starts_with()", and "skip_prefix()" APIs more.
|
|
|
|
* A few codepaths that died when large blobs that would not fit in
|
|
core are involved in their operation have been taught to punt
|
|
instead, by e.g. marking too large a blob as not to be diffed.
|
|
|
|
* A few more code paths in "commit" and "checkout" have been taught
|
|
to repopulate the cache-tree in the index, to help speed up later
|
|
"write-tree" (used in "commit") and "diff-index --cached" (used in
|
|
"status").
|
|
|
|
|
|
Also contains various documentation updates and code clean-ups.
|
|
|
|
|
|
Fixes since v2.1
|
|
----------------
|
|
|
|
Unless otherwise noted, all the fixes since v2.1 in the maintenance
|
|
track are contained in this release (see the maintenance releases'
|
|
notes for details).
|
|
|
|
* "git log --pretty/format=" with an empty format string did not
|
|
mean the more obvious "No output whatsoever" but "Use default
|
|
format", which was counterintuitive.
|
|
(merge b9c7d6e jk/pretty-empty-format later to maint).
|
|
|
|
* Implementations of "tar" that do not understand an extended pax
|
|
header would extract the contents of it in a regular file; make
|
|
sure the permission bits of this file follows the same tar.umask
|
|
configuration setting.
|
|
|
|
* "git -c section.var command" and "git -c section.var= command"
|
|
should pass the configuration differently (the former should be a
|
|
boolean true, the latter should be an empty string).
|
|
(merge a789ca7 jk/command-line-config-empty-string later to maint).
|
|
|
|
* Applying a patch not generated by Git in a subdirectory used to
|
|
check the whitespace breakage using the attributes for incorrect
|
|
paths. Also whitespace checks were performed even for paths
|
|
excluded via "git apply --exclude=<path>" mechanism.
|
|
(merge 477a08a jc/apply-ws-prefix later to maint).
|
|
|
|
* "git bundle create" with date-range specification were meant to
|
|
exclude tags outside the range, but it didn't.
|
|
(merge 2c8544a lf/bundle-exclusion later to maint).
|
|
|
|
* "git add x" where x that used to be a directory has become a
|
|
symbolic link to a directory misbehaved.
|
|
(merge ccad42d rs/refresh-beyond-symlink later to maint).
|
|
|
|
* The prompt script checked $GIT_DIR/ref/stash file to see if there
|
|
is a stash, which was a no-no.
|
|
(merge 0fa7f01 jk/prompt-stash-could-be-packed later to maint).
|
|
|
|
* Pack-protocol documentation had a minor typo.
|
|
(merge 5d146f7 sp/pack-protocol-doc-on-shallow later to maint).
|
|
|
|
* "git checkout -m" did not switch to another branch while carrying
|
|
the local changes forward when a path was deleted from the index.
|
|
(merge 6a143aa jn/unpack-trees-checkout-m-carry-deletion later to maint).
|
|
|
|
* With sufficiently long refnames, "git fast-import" could have
|
|
overflown an on-stack buffer.
|
|
(merge c252785 jk/fast-import-fixes later to maint).
|
|
|
|
* After "pack-refs --prune" packed refs at the top-level, it failed
|
|
to prune them.
|
|
(merge afd11d3 jk/prune-top-level-refs-after-packing later to maint).
|
|
|
|
* Progress output from "git gc --auto" was visible in "git fetch -q".
|
|
(merge 6fceed3 nd/fetch-pass-quiet-to-gc-child-process later to maint).
|
|
|
|
* We used to pass -1000 to poll(2), expecting it to also mean "no
|
|
timeout", which should be spelled as -1.
|
|
(merge 6c71f8b et/spell-poll-infinite-with-minus-one-only later to maint).
|