Merge branch 'rs/git-gui-use-modern-git-merge-syntax' into maint
[gitweb.git] / Documentation / RelNotes / 2.10.0.txt
index 179e5751d8cd8cdc3abddaf9683956c4ad572ce9..f4da28ab669034e2e047c43cf939af795f1f3ba2 100644 (file)
@@ -77,7 +77,8 @@ UI, Workflows & Features
  * "git archive" learned to handle files that are larger than 8GB and
    commits far in the future than expressible by the traditional US-TAR
    format.
-   (merge 5caeeb8 jk/big-and-future-archive-tar later to maint).
+   (merge 560b0e8 jk/big-and-future-archive-tar later to maint).
+
 
  * A new configuration variable core.sshCommand has been added to
    specify what value for GIT_SSH_COMMAND to use per repository.
@@ -118,6 +119,15 @@ UI, Workflows & Features
    "git branch --delete/--move [--remote]".
    (merge 2703c22 vs/completion-branch-fully-spelled-d-m-r later to maint).
 
+ * "git rev-parse --git-path hooks/<hook>" learned to take
+   core.hooksPath configuration variable (introduced during 2.9 cycle)
+   into account.
+   (merge 9445b49 ab/hooks later to maint).
+
+ * "git log --show-signature" and other commands that display the
+   verification status of PGP signature now shows the longer key-id,
+   as 32-bit key-id is so last century.
+
 
 Performance, Internal Implementation, Development Support etc.
 
@@ -170,7 +180,7 @@ Performance, Internal Implementation, Development Support etc.
    the standard output and the standard error of an external process,
    which is cumbersome to hand-roll correctly without deadlocking.
 
  The codepath to sign data in a prepared buffer with GPG has been
* The codepath to sign data in a prepared buffer with GPG has been
    updated to use this API to read from the status-fd to check for
    errors (instead of relying on GPG's exit status).
    (merge efee955 jk/gpg-interface-cleanup later to maint).
@@ -235,15 +245,17 @@ Performance, Internal Implementation, Development Support etc.
  * The API to iterate over all the refs (i.e. for_each_ref(), etc.)
    has been revamped.
 
- * The handling of the "text = auto" attribute has been updated.
+ * The handling of the "text=auto" attribute has been corrected.
    $ echo "* text=auto eol=crlf" >.gitattributes
    used to have the same effect as
-   $ echo "* text=auto eol=crlf" >.gitattributes
-   $ git config core.eol crlf
-   i.e. declaring all files are text; the combination now is
-   equivalent to doing
+   $ echo "* text eol=crlf" >.gitattributes
+   i.e. declaring all files are text (ignoring "auto").  The
+   combination has been fixed to be equivalent to doing
    $ git config core.autocrlf true
 
+ * Documentation has been updated to show better example usage
+   of the updated "text=auto" attribute.
+
  * A few tests that specifically target "git rebase -i" have been
    added.
 
@@ -295,7 +307,14 @@ Performance, Internal Implementation, Development Support etc.
    changes and attempts to find matches. This has been optimized by
    lazily computing the full patch-id (which is expensive) to be
    compared only for changes that touch the same set of paths.
-   (merge b3dfeeb kw/patch-ids-optim later to maint).
+   (merge ba67504 kw/patch-ids-optim later to maint).
+
+ * A handful of tests that were broken under gettext-poison build have
+   been fixed.
+
+ * The recent i18n patch we added during this cycle did a bit too much
+   refactoring of the messages to avoid word-legos; the repetition has
+   been reduced to help translators.
 
 
 Also contains various documentation updates and code clean-ups.
@@ -552,7 +571,7 @@ notes for details).
    caused tests in t7063 to fail because it wanted to verify the
    behaviour of the fast-path.
 
- * Squelch compiler warnings for netmalloc (in compat/) library.
+ * Squelch compiler warnings for nedmalloc (in compat/) library.
 
  * A small memory leak in the command line parsing of "git blame"
    has been plugged.
@@ -591,7 +610,66 @@ notes for details).
    that strips the trailing slash of '/'.
    (merge 189d035 js/mv-dir-to-new-directory later to maint).
 
+ * The "t/" hierarchy is prone to get an unusual pathname; "make test"
+   has been taught to make sure they do not contain paths that cannot
+   be checked out on Windows (and the mechanism can be reusable to
+   catch pathnames that are not portable to other platforms as need
+   arises).
+   (merge c2cafd3 js/test-lint-pathname later to maint).
+
+ * When "git merge-recursive" works on history with many criss-cross
+   merges in "verbose" mode, the names the command assigns to the
+   virtual merge bases could have overwritten each other by unintended
+   reuse of the same piece of memory.
+   (merge 5447a76 rs/pull-signed-tag later to maint).
+
+ * "git checkout --detach <branch>" used to give the same advice
+   message as that is issued when "git checkout <tag>" (or anything
+   that is not a branch name) is given, but asking with "--detach" is
+   an explicit enough sign that the user knows what is going on.  The
+   advice message has been squelched in this case.
+   (merge 779b88a sb/checkout-explit-detach-no-advice later to maint).
+
+ * "git difftool" by default ignores the error exit from the backend
+   commands it spawns, because often they signal that they found
+   differences by exiting with a non-zero status code just like "diff"
+   does; the exit status codes 126 and above however are special in
+   that they are used to signal that the command is not executable,
+   does not exist, or killed by a signal.  "git difftool" has been
+   taught to notice these exit status codes.
+   (merge 45a4f5d jk/difftool-command-not-found later to maint).
+
+ * On Windows, help.browser configuration variable used to be ignored,
+   which has been corrected.
+   (merge 6db5967 js/no-html-bypass-on-windows later to maint).
+
+ * The "git -c var[=val] cmd" facility to append a configuration
+   variable definition at the end of the search order was described in
+   git(1) manual page, but not in git-config(1), which was more likely
+   place for people to look for when they ask "can I make a one-shot
+   override, and if so how?"
+   (merge ae1f709 dg/document-git-c-in-git-config-doc later to maint).
+
+ * The tempfile (hence its user lockfile) API lets the caller to open
+   a file descriptor to a temporary file, write into it and then
+   finalize it by first closing the filehandle and then either
+   removing or renaming the temporary file.  When the process spawns a
+   subprocess after obtaining the file descriptor, and if the
+   subprocess has not exited when the attempt to remove or rename is
+   made, the last step fails on Windows, because the subprocess has
+   the file descriptor still open.  Open tempfile with O_CLOEXEC flag
+   to avoid this (on Windows, this is mapped to O_NOINHERIT).
+   (merge 05d1ed6 bw/mingw-avoid-inheriting-fd-to-lockfile later to maint).
+
+ * Correct an age-old calco (is that a typo-like word for calc)
+   in the documentation.
+   (merge 7841c48 ls/packet-line-protocol-doc-fix later to maint).
+
  * Other minor clean-ups and documentation updates
    (merge 02a8cfa rs/merge-add-strategies-simplification later to maint).
    (merge af4941d rs/merge-recursive-string-list-init later to maint).
    (merge 1eb47f1 rs/use-strbuf-add-unique-abbrev later to maint).
+   (merge ddd0bfa jk/tighten-alloc later to maint).
+   (merge ecf30b2 rs/mailinfo-lib later to maint).
+   (merge 0eb75ce sg/reflog-past-root later to maint).
+   (merge 4369523 hv/doc-commit-reference-style later to maint).