Documentation / RelNotes / 2.10.1.txton commit The sixth batch (9c9b961)
   1Git v2.10.1 Release Notes
   2=========================
   3
   4Fixes since v2.10
   5-----------------
   6
   7 * Clarify various ways to specify the "revision ranges" in the
   8   documentation.
   9
  10 * "diff-highlight" script (in contrib/) learned to work better with
  11   "git log -p --graph" output.
  12
  13 * The test framework left the number of tests and success/failure
  14   count in the t/test-results directory, keyed by the name of the
  15   test script plus the process ID.  The latter however turned out not
  16   to serve any useful purpose.  The process ID part of the filename
  17   has been removed.
  18
  19 * Having a submodule whose ".git" repository is somehow corrupt
  20   caused a few commands that recurse into submodules loop forever.
  21
  22 * "git symbolic-ref -d HEAD" happily removes the symbolic ref, but
  23   the resulting repository becomes an invalid one.  Teach the command
  24   to forbid removal of HEAD.
  25
  26 * A test spawned a short-lived background process, which sometimes
  27   prevented the test directory from getting removed at the end of the
  28   script on some platforms.
  29
  30 * Update a few tests that used to use GIT_CURL_VERBOSE to use the
  31   newer GIT_TRACE_CURL.
  32
  33 * Update Japanese translation for "git-gui".
  34
  35 * "git fetch http::/site/path" did not die correctly and segfaulted
  36   instead.
  37
  38 * "git commit-tree" stopped reading commit.gpgsign configuration
  39   variable that was meant for Porcelain "git commit" in Git 2.9; we
  40   forgot to update "git gui" to look at the configuration to match
  41   this change.
  42
  43 * "git log --cherry-pick" used to include merge commits as candidates
  44   to be matched up with other commits, resulting a lot of wasted time.
  45   The patch-id generation logic has been updated to ignore merges to
  46   avoid the wastage.
  47
  48 * The http transport (with curl-multi option, which is the default
  49   these days) failed to remove curl-easy handle from a curlm session,
  50   which led to unnecessary API failures.
  51
  52 * "git diff -W" output needs to extend the context backward to
  53   include the header line of the current function and also forward to
  54   include the body of the entire current function up to the header
  55   line of the next one.  This process may have to merge to adjacent
  56   hunks, but the code forgot to do so in some cases.
  57
  58 * Performance tests done via "t/perf" did not use the same set of
  59   build configuration if the user relied on autoconf generated
  60   configuration.
  61
  62 * "git format-patch --base=..." feature that was recently added
  63   showed the base commit information after "-- " e-mail signature
  64   line, which turned out to be inconvenient.  The base information
  65   has been moved above the signature line.
  66
  67 * Even when "git pull --rebase=preserve" (and the underlying "git
  68   rebase --preserve") can complete without creating any new commit
  69   (i.e. fast-forwards), it still insisted on having a usable ident
  70   information (read: user.email is set correctly), which was less
  71   than nice.  As the underlying commands used inside "git rebase"
  72   would fail with a more meaningful error message and advice text
  73   when the bogus ident matters, this extra check was removed.
  74
  75 * "git gc --aggressive" used to limit the delta-chain length to 250,
  76   which is way too deep for gaining additional space savings and is
  77   detrimental for runtime performance.  The limit has been reduced to
  78   50.
  79
  80 * Documentation for individual configuration variables to control use
  81   of color (like `color.grep`) said that their default value is
  82   'false', instead of saying their default is taken from `color.ui`.
  83   When we updated the default value for color.ui from 'false' to
  84   'auto' quite a while ago, all of them broke.  This has been
  85   corrected.
  86
  87 * A shell script example in check-ref-format documentation has been
  88   fixed.
  89
  90 * "git checkout <word>" does not follow the usual disambiguation
  91   rules when the <word> can be both a rev and a path, to allow
  92   checking out a branch 'foo' in a project that happens to have a
  93   file 'foo' in the working tree without having to disambiguate.
  94   This was poorly documented and the check was incorrect when the
  95   command was run from a subdirectory.
  96
  97 * Some codepaths in "git diff" used regexec(3) on a buffer that was
  98   mmap(2)ed, which may not have a terminating NUL, leading to a read
  99   beyond the end of the mapped region.  This was fixed by introducing
 100   a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
 101   extension.
 102
 103 * The procedure to build Git on Mac OS X for Travis CI hardcoded the
 104   internal directory structure we assumed HomeBrew uses, which was a
 105   no-no.  The procedure has been updated to ask HomeBrew things we
 106   need to know to fix this.
 107
 108 * When "git rebase -i" is given a broken instruction, it told the
 109   user to fix it with "--edit-todo", but didn't say what the step
 110   after that was (i.e. "--continue").
 111
 112 * "git add --chmod=+x" added recently lacked documentation, which has
 113   been corrected.
 114
 115 * "git add --chmod=+x <pathspec>" added recently only toggled the
 116   executable bit for paths that are either new or modified. This has
 117   been corrected to flip the executable bit for all paths that match
 118   the given pathspec.
 119
 120 * "git pack-objects --include-tag" was taught that when we know that
 121   we are sending an object C, we want a tag B that directly points at
 122   C but also a tag A that points at the tag B.  We used to miss the
 123   intermediate tag B in some cases.
 124
 125 * Documentation around tools to import from CVS was fairly outdated.
 126
 127 * In the codepath that comes up with the hostname to be used in an
 128   e-mail when the user didn't tell us, we looked at ai_canonname
 129   field in struct addrinfo without making sure it is not NULL first.
 130
 131Also contains minor documentation updates and code clean-ups.