Documentation / RelNotes / 2.6.3.txton commit rebase --rebase-merges: root commits can be cousins, too (8fa6eea)
   1Git v2.6.3 Release Notes
   2========================
   3
   4Fixes since v2.6.2
   5------------------
   6
   7 * The error message from "git blame --contents --reverse" incorrectly
   8   talked about "--contents --children".
   9
  10 * "git merge-file" tried to signal how many conflicts it found, which
  11   obviously would not work well when there are too many of them.
  12
  13 * The name-hash subsystem that is used to cope with case insensitive
  14   filesystems keeps track of directories and their on-filesystem
  15   cases for all the paths in the index by holding a pointer to a
  16   randomly chosen cache entry that is inside the directory (for its
  17   ce->ce_name component).  This pointer was not updated even when the
  18   cache entry was removed from the index, leading to use after free.
  19   This was fixed by recording the path for each directory instead of
  20   borrowing cache entries and restructuring the API somewhat.
  21
  22 * When the "git am" command was reimplemented in C, "git am -3" had a
  23   small regression where it is aborted in its error handling codepath
  24   when underlying merge-recursive failed in some ways.
  25
  26 * The synopsis text and the usage string of subcommands that read
  27   list of things from the standard input are often shown as if they
  28   only take input from a file on a filesystem, which was misleading.
  29
  30 * A couple of commands still showed "[options]" in their usage string
  31   to note where options should come on their command line, but we
  32   spell that "[<options>]" in most places these days.
  33
  34 * The submodule code has been taught to work better with separate
  35   work trees created via "git worktree add".
  36
  37 * When "git gc --auto" is backgrounded, its diagnosis message is
  38   lost.  It now is saved to a file in $GIT_DIR and is shown next time
  39   the "gc --auto" is run.
  40
  41 * Work around "git p4" failing when the P4 depot records the contents
  42   in UTF-16 without UTF-16 BOM.
  43
  44 * Recent update to "rebase -i" that tries to sanity check the edited
  45   insn sheet before it uses it has become too picky on Windows where
  46   CRLF left by the editor is turned into a trailing CR on the line
  47   read via the "read" built-in command.
  48
  49 * "git clone --dissociate" runs a big "git repack" process at the
  50   end, and it helps to close file descriptors that are open on the
  51   packs and their idx files before doing so on filesystems that
  52   cannot remove a file that is still open.
  53
  54 * Correct "git p4 --detect-labels" so that it does not fail to create
  55   a tag that points at a commit that is also being imported.
  56
  57 * The internal stripspace() function has been moved to where it
  58   logically belongs to, i.e. strbuf API, and the command line parser
  59   of "git stripspace" has been updated to use the parse_options API.
  60
  61 * Prepare for Git on-disk repository representation to undergo
  62   backward incompatible changes by introducing a new repository
  63   format version "1", with an extension mechanism.
  64
  65 * "git gc" used to barf when a symbolic ref has gone dangling
  66   (e.g. the branch that used to be your upstream's default when you
  67   cloned from it is now gone, and you did "fetch --prune").
  68
  69 * The normalize_ceiling_entry() function does not muck with the end
  70   of the path it accepts, and the real world callers do rely on that,
  71   but a test insisted that the function drops a trailing slash.
  72
  73 * "git gc" is safe to run anytime only because it has the built-in
  74   grace period to protect young objects.  In order to run with no
  75   grace period, the user must make sure that the repository is
  76   quiescent.
  77
  78 * A recent "filter-branch --msg-filter" broke skipping of the commit
  79   object header, which is fixed.
  80
  81 * "git --literal-pathspecs add -u/-A" without any command line
  82   argument misbehaved ever since Git 2.0.
  83
  84 * Merging a branch that removes a path and another that changes the
  85   mode bits on the same path should have conflicted at the path, but
  86   it didn't and silently favoured the removal.
  87
  88 * "git imap-send" did not compile well with older version of cURL library.
  89
  90 * The linkage order of libraries was wrong in places around libcurl.
  91
  92 * It was not possible to use a repository-lookalike created by "git
  93   worktree add" as a local source of "git clone".
  94
  95 * When "git send-email" wanted to talk over Net::SMTP::SSL,
  96   Net::Cmd::datasend() did not like to be fed too many bytes at the
  97   same time and failed to send messages.  Send the payload one line
  98   at a time to work around the problem.
  99
 100 * We peek objects from submodule's object store by linking it to the
 101   list of alternate object databases, but the code to do so forgot to
 102   correctly initialize the list.
 103
 104 * "git status --branch --short" accessed beyond the constant string
 105   "HEAD", which has been corrected.
 106
 107 * "git daemon" uses "run_command()" without "finish_command()", so it
 108   needs to release resources itself, which it forgot to do.
 109
 110Also contains typofixes, documentation updates and trivial code
 111clean-ups.