Merge branch 'jk/execv-dashed-external'
[gitweb.git] / Documentation / RelNotes / 2.13.0.txt
index 5c2348db6cf66551d3e9bc009304b14b7742b275..63e2e8add9e0f40d63be28a208548a658f52f961 100644 (file)
@@ -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,9 @@ 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
@@ -147,13 +177,24 @@ Performance, Internal Implementation, Development Support etc.
 
  * Add 32-bit Linux variant to the set of platforms to be tested with
    Travis CI.
-   (merge 88dedd5e72 js/travis-32bit-linux later to maint).
 
  * "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.
 
@@ -184,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
@@ -193,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
@@ -218,48 +255,39 @@ 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).
@@ -289,9 +317,32 @@ notes for details).
    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).