Documentation / RelNotes / 2.10.0.txton commit Merge branch 'jk/string-list-static-init' (b8b6365)
   1Git 2.10 Release Notes
   2======================
   3
   4Backward compatibility notes
   5----------------------------
   6
   7Updates since v2.9
   8------------------
   9
  10UI, Workflows & Features
  11
  12 * "git pull --rebase --verify-signature" learned to warn the user
  13   that "--verify-signature" is a no-op when rebasing.
  14
  15 * An upstream project can make a recommendation to shallowly clone
  16   some submodules in the .gitmodules file it ships.
  17
  18 * "git worktree add" learned that '-' can be used as a short-hand for
  19   "@{-1}", the previous branch.
  20
  21 * Update the funcname definition to support css files.
  22
  23 * The completion script (in contrib/) learned to complete "git
  24   status" options.
  25
  26 * Messages that are generated by auto gc during "git push" on the
  27   receiving end are now passed back to the sending end in such a way
  28   that they are shown with "remote: " prefix to avoid confusing the
  29   users.
  30
  31Performance, Internal Implementation, Development Support etc.
  32
  33 * "git fast-import" learned the same performance trick to avoid
  34   creating too small a packfile as "git fetch" and "git push" have,
  35   using *.unpackLimit configuration.
  36
  37 * When "git daemon" is run without --[init-]timeout specified, a
  38   connection from a client that silently goes offline can hang around
  39   for a long time, wasting resources.  The socket-level KEEPALIVE has
  40   been enabled to allow the OS to notice such failed connections.
  41   (merge a43b68a ew/daemon-socket-keepalive later to maint).
  42
  43 * "git upload-pack" command has been updated to use the parse-options
  44   API.
  45
  46 * The "git apply" standalone program is being libified; this is the
  47   first step to move many state variables into a structure that can
  48   be explicitly (re)initialized to make the machinery callable more
  49   than once.
  50
  51
  52Also contains various documentation updates and code clean-ups.
  53
  54
  55Fixes since v2.9
  56----------------
  57
  58Unless otherwise noted, all the fixes since v2.8 in the maintenance
  59track are contained in this release (see the maintenance releases'
  60notes for details).
  61
  62 * The commands in `git log` family take %C(auto) in a custom format
  63   string.  This unconditionally turned the color on, ignoring
  64   --no-color or with --color=auto when the output is not connected to
  65   a tty; this was corrected to make the format truly behave as
  66   "auto".
  67   (merge b15a3e0 et/pretty-format-c-auto later to maint).
  68
  69 * "git rev-list --count" whose walk-length is limited with "-n"
  70   option did not work well with the counting optimized to look at the
  71   bitmap index.
  72   (merge fb85db8 jk/rev-list-count-with-bitmap later to maint).
  73
  74 * "git show -W" (extend hunks to cover the entire function, delimited
  75   by lines that match the "funcname" pattern) used to show the entire
  76   file when a change added an entire function at the end of the file,
  77   which has been fixed.
  78   (merge 6f8d9bc rs/xdiff-hunk-with-func-line later to maint).
  79
  80 * The documentation set has been updated so that literal commands,
  81   configuration variables and environment variables are consistently
  82   typeset in fixed-width font and bold in manpages.
  83   (merge ae9f631 tr/doc-tt later to maint).
  84
  85 * "git svn propset" subcommand that was added in 2.3 days is
  86   documented now.
  87   (merge 19a7f24 ap/git-svn-propset-doc later to maint).
  88
  89 * The documentation tries to consistently spell "GPG"; when
  90   referring to the specific program name, "gpg" is used.
  91   (merge bc91316 dn/gpg-doc later to maint).
  92
  93 * "git reflog" stopped upon seeing an entry that denotes a branch
  94   creation event (aka "unborn"), which made it appear as if the
  95   reflog was truncated.
  96   (merge 71abeb7 sg/reflog-past-root later to maint).
  97
  98 * The git-prompt scriptlet (in contrib/) was not friendly with those
  99   who uses "set -u", which has been fixed.
 100   (merge 34d8f5a vs/prompt-avoid-unset-variable later to maint).
 101
 102 * compat/regex code did not cleanly compile.
 103   (merge bd8f005 rj/compat-regex-size-max-fix later to maint).
 104
 105 * A codepath that used alloca(3) to place an unbounded amount of data
 106   on the stack has been updated to avoid doing so.
 107   (merge b8ba412 jk/avoid-unbounded-alloca later to maint).
 108
 109 * "git update-index --add --chmod=+x file" may be usable as an escape
 110   hatch, but not a friendly thing to force for people who do need to
 111   use it regularly.  "git add --chmod=+x file" can be used instead.
 112   (merge 4e55ed3 et/add-chmod-x later to maint).
 113
 114 * Build improvements for gnome-keyring (in contrib/)
 115   (merge 3cddb00 nb/gnome-keyring-build later to maint).
 116
 117 * "git status" used to say "working directory" when it meant "working
 118   tree".
 119   (merge 2a0e6cd lv/status-say-working-tree-not-directory later to maint).
 120
 121 * Comments about misbehaving FreeBSD shells have been clarified with
 122   the version number (9.x and before are broken, newer ones are OK).
 123   (merge 9b35cad em/newer-freebsd-shells-are-fine-with-returns later to maint).
 124
 125 * "git cherry-pick A" worked on an unborn branch, but "git
 126   cherry-pick A..B" didn't.
 127   (merge 0f974e2 mg/cherry-pick-multi-on-unborn later to maint).
 128
 129 * Other minor clean-ups and documentation updates
 130   (merge 3a39f61 pc/occurred later to maint).
 131   (merge 9e70233 jk/fetch-prune-doc later to maint).
 132   (merge ed008d7 pb/strbuf-read-file-doc later to maint).
 133   (merge 31da121 jc/deref-tag later to maint).