|
| 1 | +Git v2.0.1 Release Notes |
| 2 | +======================== |
| 3 | + |
| 4 | + * We used to unconditionally disable the pager in the pager process |
| 5 | + we spawn to feed out output, but that prevented people who want to |
| 6 | + run "less" within "less" from doing so. |
| 7 | + |
| 8 | + * Tools that read diagnostic output in our standard error stream do |
| 9 | + not want to see terminal control sequence (e.g. erase-to-eol). |
| 10 | + Detect them by checking if the standard error stream is connected |
| 11 | + to a tty. |
| 12 | + * Reworded the error message given upon a failure to open an existing |
| 13 | + loose object file due to e.g. permission issues; it was reported as |
| 14 | + the object being corrupt, but that is not quite true. |
| 15 | + |
| 16 | + * "git log -2master" is a common typo that shows two commits starting |
| 17 | + from whichever random branch that is not 'master' that happens to |
| 18 | + be checked out currently. |
| 19 | + |
| 20 | + * The "%<(10,trunc)%s" pretty format specifier in the log family of |
| 21 | + commands is used to truncate the string to a given length (e.g. 10 |
| 22 | + in the example) with padding to column-align the output, but did |
| 23 | + not take into account that number of bytes and number of display |
| 24 | + columns are different. |
| 25 | + |
| 26 | + * The "mailmap.file" configuration option did not support the tilde |
| 27 | + expansion (i.e. ~user/path and ~/path). |
| 28 | + |
| 29 | + * The completion scripts (in contrib/) did not know about quite a few |
| 30 | + options that are common between "git merge" and "git pull", and a |
| 31 | + couple of options unique to "git merge". |
| 32 | + |
| 33 | + * "--ignore-space-change" option of "git apply" ignored the spaces |
| 34 | + at the beginning of line too aggressively, which is inconsistent |
| 35 | + with the option of the same name "diff" and "git diff" have. |
| 36 | + |
| 37 | + * "git blame" miscounted number of columns needed to show localized |
| 38 | + timestamps, resulting in jaggy left-side-edge of the source code |
| 39 | + lines in its output. |
| 40 | + |
| 41 | + * "git blame" assigned the blame to the copy in the working-tree if |
| 42 | + the repository is set to core.autocrlf=input and the file used CRLF |
| 43 | + line endings. |
| 44 | + |
| 45 | + * "git commit --allow-empty-message -C $commit" did not work when the |
| 46 | + commit did not have any log message. |
| 47 | + |
| 48 | + * "git diff --find-copies-harder" sometimes pretended as if the mode |
| 49 | + bits have changed for paths that are marked with assume-unchanged |
| 50 | + bit. |
| 51 | + |
| 52 | + * "git format-patch" did not enforce the rule that the "--follow" |
| 53 | + option from the log/diff family of commands must be used with |
| 54 | + exactly one pathspec. |
| 55 | + |
| 56 | + * "git gc --auto" was recently changed to run in the background to |
| 57 | + give control back early to the end-user sitting in front of the |
| 58 | + terminal, but it forgot that housekeeping involving reflogs should |
| 59 | + be done without other processes competing for accesses to the refs. |
| 60 | + |
| 61 | + * "git grep -O" to show the lines that hit in the pager did not work |
| 62 | + well with case insensitive search. We now spawn "less" with its |
| 63 | + "-I" option when it is used as the pager (which is the default). |
| 64 | + |
| 65 | + * We used to disable threaded "git index-pack" on platforms without |
| 66 | + thread-safe pread(); use a different workaround for such |
| 67 | + platforms to allow threaded "git index-pack". |
| 68 | + |
| 69 | + * The error reporting from "git index-pack" has been improved to |
| 70 | + distinguish missing objects from type errors. |
| 71 | + |
| 72 | + * "git mailinfo" used to read beyond the end of header string while |
| 73 | + parsing an incoming e-mail message to extract the patch. |
| 74 | + |
| 75 | + * On a case insensitive filesystem, merge-recursive incorrectly |
| 76 | + deleted the file that is to be renamed to a name that is the same |
| 77 | + except for case differences. |
| 78 | + |
| 79 | + * "git pack-objects" unnecessarily copied the previous contents when |
| 80 | + extending the hashtable, even though it will populate the table |
| 81 | + from scratch anyway. |
| 82 | + |
| 83 | + * "git rerere forget" did not work well when merge.conflictstyle |
| 84 | + was set to a non-default value. |
| 85 | + |
| 86 | + * "git remote rm" and "git remote prune" can involve removing many |
| 87 | + refs at once, which is not a very efficient thing to do when very |
| 88 | + many refs exist in the packed-refs file. |
| 89 | + |
| 90 | + * "git log --exclude=<glob> --all | git shortlog" worked as expected, |
| 91 | + but "git shortlog --exclude=<glob> --all", which is supposed to be |
| 92 | + identical to the above pipeline, was not accepted at the command |
| 93 | + line argument parser level. |
| 94 | + |
| 95 | + * The autostash mode of "git rebase -i" did not restore the dirty |
| 96 | + working tree state if the user aborted the interactive rebase by |
| 97 | + emptying the insn sheet. |
| 98 | + |
| 99 | + * "git show -s" (i.e. show log message only) used to incorrectly emit |
| 100 | + an extra blank line after a merge commit. |
| 101 | + |
| 102 | + * "git status", even though it is a read-only operation, tries to |
| 103 | + update the index with refreshed lstat(2) info to optimize future |
| 104 | + accesses to the working tree opportunistically, but this could |
| 105 | + race with a "read-write" operation that modify the index while it |
| 106 | + is running. Detect such a race and avoid overwriting the index. |
| 107 | + |
| 108 | + * "git status" (and "git commit") behaved as if changes in a modified |
| 109 | + submodule are not there if submodule.*.ignore configuration is set, |
| 110 | + which was misleading. The configuration is only to unclutter diff |
| 111 | + output during the course of development, and should not to hide |
| 112 | + changes in the "status" output to cause the users forget to commit |
| 113 | + them. |
| 114 | + |
| 115 | + * The mode to run tests with HTTP server tests disabled was broken. |
0 commit comments