aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/RelNotes/2.13.0.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/RelNotes/2.13.0.txt')
-rw-r--r--Documentation/RelNotes/2.13.0.txt139
1 files changed, 116 insertions, 23 deletions
diff --git a/Documentation/RelNotes/2.13.0.txt b/Documentation/RelNotes/2.13.0.txt
index 8d5e887c16..63e2e8add9 100644
--- a/Documentation/RelNotes/2.13.0.txt
+++ b/Documentation/RelNotes/2.13.0.txt
@@ -77,7 +77,6 @@ UI, Workflows & Features
unlike in the e-mail header. "git send-email" has been updated to
ignore anything after '>' when picking addresses, to allow non-address
cruft like " # stable 4.4" after the address.
- (merge 9d3343961b jh/send-email-one-cc later to maint).
* When "git submodule init" decides that the submodule in the working
tree is its upstream, it now gives a warning as it is not a very
@@ -90,6 +89,41 @@ UI, Workflows & Features
* Documentation for "git ls-files" did not refer to core.quotePath.
+ * The experimental "split index" feature has gained a few
+ configuration variables to make it easier to use.
+
+ * From a working tree of a repository, a new option of "rev-parse"
+ lets you ask if the repository is used as a submodule of another
+ project, and where the root level of the working tree of that
+ project (i.e. your superproject) is.
+
+ * The pathspec mechanism learned to further limit the paths that
+ match the pattern to those that have specified attributes attached
+ via the gitattributes mechanism.
+
+ * Our source code has used the SHA1_HEADER cpp macro after "#include"
+ in the C code to switch among the SHA-1 implementations. Instead,
+ list the exact header file names and switch among implementations
+ using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif";
+ this helps some IDE tools.
+
+ * The start-up sequence of "git" needs to figure out some configured
+ settings before it finds and set itself up in the location of the
+ repository and was quite messy due to its "chicken-and-egg" nature.
+ The code has been restructured.
+
+ * The command line prompt (in contrib/) learned a new 'tag' style
+ that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a
+ detached HEAD with "git describe --tags".
+
+ * The configuration file learned a new "includeIf.<condition>.path"
+ that includes the contents of the given path only when the
+ condition holds. This allows you to say "include this work-related
+ bit only in the repositories under my ~/work/ directory".
+
+ * Recent update to "rebase -i" started showing a message that is not
+ a warning with "warning:" prefix by mistake. This has been fixed.
+
Performance, Internal Implementation, Development Support etc.
@@ -118,11 +152,9 @@ Performance, Internal Implementation, Development Support etc.
* A test that creates a confusing branch whose name is HEAD has been
corrected not to do so.
- (merge f0252ca23c jk/t6300-cleanup later to maint).
* The code that parses header fields in the commit object has been
updated for (micro)performance and code hygiene.
- (merge b072504ce1 rs/commit-parsing-optim later to maint).
* An helper function to make it easier to append the result from
real_path() to a strbuf has been added.
@@ -134,11 +166,34 @@ Performance, Internal Implementation, Development Support etc.
against a server that does not authenticate without a username
(i.e. not using Kerberos etc., which makes http.emptyAuth
pointless).
- (merge 40a18fc77c jk/http-auth later to maint).
* Windows port wants to use OpenSSL's implementation of SHA-1
routines, so let them.
- (merge 2cfc70f0de jh/mingw-openssl-sha1 later to maint).
+
+ * The t/perf performance test suite was not prepared to test not so
+ old versions of Git, but now it covers versions of Git that are not
+ so ancient.
+ (merge 28e1fb5466 jt/perf-updates later to maint).
+
+ * Add 32-bit Linux variant to the set of platforms to be tested with
+ Travis CI.
+
+ * "git branch --list" takes the "--abbrev" and "--no-abbrev" options
+ to control the output of the object name in its "-v"(erbose)
+ output, but a recent update started ignoring them; fix it before
+ the breakage reaches to any released version.
+
+ * Picking two versions of Git and running tests to make sure the
+ older one and the newer one interoperate happily has now become
+ possible.
+ (merge bd4d9d993c jk/interop-test later to maint).
+
+ * "uchar [40]" to "struct object_id" conversion continues.
+
+ * "git tag --contains" used to (ab)use the object bits to keep track
+ of the state of object reachability without clearing them after
+ use; this has been cleaned up and made to use the newer commit-slab
+ facility.
Also contains various documentation updates and code clean-ups.
@@ -170,7 +225,6 @@ notes for details).
* "git show-branch" expected there were only very short branch names
in the repository and used a fixed-length buffer to hold them
without checking for overflow.
- (merge d3cc5f4c44 jk/show-branch-lift-name-len-limit later to maint).
* A caller of tempfile API that uses stdio interface to write to
files may ignore errors while writing, which is detected when
@@ -179,17 +233,14 @@ notes for details).
be long gone and was overwritten by an irrelevant value.
close_tempfile() now resets errno to EIO to make errno at least
predictable.
- (merge 7e8c9355b7 jk/tempfile-ferror-fclose-confusion later to maint).
* "git remote rm X", when a branch has remote X configured as the
value of its branch.*.remote, tried to remove branch.*.remote and
branch.*.merge and failed if either is unset.
- (merge 20690b2139 rl/remote-allow-missing-branch-name-merge later to maint).
* A "gc.log" file left by a backgrounded "gc --auto" disables further
automatic gc; it has been taught to run at least once a day (by
default) by ignoring a stale "gc.log" file that is too old.
- (merge a831c06a2b dt/gc-ignore-old-gc-logs later to maint).
* The code to parse "git -c VAR=VAL cmd" and set configuration
variable for the duration of cmd had two small bugs, which have
@@ -204,52 +255,94 @@ notes for details).
report a request for a ref that was not advertised as invalid.
This is generally not a problem (because "git fetch" will stop
before making such a request), but is the right thing to do.
- (merge bdb31eada7 jt/upload-pack-error-report later to maint).
* A leak in a codepath to read from a packed object in (rare) cases
has been plugged.
- (merge 886ddf4777 rs/sha1-file-plug-fallback-base-leak later to maint).
* When a redirected http transport gets an error during the
redirected request, we ignored the error we got from the server,
and ended up giving a not-so-useful error message.
- (merge 8e27391a5f jt/http-base-url-update-upon-redirect later to maint).
* The patch subcommand of "git add -i" was meant to have paths
selection prompt just like other subcommand, unlike "git add -p"
directly jumps to hunk selection. Recently, this was broken and
"add -i" lost the paths selection dialog, but it now has been
fixed.
- (merge c852bd54bd jk/add-i-patch-do-prompt later to maint).
* Git v2.12 was shipped with an embarrassing breakage where various
operations that verify paths given from the user stopped dying when
seeing an issue, and instead later triggering segfault.
- (merge ce83eadd9a js/realpath-pathdup-fix later to maint).
* There is no need for Python only to give a few messages to the
standard error stream, but we somehow did.
- (merge b8686c661d ss/remote-bzr-hg-placeholder-wo-python later to maint).
* The code to parse "git log -L..." command line was buggy when there
are many ranges specified with -L; overrun of the allocated buffer
has been fixed.
- (merge aaae0bf787 ax/line-log-range-merge-fix later to maint).
* The command-line parsing of "git log -L" copied internal data
structures using incorrect size on ILP32 systems.
- (merge 07f546cda5 vn/line-log-memcpy-size-fix later to maint).
* "git diff --quiet" relies on the size field in diff_filespec to be
correctly populated, but diff_populate_filespec() helper function
made an incorrect short-cut when asked only to populate the size
field for paths that need to go through convert_to_git() (e.g. CRLF
conversion).
- (merge 12426e114b jc/diff-populate-filespec-size-only-fix later to maint).
+
+ * A few tests were run conditionally under (rare) conditions where
+ they cannot be run (like running cvs tests under 'root' account).
+ (merge c6507484a2 ab/cond-skip-tests later to maint).
+
+ * "git branch @" created refs/heads/@ as a branch, and in general the
+ code that handled @{-1} and @{upstream} was a bit too loose in
+ disambiguating.
+ (merge fd4692ff70 jk/interpret-branch-name later to maint).
+
+ * "git fetch" that requests a commit by object name, when the other
+ side does not allow such an request, failed without much
+ explanation.
+ (merge d56583ded6 mm/fetch-show-error-message-on-unadvertised-object later to maint).
+
+ * "git filter-branch --prune-empty" drops a single-parent commit that
+ becomes a no-op, but did not drop a root commit whose tree is empty.
+ (merge 32da7467eb dp/filter-branch-prune-empty later to maint).
+
+ * Recent versions of Git treats http alternates (used in dumb http
+ transport) just like HTTP redirects and requires the client to
+ enable following it, due to security concerns. But we forgot to
+ give a warning when we decide not to honor the alternates.
+ (merge 5cae73d5d2 ew/http-alternates-as-redirects-warning later to maint).
+
+ * "git push" had a handful of codepaths that could lead to a deadlock
+ when unexpected error happened, which has been fixed.
+ (merge d1a13d3fcb jk/push-deadlock-regression-fix later to maint).
+
+ * "Dumb http" transport used to misparse a nonsense http-alternates
+ response, which has been fixed.
+
+ * "git add -p <pathspec>" unnecessarily expanded the pathspec to a
+ list of individual files that matches the pathspec by running "git
+ ls-files <pathspec>", before feeding it to "git diff-index" to see
+ which paths have changes, because historically the pathspec
+ language supported by "diff-index" was weaker. These days they are
+ equivalent and there is no reason to internally expand it. This
+ helps both performance and avoids command line argument limit on
+ some platforms.
+ (merge 7288e12cce jk/add-i-use-pathspecs later to maint).
+
+ * "git status --porcelain" is supposed to give a stable output, but a
+ few strings were left as translatable by mistake.
+
+ * Code to read submodule.<name>.ignore config did not state the
+ variable name correctly when giving an error message diagnosing
+ misconfiguration.
+ (merge 5ea304896e sb/submodule-config-parse-ignore-fix later to maint).
* Other minor doc, test and build updates and code cleanups.
- (merge 2cfa83574c mm/two-more-xstrfmt later to maint).
- (merge b803ae4427 ps/docs-diffcore later to maint).
- (merge bcd886d897 ew/markdown-url-in-readme later to maint).
- (merge b2d593a779 rj/remove-unused-mktemp later to maint).
- (merge 3255e512a8 jk/ewah-use-right-type-in-sizeof later to maint).
+ (merge dfa3ad3238 rs/blame-code-cleanup later to maint).
+ (merge ffddfc6328 jk/rev-parse-cleanup later to maint).
+ (merge f20754802a jk/pack-name-cleanups later to maint).
+ (merge d4aae459cd sb/wt-status-cleanup later to maint).
+ (merge 2c7ee986c7 ab/doc-no-option-notation-fix later to maint).
+ (merge e4e016f65d ab/push-default-doc-fix later to maint).
+ (merge baced9e4e5 nd/commit-hook-doc-fix later to maint).