| 1 | Git v2.19.2 Release Notes |
| 2 | ========================= |
| 3 | |
| 4 | Fixes since v2.19.1 |
| 5 | ------------------- |
| 6 | |
| 7 | * "git interpret-trailers" and its underlying machinery had a buggy |
| 8 | code that attempted to ignore patch text after commit log message, |
| 9 | which triggered in various codepaths that will always get the log |
| 10 | message alone and never get such an input. |
| 11 | |
| 12 | * "git rebase -i" did not clear the state files correctly when a run |
| 13 | of "squash/fixup" is aborted and then the user manually amended the |
| 14 | commit instead, which has been corrected. |
| 15 | |
| 16 | * When fsmonitor is in use, after operation on submodules updates |
| 17 | .gitmodules, we lost track of the fact that we did so and relied on |
| 18 | stale fsmonitor data. |
| 19 | |
| 20 | * Fix for a long-standing bug that leaves the index file corrupt when |
| 21 | it shrinks during a partial commit. |
| 22 | |
| 23 | * Further fix for O_APPEND emulation on Windows |
| 24 | |
| 25 | * A corner case bugfix in "git rerere" code. |
| 26 | |
| 27 | * "git add ':(attr:foo)'" is not supported and is supposed to be |
| 28 | rejected while the command line arguments are parsed, but we fail |
| 29 | to reject such a command line upfront. |
| 30 | |
| 31 | * "git rebase" etc. in Git 2.19 fails to abort when given an empty |
| 32 | commit log message as result of editing, which has been corrected. |
| 33 | |
| 34 | * The code to backfill objects in lazily cloned repository did not |
| 35 | work correctly, which has been corrected. |
| 36 | |
| 37 | * Update error messages given by "git remote" and make them consistent. |
| 38 | |
| 39 | * "git update-ref" learned to make both "--no-deref" and "--stdin" |
| 40 | work at the same time. |
| 41 | |
| 42 | * Recently added "range-diff" had a corner-case bug to cause it |
| 43 | segfault, which has been corrected. |
| 44 | |
| 45 | * The recently introduced commit-graph auxiliary data is incompatible |
| 46 | with mechanisms such as replace & grafts that "breaks" immutable |
| 47 | nature of the object reference relationship. Disable optimizations |
| 48 | based on its use (and updating existing commit-graph) when these |
| 49 | incompatible features are in use in the repository. |
| 50 | |
| 51 | * The mailmap file update. |
| 52 | |
| 53 | * The code in "git status" sometimes hit an assertion failure. This |
| 54 | was caused by a structure that was reused without cleaning the data |
| 55 | used for the first run, which has been corrected. |
| 56 | |
| 57 | * A corner-case bugfix. |
| 58 | |
| 59 | * A partial clone that is configured to lazily fetch missing objects |
| 60 | will on-demand issue a "git fetch" request to the originating |
| 61 | repository to fill not-yet-obtained objects. The request has been |
| 62 | optimized for requesting a tree object (and not the leaf blob |
| 63 | objects contained in it) by telling the originating repository that |
| 64 | no blobs are needed. |
| 65 | |
| 66 | * The codepath to support the experimental split-index mode had |
| 67 | remaining "racily clean" issues fixed. |
| 68 | |
| 69 | * "git log --graph" showing an octopus merge sometimes miscounted the |
| 70 | number of display columns it is consuming to show the merge and its |
| 71 | parent commits, which has been corrected. |
| 72 | |
| 73 | * The implementation of run_command() API on the UNIX platforms had a |
| 74 | bug that caused a command not on $PATH to be found in the current |
| 75 | directory. |
| 76 | |
| 77 | * A mutex used in "git pack-objects" were not correctly initialized |
| 78 | and this caused "git repack" to dump core on Windows. |
| 79 | |
| 80 | * Under certain circumstances, "git diff D:/a/b/c D:/a/b/d" on |
| 81 | Windows would strip initial parts from the paths because they |
| 82 | were not recognized as absolute, which has been corrected. |
| 83 | |
| 84 | * The receive.denyCurrentBranch=updateInstead codepath kicked in even |
| 85 | when the push should have been rejected due to other reasons, such |
| 86 | as it does not fast-forward or the update-hook rejects it, which |
| 87 | has been corrected. |
| 88 | |
| 89 | * "git repack" in a shallow clone did not correctly update the |
| 90 | shallow points in the repository, leading to a repository that |
| 91 | does not pass fsck. |
| 92 | |
| 93 | * Operations on promisor objects make sense in the context of only a |
| 94 | small subset of the commands that internally use the revisions |
| 95 | machinery, but the "--exclude-promisor-objects" option were taken |
| 96 | and led to nonsense results by commands like "log", to which it |
| 97 | didn't make much sense. This has been corrected. |
| 98 | |
| 99 | * The "container" mode of TravisCI is going away. Our .travis.yml |
| 100 | file is getting prepared for the transition. |
| 101 | |
| 102 | * Our test scripts can now take the '-V' option as a synonym for the |
| 103 | '--verbose-log' option. |
| 104 | |
| 105 | * A regression in Git 2.12 era made "git fsck" fall into an infinite |
| 106 | loop while processing truncated loose objects. |
| 107 | |
| 108 | Also contains various documentation updates and code clean-ups. |