| 1 | Git v2.9.1 Release Notes |
| 2 | ======================== |
| 3 | |
| 4 | Fixes since v2.9 |
| 5 | ---------------- |
| 6 | |
| 7 | * When "git daemon" is run without --[init-]timeout specified, a |
| 8 | connection from a client that silently goes offline can hang around |
| 9 | for a long time, wasting resources. The socket-level KEEPALIVE has |
| 10 | been enabled to allow the OS to notice such failed connections. |
| 11 | |
| 12 | * The commands in `git log` family take %C(auto) in a custom format |
| 13 | string. This unconditionally turned the color on, ignoring |
| 14 | --no-color or with --color=auto when the output is not connected to |
| 15 | a tty; this was corrected to make the format truly behave as |
| 16 | "auto". |
| 17 | |
| 18 | * "git rev-list --count" whose walk-length is limited with "-n" |
| 19 | option did not work well with the counting optimized to look at the |
| 20 | bitmap index. |
| 21 | |
| 22 | * "git show -W" (extend hunks to cover the entire function, delimited |
| 23 | by lines that match the "funcname" pattern) used to show the entire |
| 24 | file when a change added an entire function at the end of the file, |
| 25 | which has been fixed. |
| 26 | |
| 27 | * The documentation set has been updated so that literal commands, |
| 28 | configuration variables and environment variables are consistently |
| 29 | typeset in fixed-width font and bold in manpages. |
| 30 | |
| 31 | * "git svn propset" subcommand that was added in 2.3 days is |
| 32 | documented now. |
| 33 | |
| 34 | * The documentation tries to consistently spell "GPG"; when |
| 35 | referring to the specific program name, "gpg" is used. |
| 36 | |
| 37 | * "git reflog" stopped upon seeing an entry that denotes a branch |
| 38 | creation event (aka "unborn"), which made it appear as if the |
| 39 | reflog was truncated. |
| 40 | |
| 41 | * The git-prompt scriptlet (in contrib/) was not friendly with those |
| 42 | who uses "set -u", which has been fixed. |
| 43 | |
| 44 | * A codepath that used alloca(3) to place an unbounded amount of data |
| 45 | on the stack has been updated to avoid doing so. |
| 46 | |
| 47 | * "git update-index --add --chmod=+x file" may be usable as an escape |
| 48 | hatch, but not a friendly thing to force for people who do need to |
| 49 | use it regularly. "git add --chmod=+x file" can be used instead. |
| 50 | |
| 51 | * Build improvements for gnome-keyring (in contrib/) |
| 52 | |
| 53 | * "git status" used to say "working directory" when it meant "working |
| 54 | tree". |
| 55 | |
| 56 | * Comments about misbehaving FreeBSD shells have been clarified with |
| 57 | the version number (9.x and before are broken, newer ones are OK). |
| 58 | |
| 59 | * "git cherry-pick A" worked on an unborn branch, but "git |
| 60 | cherry-pick A..B" didn't. |
| 61 | |
| 62 | * "git add -i/-p" learned to honor diff.compactionHeuristic |
| 63 | experimental knob, so that the user can work on the same hunk split |
| 64 | as "git diff" output. |
| 65 | |
| 66 | * "log --graph --format=" learned that "%>|(N)" specifies the width |
| 67 | relative to the terminal's left edge, not relative to the area to |
| 68 | draw text that is to the right of the ancestry-graph section. It |
| 69 | also now accepts negative N that means the column limit is relative |
| 70 | to the right border. |
| 71 | |
| 72 | * The ownership rule for the piece of memory that hold references to |
| 73 | be fetched in "git fetch" was screwy, which has been cleaned up. |
| 74 | |
| 75 | * "git bisect" makes an internal call to "git diff-tree" when |
| 76 | bisection finds the culprit, but this call did not initialize the |
| 77 | data structure to pass to the diff-tree API correctly. |
| 78 | |
| 79 | * Formats of the various data (and how to validate them) where we use |
| 80 | GPG signature have been documented. |
| 81 | |
| 82 | * Fix an unintended regression in v2.9 that breaks "clone --depth" |
| 83 | that recurses down to submodules by forcing the submodules to also |
| 84 | be cloned shallowly, which many server instances that host upstream |
| 85 | of the submodules are not prepared for. |
| 86 | |
| 87 | * Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}' |
| 88 | to set the default value, without enclosing it in double quotes. |
| 89 | |
| 90 | * Some platform-specific code had non-ANSI strict declarations of C |
| 91 | functions that do not take any parameters, which has been |
| 92 | corrected. |
| 93 | |
| 94 | * The internal code used to show local timezone offset is not |
| 95 | prepared to handle timestamps beyond year 2100, and gave a |
| 96 | bogus offset value to the caller. Use a more benign looking |
| 97 | +0000 instead and let "git log" going in such a case, instead |
| 98 | of aborting. |
| 99 | |
| 100 | * One among four invocations of readlink(1) in our test suite has |
| 101 | been rewritten so that the test can run on systems without the |
| 102 | command (others are in valgrind test framework and t9802). |
| 103 | |
| 104 | * t/perf needs /usr/bin/time with GNU extension; the invocation of it |
| 105 | is updated to "gtime" on Darwin. |
| 106 | |
| 107 | * A bug, which caused "git p4" while running under verbose mode to |
| 108 | report paths that are omitted due to branch prefix incorrectly, has |
| 109 | been fixed; the command said "Ignoring file outside of prefix" for |
| 110 | paths that are _inside_. |
| 111 | |
| 112 | * The top level documentation "git help git" still pointed at the |
| 113 | documentation set hosted at now-defunct google-code repository. |
| 114 | Update it to point to https://git.github.io/htmldocs/git.html |
| 115 | instead. |
| 116 | |
| 117 | Also contains minor documentation updates and code clean-ups. |