Documentation / RelNotes / 2.11.1.txton commit Merge branch 'sg/git-test-boolean' (2be6ccc)
   1Git v2.11.1 Release Notes
   2=========================
   3
   4Fixes since v2.11
   5-----------------
   6
   7 * The default Travis-CI configuration specifies newer P4 and GitLFS.
   8
   9 * The character width table has been updated to match Unicode 9.0
  10
  11 * Update the isatty() emulation for Windows by updating the previous
  12   hack that depended on internals of (older) MSVC runtime.
  13
  14 * "git rev-parse --symbolic" failed with a more recent notation like
  15   "HEAD^-1" and "HEAD^!".
  16
  17 * An empty directory in a working tree that can simply be nuked used
  18   to interfere while merging or cherry-picking a change to create a
  19   submodule directory there, which has been fixed..
  20
  21 * The code in "git push" to compute if any commit being pushed in the
  22   superproject binds a commit in a submodule that hasn't been pushed
  23   out was overly inefficient, making it unusable even for a small
  24   project that does not have any submodule but have a reasonable
  25   number of refs.
  26
  27 * "git push --dry-run --recurse-submodule=on-demand" wasn't
  28   "--dry-run" in the submodules.
  29
  30 * The output from "git worktree list" was made in readdir() order,
  31   and was unstable.
  32
  33 * mergetool.<tool>.trustExitCode configuration variable did not apply
  34   to built-in tools, but now it does.
  35
  36 * "git p4" LFS support was broken when LFS stores an empty blob.
  37
  38 * Fix a corner case in merge-recursive regression that crept in
  39   during 2.10 development cycle.
  40
  41 * Update the error messages from the dumb-http client when it fails
  42   to obtain loose objects; we used to give sensible error message
  43   only upon 404 but we now forbid unexpected redirects that needs to
  44   be reported with something sensible.
  45
  46 * When diff.renames configuration is on (and with Git 2.9 and later,
  47   it is enabled by default, which made it worse), "git stash"
  48   misbehaved if a file is removed and another file with a very
  49   similar content is added.
  50
  51 * "git diff --no-index" did not take "--no-abbrev" option.
  52
  53 * "git difftool --dir-diff" had a minor regression when started from
  54   a subdirectory, which has been fixed.
  55
  56 * "git commit --allow-empty --only" (no pathspec) with dirty index
  57   ought to be an acceptable way to create a new commit that does not
  58   change any paths, but it was forbidden, perhaps because nobody
  59   needed it so far.
  60
  61 * A pathname that begins with "//" or "\\" on Windows is special but
  62   path normalization logic was unaware of it.
  63
  64 * "git pull --rebase", when there is no new commits on our side since
  65   we forked from the upstream, should be able to fast-forward without
  66   invoking "git rebase", but it didn't.
  67
  68 * The way to specify hotkeys to "xxdiff" that is used by "git
  69   mergetool" has been modernized to match recent versions of xxdiff.
  70
  71 * Unlike "git am --abort", "git cherry-pick --abort" moved HEAD back
  72   to where cherry-pick started while picking multiple changes, when
  73   the cherry-pick stopped to ask for help from the user, and the user
  74   did "git reset --hard" to a different commit in order to re-attempt
  75   the operation.
  76
  77 * Code cleanup in shallow boundary computation.
  78
  79 * A recent update to receive-pack to make it easier to drop garbage
  80   objects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot
  81   have a pathname with a colon in it (no surprise!), and this in turn
  82   made it impossible to push into a repository at such a path.  This
  83   has been fixed by introducing a quoting mechanism used when
  84   appending such a path to the colon-separated list.
  85
  86 * The function usage_msg_opt() has been updated to say "fatal:"
  87   before the custom message programs give, when they want to die
  88   with a message about wrong command line options followed by the
  89   standard usage string.
  90
  91 * "git index-pack --stdin" needs an access to an existing repository,
  92   but "git index-pack file.pack" to generate an .idx file that
  93   corresponds to a packfile does not.
  94
  95 * Fix for NDEBUG builds.
  96
  97 * A lazy "git push" without refspec did not internally use a fully
  98   specified refspec to perform 'current', 'simple', or 'upstream'
  99   push, causing unnecessary "ambiguous ref" errors.
 100
 101 * "git p4" misbehaved when swapping a directory and a symbolic link.
 102
 103 * Even though an fix was attempted in Git 2.9.3 days, but running
 104   "git difftool --dir-diff" from a subdirectory never worked. This
 105   has been fixed.
 106
 107 * "git p4" that tracks multile p4 paths imported a single changelist
 108   that touches files in these multiple paths as one commit, followed
 109   by many empty commits.  This has been fixed.
 110
 111 * A potential but unlikely buffer overflow in Windows port has been
 112   fixed.
 113
 114 * When the http server gives an incomplete response to a smart-http
 115   rpc call, it could lead to client waiting for a full response that
 116   will never come.  Teach the client side to notice this condition
 117   and abort the transfer.
 118
 119 * Some platforms no longer understand "latin-1" that is still seen in
 120   the wild in e-mail headers; replace them with "iso-8859-1" that is
 121   more widely known when conversion fails from/to it.
 122
 123 * Update the procedure to generate "tags" for developer support.
 124
 125 * Update the definition of the MacOSX test environment used by
 126   TravisCI.
 127
 128 * A few git-svn updates.
 129
 130 * Compression setting for producing packfiles were spread across
 131   three codepaths, one of which did not honor any configuration.
 132   Unify these so that all of them honor core.compression and
 133   pack.compression variables the same way.
 134
 135 * "git fast-import" sometimes mishandled while rebalancing notes
 136   tree, which has been fixed.
 137
 138 * Recent update to the default abbreviation length that auto-scales
 139   lacked documentation update, which has been corrected.
 140
 141 * Leakage of lockfiles in the config subsystem has been fixed.
 142
 143 * It is natural that "git gc --auto" may not attempt to pack
 144   everything into a single pack, and there is no point in warning
 145   when the user has configured the system to use the pack bitmap,
 146   leading to disabling further "gc".
 147
 148 * "git archive" did not read the standard configuration files, and
 149   failed to notice a file that is marked as binary via the userdiff
 150   driver configuration.
 151
 152 * "git blame --porcelain" misidentified the "previous" <commit, path>
 153   pair (aka "source") when contents came from two or more files.
 154
 155 * "git rebase -i" with a recent update started showing an incorrect
 156   count when squashing more than 10 commits.
 157
 158 * "git <cmd> @{push}" on a detached HEAD used to segfault; it has
 159   been corrected to error out with a message.
 160
 161 * Tighten a test to avoid mistaking an extended ERE regexp engine as
 162   a PRE regexp engine.
 163
 164 * Typing ^C to pager, which usually does not kill it, killed Git and
 165   took the pager down as a collateral damage in certain process-tree
 166   structure.  This has been fixed.
 167
 168Also contains various documentation updates and code clean-ups.